Agent View (`claude agents`) does not enumerate FleetView-dispatched / daemon-fleet sessions
Summary
claude agents (Agent View TUI) does not enumerate FleetView-dispatched / daemon-managed sessions. The Agent View only surfaces CLI-spawned background sessions (foreground sent to /bg, or claude --bg "<task>" from a terminal). Sessions dispatched from the mobile app via Remote Control / FleetView land in the daemon's fleet pool (backend: "daemon", template: "bg" in ~/.claude/jobs/<short>/state.json) and never appear in the TUI list.
As a result, from a local terminal you cannot:
- See that mobile-spawned agents are running.
- Attach to / resume one with
claude agents→ row select. - Get a unified local view of all live Claude Code work — the mobile app is currently the only UI that lists FleetView sessions.
Adjacent but distinct from #59415 (/resume picker hides sessionKind: "bg" after /compact fork — about /resume, not Agent View enumeration) and #59848 (interactive sessions mis-classified as bg — inverse direction).
Environment
- Claude Code:
2.1.143 - Platform: Linux (Ubuntu 24.04, x86_64)
- Daemon:
origin=transient, started viaremoteControlAtStartup: true
Reproduction
- Start remote-control somewhere the iOS app can reach (e.g.,
cd ~ && claude remote-control --name "host-rc"). - From the Claude mobile app, dispatch one or more new agents to that environment.
- The agents start, run, and write session jsonl files to
~/.claude/projects/<encoded-cwd>/<session-uuid>.jsonl, and daemon state to~/.claude/jobs/<short>/state.jsonwith:
``json``
{
"template": "bg",
"backend": "daemon",
"sessionId": "<uuid>",
"cwd": "<cwd-the-daemon-picked-for-this-dispatch>",
...
}
- From a terminal in the same
cwd(or with--cwd <that-path>):
````
claude agents
# or
claude agents --cwd <cwd-from-state.json>
- The TUI list does not include any of the FleetView-dispatched sessions, even though their
cwdmatches the scope.
Expected behavior
claude agents should enumerate all local-daemon-managed sessions whose cwd matches the current scope, regardless of whether they originated from:
- a foreground CLI session sent to
/bg, claude --bg "<task>", or- a FleetView dispatch from the mobile app / browser (daemon-fleet pool).
These are all "running Claude Code sessions on this machine" — the user-facing distinction between "how they were started" should not gate visibility.
Actual behavior
Only the first two surface. FleetView-dispatched sessions are present on disk and reachable by the mobile app, but the TUI ignores them. There is no local UI that gives a unified view.
Workaround
Walk the daemon's job state directly:
ls -t ~/.claude/jobs/*/state.json \
| xargs -I{} jq -r '[.state, .daemonShort, .cwd, .name] | @tsv' {} \
| column -t -s $'\t'
This gives the same data the mobile app shows (state, short id, cwd, auto-title) and confirms the sessions exist locally — they just aren't routed into the Agent View list.
Suggested fix
In whatever data source claude agents uses to populate the list, additionally enumerate ~/.claude/jobs/*/state.json entries with backend: "daemon" (or merge the daemon's fleet registry into the same source). Apply the existing --cwd filter as a post-step so the user-facing scoping semantics are unchanged.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗