57dc91585d
Internal SmartGift build of a Claude Code monitoring dashboard. Lanes: a durable unit of parallel agent work, one per working directory, tracked across session restarts. Managed lanes are git worktrees the dashboard provisions and can reset or remove behind a three-check destroy guard and a counted preflight; adopted lanes are directories you already own and are never destroyable. Pipelines: a lane moves through pipeline stages. A stage the agent declares with evidence renders green; a stage inferred from the tool-event stream renders dashed amber and never counts as done. Detection is forward-only within a 30-minute window, and never writes the declared stage. Workspace: one page at /run with a lane grid, the selected lane's pipeline, and a full Claude console behind a disclosure.
1.4 KiB
1.4 KiB
description, argument-hint
| description | argument-hint |
|---|---|
| Search Agent Monitor sessions by cwd, model, or status and print the top matches. | [query] |
Search Claude Code sessions tracked by the Agent Monitor and print the top matches.
The query is $ARGUMENTS — any mix of a project / cwd substring, a model
(opus/sonnet/haiku or a model-id fragment), and a status
(active/working/completed/error). If empty, just show the most recent sessions.
Fetch the session list (each carries an inline cost field):
curl -s "http://localhost:4820/api/sessions?limit=200"
Then:
- Filter in-memory: keep sessions whose
cwdcontains the project term (case-insensitive), whosemodelcontains the model term, and whosestatusequals the status term — apply only the terms present in$ARGUMENTS. - Sort matches by
costdescending if the query mentions cost/expensive, otherwise bystarted_atdescending (most recent first). - Print the top 10 as a numbered list, one line each:
<rank>. <id short> — <status> — <model> — <cwd basename> — $<cost to 4dp> — <started_at> - End with the match count and the summed cost of the shown matches.
Currency as USD to 4 decimal places. If nothing matches, say so and list the distinct
cwds/models that DO exist (from the returned data) so the user can refine — do not invent
results. If the dashboard is unreachable, tell the user to start it with npm start from
the repo root.