Launch agents and watch them
Status: PartialThe left nav shows what’s ready. This guide takes a ready story from the nav, opens its workspace (a worktree in the story’s repo, with your team’s context already in place), starts an agent there, and then keeps an eye on several agents at once.
The example is Ledgerline’s sprint: LL-233 (refund button, in web) and LL-209 (payment intents, in api).
1. Pick a ready story
In the left nav, a not-started story whose dependencies are all done is marked ready. Hover it to check (“Ready — all dependencies met”). Click it to open the story file and read it. See Dependencies and readiness.
To open a story’s workspace and start an agent in one action, right-click it and, under Launch agent, choose your agent. The next two steps do the same by hand.
2. Open the story’s workspace
Use any of these:
- Left nav: right-click the story and choose Open story workspace.
- ⌘K: search for the workspace by name.
CodeSense then:
- Looks up the story’s
source_repoand finds your clone of that repo. If you haven’t attached one, it asks you to (No local clone attached › Attach local clone). - Creates a git worktree for the story next to your clone, on its own branch. By default the branch is
feat/plus the story’s file name, and the prefix is configurable per repo. If the worktree already exists, CodeSense reuses it. - Copies the context your agent’s definition asks for into the worktree as files, in one batch: by default
CLAUDE.mdand.claude/skills, commands, hooks and agents for Claude Code, orAGENTS.mdand.agents/skillsfor Codex, plus the MCP config for CodeSense’s tools. None of it is committed: the paths go in the repo’s git exclude. - Opens the workspace with a terminal tab in the worktree.
3. Start your agent
The terminal is your login zsh, with your own dotfiles, already in the worktree. Start your agent there:
claudeClaude Code starts with the team’s context and CodeSense’s MCP tools in place. On a brand-new worktree, the terminal can open a moment before the context has finished landing, so give it a second before your first command. You can run any other CLI the same way, including Codex. See Switch a story between Claude Code and Codex.
Repeat for LL-209. Its workspace opens in your api clone.
A dashboard page can also open a story’s workspace with its agent, using the page SDK’s openWorkspace action. A page button starting an agent hasn’t been recorded in the app yet. See Dashboards and pages.
4. Watch them side by side
Each workspace has its own terminal tabs. New terminal adds another one. To see several at once:
- ⌘⇧L (Cycle Terminal Layout) switches tiles between Columns, Rows and Grid.
- ⌘1 to ⌘9 jump between workspaces, and ⌘0 goes back to the root workspace.
- Each tile’s View options menu can minimize or close it.
A Claude Code session shows a status dot on its tab and in the workspace tray. The dot is driven by Claude Code’s hooks, so you can see which agent needs you without watching every terminal. It hasn’t been checked end to end with a real Claude Code session yet.
| Dot | Meaning |
|---|---|
| Pulsing blue | Working |
| Orange | Needs permission: it’s waiting on you |
| Amber | Finished its turn |
| Red | Error |
5. Follow what an agent is changing
Open a tile’s View options menu and choose Source diff (or press ⌘⇧D). You get a live diff of the worktree against its base. You can view it side by side or inline, and a structural mode compares the code’s syntax instead of lines. Follow edits is on by default, so the view jumps to the newest change as the agent writes it. If you scroll away, ↓ Jump to latest brings you back.
6. The agents list
Sessions that CodeSense launched and manages (from a page, a run, or a headless agent) are listed in the Agents list on the left of the bottom terminal area, grouped by story. Click a row to reveal its tab; right-click it for Reveal, Open story and Stop…. The stop button in the list’s header (Stop all unattended) stops every background session that has no tab.
When an agent finishes, it calls signal_done to record the result. Moving the story on is a plain status edit, by you or the agent. See Statuses and phases.
How we know this is accurate 13 sources
Checked against the app at 1b3d5a69d73473db077dfb44f4390b42cded6bd4.
Feature inventory
-
C-53 -
D-10 -
D-11 -
D-13 -
B-55
Code
-
src/features/dashboard/components/status-nav/nav-context-menu.tsx -
src/shared/lib/pipeline-graph/resolve-nav-readiness.ts -
src/shared/stores/viewer-store.ts -
src-tauri/src/commands/worktree.rs -
src-tauri/src/commands/mcp_workspace.rs -
src/features/viewer/components/ai-status-colors.ts -
src/features/viewer/components/agents-list.tsx -
src/features/viewer/components/source-diff-overlay.tsx