@blackbelt-technology/pi-agent-dashboard
Web dashboard for monitoring and interacting with pi agent sessions
Install
pi install npm:@blackbelt-technology/pi-agent-dashboard
Installs from npm into ~/.pi/agent/.
Add -l for project-local (.pi/). Manage with pi list / pi update / pi remove.
What this package can reach
Detected automatically from the source at
version 0.7.0.
This describes access, not safety — you decide whether it's appropriate for what
the package claims to do.
- Behavior — Changes how the agent thinks Modifies the system prompt, injects messages, or rewrites conversation context.
- Extension bus — Talks to other extensions Uses pi.events to emit or listen on a shared channel, so it can coordinate with — or be driven by — other installed extensions.
- Commands — Runs shell commands Spawns processes on your machine.
- Credentials — Handles your API keys Reads or passes provider credentials. Highest-trust capability there is.
- Files — Reads files outside your project Touches paths beyond the working directory, such as your home folder.
- Network — Talks to the internet Makes outbound network requests. Check the destinations are ones you expect.
- New tools — Adds model-callable tools Gives the agent new abilities. Additive and visible, unlike an override.
- UI — Draws its own interface Renders widgets, footers, dialogs or full-screen views.
Network destinations found in the source (3)
api.github.com · github.com · raw.githubusercontent.com
Static analysis only — addresses built at runtime won't appear here.
What it actually did when run
observedLoaded in a sandbox with no network, a read-only filesystem and a recording stand-in for pi's API. This is what it called — not what the source suggests it might.
Tools registered ask_usercanvaslist_modelslist_rolesupdate_roles
Events subscribed agent_endagent_settledagent_startbefore_agent_startdashboard:enqueue-followupdashboard:plugin-messageflow:completeflow:get-available-modelsflow:rediscoverinputmessage_endmessage_startmessage_updatemodel:resolvemodel_selectproject_trustprompt:register-adapterresources_discoverrole:resolve-modelroles:get-allroles:preset-deleteroles:preset-loadroles:preset-saveroles:removeroles:setsession_before_compactsession_before_forksession_before_switchsession_before_treesession_compactsession_info_changedsession_shutdownsession_startsession_treethinking_level_selecttool_calltool_execution_endtool_execution_starttool_execution_updatetool_resultturn_endturn_startui:invalidateuser_bash
APIs called events.emitevents.emit.bindevents.ongetCommandsgetCommands.filtergetCommands.filter.toJSONgetSessionNamegetSessionName.toJSONgetThinkingLevelgetThinkingLevel.toJSONhasUI.toJSONmodelRegistry.getAvailablemodelRegistry.getAvailable.mapmodelRegistry.getAvailable.map.toJSONregisterCommandregisterToolreloadsessionManager.appendMessage.bindsessionManager.buildSessionContextsessionManager.getBranchsessionManager.getBranch.length.toJSONsessionManager.getEntriessessionManager.getSessionDirsessionManager.getSessionDir.toJSONsessionManager.getSessionFilesessionManager.getSessionFile.toJSONsessionManager.getSessionIdsessionManager.getSessionId.includessessionManager.getSessionId.slicesessionManager.getSessionId.toJSONui.confirm.bindui.editor.bindui.input.bindui.notify.bindui.select.bind
46 calls the source scan did not predict
events.emit.bind · getCommands.filter · getCommands.filter.toJSON · getSessionName.toJSON · getThinkingLevel.toJSON · hasUI.toJSON · modelRegistry.getAvailable · modelRegistry.getAvailable.map · modelRegistry.getAvailable.map.toJSON · on("agent_end") · on("agent_settled") · on("agent_start") · on("input") · on("message_end") · on("message_start") · on("message_update") · on("resources_discover") · on("session_before_compact") · on("session_before_fork") · on("session_before_switch") · on("session_before_tree") · on("session_compact") · on("session_tree") · on("thinking_level_select") · on("tool_call") · on("tool_execution_end") · on("tool_execution_start") · on("tool_execution_update") · on("tool_result") · on("turn_start") · on("ui:invalidate") · on("user_bash") · reload · sessionManager.appendMessage.bind · sessionManager.buildSessionContext · sessionManager.getBranch.length.toJSON · sessionManager.getSessionDir.toJSON · sessionManager.getSessionFile.toJSON · sessionManager.getSessionId.includes · sessionManager.getSessionId.slice · sessionManager.getSessionId.toJSON · ui.confirm.bind · ui.editor.bind · ui.input.bind · ui.notify.bind · ui.select.bind
Reached through a value the scan could not follow — passed as an argument, stored on another object, or returned by a helper.
Run against version 0.7.0 on 2026-08-02.
Registration-time behaviour under default settings; other configurations may differ.
Reviews
0 publishedSign in with GitHub to write a review, reply, or vote.
No reviews yet — be the first.
More in Observability
- @pi-vault/pi-usage — Pi extension that tracks Pi usage across your sessions in one dashboard
- @runfusion/fusion — Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion A…
- @tmustier/pi-usage-extension — Usage statistics dashboard for Pi sessions.
- @amaster.ai/pi-telemetry — Pi extension for runtime telemetry with Langfuse and OpenTelemetry exporters