Recursively list all subagent sessions spawned from an OpenCode session, including council councillors. Outputs a hierarchical tree with session ID, agent name, and model information.
tree-session <session-id> [db-path]The DB path is auto-detected from ~/.local/share/opencode/ (scans for the active .db file with a .db-wal sibling). You can override with a specific path.
$ tree-session ses_16cf8d213ffeDA60nBiaSWpZfe
Testing quality gate with empty councillor output (orchestrator · deepseek-v4-pro (max))
ses_16cf8d213ffeDA60nBiaSWpZfe
└── Find quality gate config (@explorer subagent)
ses_16cf841eeffecXKoXXMDVMCeTl (explorer · deepseek-v4-flash (exec))
└── Council silent (deepseek-v4-flash)
ses_16cf8a678ffeEQHxtH1HuB22WN (councillor · deepseek-v4-flash (default))
└── Council silent (deepseek-v4-flash)
ses_16cf8adc8ffeBrkhLVsR0C29sg (councillor · deepseek-v4-flash (default))
└── Council silent (deepseek-v4-flash)
ses_16cf8b5ebffeLloxPMGDP8KjC6 (councillor · deepseek-v4-flash (default))
└── Council silent (deepseek-v4-flash)
ses_16cf8c38dffepwHXPhGneVZ9jZ (councillor · deepseek-v4-flash (default))
Uses a recursive CTE on the session table, traversing parent_id → id to find all descendant sessions across council and subagent hierarchies. Extracts agent name, model ID, and variant from the JSON model column.
curl -sSL https://raw.githubusercontent.com/hardes11/tree-session/main/tree-session.sh -o ~/.local/bin/tree-session
chmod +x ~/.local/bin/tree-sessionRequires sqlite3 and bash.