Project-centered multi-agent orchestration for VS Code and code-server.
Agent Runner turns VS Code into a local project center for coordinating a Manager and specialized agents. Select a project, open its persistent Chatroom, route work, follow each agent's activity, inspect shared project state, and schedule follow-up work without mixing one repository's context with another.
"If you are not sure how to use Agent Runner, ask the Manager agent inside Chatroom."
Project Center UI
The AGENT RUNNER PROJECTS Activity Bar view is the entry point for the whole workspace:
- TOWNHALL opens the default coordination project for conversation and work that does not belong to a repository.
- PROJECTS discovers git WorkDirs under a user-selected root. Clicking a project opens or reveals its persistent Chatroom editor tab.
- AGENTS shows Manager first and then configured mailbox agents. Expand an agent to open its first-level Markdown identity, role, soul, and memory files.
- ISSUES shows the selected project's deterministic handoff and audit state.
- AGENDA shows upcoming one-time and repeated work plus recent dispatches.
Each project gets one isolated workspace in the editor. The left side is the human-agent conversation; the right Team side shows one live activity card per agent with thinking and tool progress. Team cards also own terminal, model, and restart controls. Hide Team when the conversation needs the full editor width, or open several project Chatrooms without crossing histories or live events.
Project state survives browser and workbench reloads. The extension restores
each open panel's workdir, project_key, JSONL history, and latest Team
activity while keeping delivery deterministic.
Core Design
Chatroom is the deterministic, project-bound message room shared by the user,
Manager, and configured mailbox agents. Each open Chatroom belongs to exactly
one workdir and project_key. The extension, not an agent, owns recipient
resolution, one-time user-message persistence, JSONL history, live-event
project filtering, and reply correlation. Manager executes through the embedded
Pi AgentSession; workers receive per-agent mailbox files. Agent intelligence
produces plans and answers, while extension code controls delivery and state.
Messages and Team activity from one project must never appear in another project's Chatroom. Agent-to-agent coordination uses mailbox, project knowledge uses the project module, and system diagnostics use daily logs rather than human chat history.
How To Use
- Open AGENT RUNNER PROJECTS. Choose TOWNHALL for general coordination or click a repository under PROJECTS. Agent Runner opens that project's Chatroom as an editor tab and keeps it bound to that WorkDir.
- Click the login button in Chatroom. It opens the packaged Manager Pi
terminal. Log in with Codex, then click Chatroom refresh. The login circle
is gray when logged out and green when authenticated. Chatroom will show:
Now you are ready to use Agent Runner. Use /bootstrap to initialize your workspace. - Type
/bootstrapto initialize the workspace. This asks Manager to create or refresh the firstarchitectagent, ask it to check in, and record the Chatroom reply contract for future work. It also saves the default project workflow for the selected WorkDir, including Architect-first routing and Review handoff rules when areviewagent exists. - Start working in that project Chatroom. Send an unaddressed message to
Manager, select an agent from the composer, mention a specific agent with
@agent, or use@channelfor all configured mailbox agents.
You can also send a setup command to Manager. For the built-in architect, ask Manager to refine or initialize its role, focus, purpose, and domain knowledge:
Initialize the architect agent with its role, focus, purpose, and domain knowledge.
You can also type /initagent as the first input token. Chatroom replaces it
with an editable prompt for creating a new agent and ignores anything typed
after the slash command.
To add more agents later, ask Manager:
Add more agent with <name, role, focus, purpose, and domain knowledge>.
Requirements
- VS Code or code-server compatible with VS Code
^1.110.0 - An extension host with Node.js
>=22.19.0for the packaged Manager Pi AgentSession runtime. VS Code/code-server^1.110.0satisfies this contract.
The VSIX includes the Pi CLI runtime under vendor/pi, so the manager AgentSession path
does not require a global pi install. The extension uses VS Code/code-server's
built-in terminal surface for terminal views; xterm.js is not vendored.
Usage
Open the Activity Bar:
- AGENT RUNNER PROJECTS contains TOWNHALL, PROJECTS, AGENTS,
ISSUES, and AGENDA. TOWNHALL is first and opens
the general coordination Chatroom. PROJECTS lists discovered git WorkDirs;
clicking one opens that project's Chatroom in the middle editor panel. Use
the PROJECTS
+action to choose the folder under which git projects are discovered, and use refresh to rescan it.
Chatroom
Use CHATROOM as the main user-agent message center.
Use TOWNHALL for general coordination that is not tied to a git WorkDir. Use PROJECTS for project-specific threads and shared project knowledge.
- Type a normal message to send it to
manager. - Use the header login button to open the packaged Manager Pi login terminal when first setting up Pi auth. The circle is gray when not logged in and green when logged in.
- Use the model action on the Manager card in Team to choose an
openai-codexmodel registered by packaged Pi. The selection is saved in~/.agent-runner/agents/manager/model.jsonand applies to the next Manager request. Model changes are rejected while Manager is working. - The AGENTS row follows the selected Manager model immediately. Mailbox
agent rows use their fresh launcher-reported runtime and explicit
--model; they do not guess a model when the CLI leaves model selection to Codex. - The editor tab is bound to one WorkDir. Open another project row for a separate project Chatroom tab; reopening a project reveals its existing tab.
- Open project Chatroom tabs survive a browser or workbench reload. The extension restores each panel's project binding, subscriptions, JSONL history, and retained Team state.
- The project-bound panel shell opens immediately, then hydrates its Chatroom history, agent labels, connection state, and Team activity in the background. Restoring multiple panels shares runtime/WebSocket initialization and the retained activity-log read instead of repeating that work per tab.
- The bound project name appears at the left of the header; hover it to see the
full WorkDir. Team and action controls stay aligned to the right. On a
narrow editor, secondary login/export actions move into the
…menu. - Use the robot icon in the input bar to filter the chat history to one agent. When an agent is selected there, new messages are routed to that agent.
- Use
@agentmentions to route directly to specific agents, for example@architect review this design. - A selected agent and
@mentionsare additive. For example, ifarchitectis selected and the message contains@backend, both agents receive the message. - Use
@channelto send to all configured mailbox agents. It intentionally excludes Manager; add@managerexplicitly when Manager should receive the same message. - Type
/as the first input character to show built-in prompt helpers:/initagent,/bootstrap,/review,/check-in,/system-reload-agents,/update-skill,/setmorningcall,/report, and/workflow. - Submitting a slash helper first writes the generated message into Chatroom,
then executes it.
/reviewand/check-inare channel-wide helpers and include@channel;/initagent,/bootstrap,/setmorningcall,/report, and/workfloware Manager helpers./system-reload-agentsand/update-skillare deterministic system helpers. - Mention multiple agents to send one copy to each target, for example
@architect @backend compare the implementation options. - Upload one or more browser-local files with
#. Uploaded files appear as removable#filenamechips above the auto-growing input before sending. - Press
Enterto insert a line break andShift+Enterto send. UseTabto accept the highlighted@mentionor slash-command suggestion. Sending,Queued, upload, and failure states are transient composer status; they are not written into Chatroom history.- Agent names in Chatroom use stable agent-specific text colors on a transparent background so replies remain easy to scan without filled badges.
- On wide editors, Chatroom uses a 60/40 split: conversation stays on the left and the project-scoped Team panel stays on the right. Each agent has one reusable card; new work replaces that card's prior trace, active cards expand, and completed cards collapse.
- The header belongs to the conversation pane. Use its panel toggle to hide Team and give Chatroom the full editor width, or restore the 60/40 split.
- Use the colored dot beside a final reply to focus and expand its matching Team card. On narrow editors, Team is a separate header mode instead of a compressed side panel. Thinking traces are restored from the latest three daily logs and are never copied into permanent Chatroom message text.
- New replies auto-scroll only while the view is already near the bottom. When reading older messages, use the sticky new-message button to return to the latest reply. Loading older history preserves the current reading position.
- Use Chatroom reload to refresh that project's history and Team activity. Use the PROJECTS view refresh action to rescan git projects.
Slash Helpers
Slash helpers write their generated message into Chatroom first, then run.
/initagent: ask Manager to create a new agent and initialize its files./bootstrap: ask Manager to initialize the firstarchitectagent, ask it to check in, record the Chatroom reply contract for future work, and save the selected WorkDir's default project workflow with Architect-first routing and Review handoff rules./review: ask all configured mailbox agents to review the WorkDir from their own roles./check-in: ask all configured mailbox agents for concise human check-ins./setmorningcall: ask Manager to schedule a daily 8:00 AM SGT check-in./report: ask Manager for a concise project report and update the selected project's white-themestatus/index.htmlpage after the requested agent reports finish./workflow: ask Manager to show or generate the project workflow./system-reload-agents: reload agents from config./update-skill: clone or pull Agent Runner skills into~/.agent-runner/skills.
Agents
Use AGENTS to inspect and control local agents.
- Expand an agent to see its first-level Markdown files.
- Open the config button to edit
~/.agent-runner/agents/config.
Use each agent's card header in the Chatroom Team panel for runtime
controls. Worker cards provide terminal attach, model selection, and restart.
Manager provides model selection and restart because it is an embedded Pi
AgentSession rather than a tmux/screen worker. Mailbox-agent model changes
update the agent's CLI= model argument and restart that agent.
Use the Team header + action to add an agent. Enter a creation request with
the agent's name, role, focus, purpose, and domain knowledge. The extension
sends the request to Manager in the current project Chatroom.
The built-in Manager appears first in AGENTS, followed by configured mailbox
agents. Manager shows its Pi AgentSession state, but it is
not stored as an agent section in ~/.agent-runner/agents/config. Expanding the
Manager row shows its first-level Markdown identity and memory files.
Manager Chatroom replies use a long-lived packaged Pi AgentSession. When the
extension restarts, the next manager AgentSession continues the most recent
manager session from ~/.agent-runner/agents/manager/.pi-sessions.
The embedded Pi AgentSession lifecycle is managed by src/agents.ts; Chatroom owns
routing, history, and UI.
Configured Codex mailbox agents are launched with JSONL streaming enabled.
scripts/codex-json-progress.js converts Codex stream events into the same
project-scoped per-agent Team cards used by Manager replies.
The bridge summarizes useful stream details such as shell commands, file reads,
searches, compile runs, failures, and concise agent progress messages.
Agenda
Use AGENDA to inspect scheduled work.
- ONE-TIME shows pending delayed tasks.
- REPEATED shows repeating tasks.
- DISPATCHED shows the latest dispatched tasks.
- Use Process Due Agenda Now to process due work immediately.
Agents schedule delayed or repeated work through Agent Runner; scheduled tasks are delivered back into the target agent inbox when due.
Issues
Use ISSUES as a compact audit index for the selected project.
- It shows
planning,open,working,in review,in test, anddonesnapshots with the current responsible agent. - It does not schedule work, manage dependencies, retry tasks, or advance an issue automatically.
issue_reportrecords state-only intake or corrections.- An explicit
issue_handoffroutes the next mailbox task and records the matching audit transition. Failed mailbox delivery rolls that transition back rather than leaving a false handoff state. - Cleanup handoffs return blocked or stale work to Architect.
Diagnostics
Use the worker's Team-card terminal action for live output. Daily Manager events are
stored in logs/YYYY-MM-DD/pi-manager.log; configured mailbox-agent sessions
are stored in logs/YYYY-MM-DD/<agent-name>.screen.log. Worker log routing
rolls over at local midnight without restarting the tmux/screen session.
Runtime Files
Agent Runner stores runtime state under:
~/.agent-runner
Important folders:
agents/: agent config and per-agent working foldersmailbox/: per-agent inbox and processed messageschatbox/: Chatroom endpoint state and UI-owned chatbox module fileslogs/YYYY-MM-DD/: consolidated system and agent session logs; normalizedthinking.jsonltraces are retained for three daysagenda/: scheduled work stateissues/: deterministic audit and handoff skill docsprojects/: WorkDir-specific shared project knowledgeprojects/config.json: extension-owned project discovery rootprojects/<project_key>/chatbox/log/YYYY-MM-DD.jsonl: project-scoped Chatroom historyprojects/<project_key>/status/index.html: standalone project report artifactprojects/<project_key>/issues.jsonl: active project issuesprojects/<project_key>/issues_done.jsonl: completed project issues
Changelog
5.3.0
- Reframed Agent Runner as a project-centered workspace: one Activity Bar Project Center opens persistent, isolated editor Chatrooms with conversation, Team activity, project issues, scheduling, and agent controls organized around the selected WorkDir.
- Consolidated TOWNHALL, PROJECTS, AGENTS, ISSUES, and AGENDA under one AGENT RUNNER PROJECTS Activity Bar container, with TOWNHALL as the first subview.
- Moved Chatroom out of the sidebar. Selecting a project now opens or reveals
one project-bound Chatroom editor tab, and live replies/progress are isolated
by
project_keyacross concurrently open tabs. - Kept Manager as the embedded, resumable Pi AgentSession while configured Codex workers remain one-batch-per-run mailbox agents with JSON progress and final-reply bridging.
- Added Manager model selection, synchronized runtime/model labels, and refined Chatroom header, composer, history loading, scrollbar, and progress UI.
- Split project Chatroom into a responsive 60/40 conversation and Team workspace. Agent thinking now lives in reusable per-agent Team cards, restores from the retained project trace, and can be focused from a final reply's colored dot.
- Added persistent project Chatroom editor panels that restore after a browser or workbench reload.
- Reduced Chatroom startup work: render the editor shell before backend hydration, coalesce runtime/WebSocket initialization, avoid loading the full Pi model registry for display-only labels, load independent panel state in parallel, and share retained thinking-log reads across restored tabs.
- Changed
@channelto target configured mailbox agents only. Manager is included only through an explicit@manager, Manager selection, or normal fallback for unaddressed messages. - Formalized Chatroom as the deterministic one-project message room and made live reply, Team activity, and Manager-working events reject mismatched or unscoped project data.
- Restored the classic Agent Runner cube/chat marketplace logo with its three colored agent dots.
- Added a native PROJECTS
+action that selects and persists the git project discovery root, followed by an immediate bounded rescan. - Added per-agent model Quick Picks with synchronized Manager selection and
persistent worker
CLI=updates. - Raised the minimum VS Code/code-server compatibility to
^1.110.0, matching the Node.js runtime required by packaged Pi, and upgraded audited runtime dependencies. - Serialized Agenda scheduling and dispatch, made active-task writes atomic, and made scheduled inbox delivery atomic.
- Made Chatroom delivery durable: history is persisted before staged mailbox files become visible, replies are persisted before live broadcast, partial deliveries are explicitly audited, and stale adopted endpoints recover.
- Batched contiguous Manager messages for the same project while isolating projects in FIFO order, and made unrecoverable failed batches settle instead of blocking the queue.
- Added local-midnight rollover for worker session logs and retained Manager
diagnostics in
pi-manager.log. - Removed the polling OUTPUT subview. Live worker output remains available from the Team-card terminal action, while retained diagnostics stay in daily logs.
- Moved terminal, model, and restart controls from AGENTS rows into each Chatroom Team-card header.
- Changed composer keys to
Enterfor a line break andShift+Enterto send.
5.2.6
- Replaced the embedded Chatroom sidebar with an AGENT RUNNER PROJECTS TreeView. Each project opens or reveals a project-bound Chatroom editor tab.
- Merged AGENTS, OUTPUT, ISSUES, and AGENDA into the Projects Activity Bar container and removed the separate legacy Activity Bar icons.
- Isolated live replies and thinking updates by
project_keyacross multiple open project tabs and removed the visible WorkDir dropdown. - Added Manager model selection and synchronized AGENTS runtime/model labels.
5.2.3
- Made project discovery cache-first and moved bounded Git scanning to the background, with explicit rescanning from the Chatroom reload control.
- Bounded Chatroom rendering to 500 DOM messages and 2,000 in-memory messages while preserving incremental history loading.
- Reduced VSIX size by excluding bundled Pi TypeScript sources/declarations, source maps, documentation, examples, and test files that are not used at runtime.
- Added automatic retention: 30 days for system/session logs, 180 days for project Chatroom JSONL history, and the latest 1,000 Agenda dispatch records.
- Kept bundled Pi at patched version
0.80.6and added release checks for required runtime files and excluded development files. - Unified Manager and worker progress as
agentThinking, with three-day daily JSONL traces and lazy>disclosure from final Chatroom replies. - Added deterministic
issue_handoffgates that update ISSUES and route the next mailbox task together; blocked cleanup always returns to Architect. - Kept Kanban as an audit-only project index, with rollback on failed mailbox delivery, serialized issue writes, Relay isolation, and focused regression coverage.
5.2.0
- Improved Manager Pi robustness with stronger request correlation, safer retry and restart handling, visible Manager status, and an inline restart control in AGENTS.
- Split the operational and audit views into separate Activity Bar containers.
- Added deterministic ISSUES/Kanban workflow states for
planning,in test, and done-at-Test-Prod release gates. - Added the root
KANBAN.mdskill and runtime install path so agents share the same tracked-issue handoff contract after extension activation. - Added human-readable JSON/JSONL rendering for AGENTS OUTPUT while preserving useful command/tool/function payload details.
- Included Relay runtime and documentation hardening, including stale websocket reconnect handling and rejection of inbound deterministic control actions.
- Refreshed Agent Runner skills/docs for Manager -> Architect -> Review -> Test-Prod handoffs, package/runtime skill installation, and 5.2.0 release gating.
5.1.0
- Added Chatroom transcript export/download for the selected project as a standalone HTML file.
- Exported transcripts include project metadata, generated timestamp, message count, and Chatroom messages organized by day from project-scoped history.
- Kept transcript generation deterministic and offline-friendly with escaped message content and a restrictive exported HTML content security policy.
- Moved the project Chatroom log path helper into the projects module for reuse by export and Chatroom code.
- Includes the recent 5.0.2 label/workflow updates: concrete runtime/model labels, Manager quick-model preference, default Manager -> Architect -> Review workflow, and clean Review -> Test-Prod
make reinstallrelease gate. - ISSUES state-only corrections use
issue_report; normal gate transitions useissue_handoffso Kanban status and the next mailbox route stay correlated.
5.0.2
- Added Chatroom history loading across the latest two non-empty project days.
- Added a compact
-- load more --history separator to load older days one at a time. - Improved the project dropdown so compact labels show more of the project name while still exposing full paths when opened.
- Updated
/bootstrapto install the default Manager → Architect → Review workflow:- Manager rewrites user input into clear tasks and routes to Architect when present.
- Architect decides whether to handle work or assign it to another agent.
- Review is code-review-only by default and reviews code/config/doc/workflow changes when available.
- Clean Review results route directly to Test-Prod for
make reinstall; Review findings or Test-Prod failures route back to Architect for fix ownership.
- Updated bootstrap model intent guidance: Manager Pi should prefer supported quick candidates in order:
gpt-5.6-luna,gpt-5.6-terra, thengpt-5.6-sol, while Architect and Review should prefer flagshipgpt-5.6-sol. - Updated Chatroom and AGENTS runtime labels to include concrete model names for all agents, such as
Manager (pi-codex/gpt-5.6-luna),Architect (codex/gpt-5.6-sol), andBackend (codex/gpt-5.6-luna). - Updated Manager Pi startup to prefer supported quick model candidates in order:
gpt-5.6-luna,gpt-5.6-terra, thengpt-5.6-sol.
4.1.0
- Added the compact Chatroom project dropdown in the header with full path labels when opened.
- Moved agent filtering into the input bar as a robot icon selector.
- Made selected-agent routing additive with
@mentions. - Improved agent-filtered history so it shows the selected agent replies with the relevant user prompts.
- Added stable colored agent-name badges in Chatroom.
- Added built-in project web report/status support for each selected WorkDir.
- Added the web introduction page and screenshots under
web/agent-runner/.
0.4.0
- Added Chatroom slash helpers for agent creation, review, check-ins, workflow, reports, morning calls, agent reload, and skill updates.
- Added project workflow contract with role/task ownership, handoff rules, Manager check loops, and success/failure criteria.
- Added per-message runtime labels such as
Manager (pi-codex)andArchitect (codex). - Added packaged Manager Pi Codex runtime flow and login button.
- Added
~/.agent-runner/skills/SKILL.mdreference for downloaded skills.