Coding Session Todos
A VS Code sidebar that mirrors the live TodoWrite task list from active
Claude Code sessions and tracks
locally running Codex sessions — so you can watch coding work without keeping
the terminal in focus.
It works entirely by tailing local transcript JSONL files: Claude Code under
~/.claude/projects/ and Codex CLI/IDE under ~/.codex/sessions/ (or
$CODEX_HOME/sessions/). Nothing is sent anywhere; there are no runtime
dependencies and no configuration required to get started.
Local coding sessions only. The extension supports Claude Code plus local
Codex CLI/IDE sessions. It does not read general ChatGPT chats, Codex Web/cloud
sessions, or ChatGPT Desktop sessions.
Features
- Live todo list — the current
TodoWrite snapshot for each active session,
re-rendered as the transcript changes. The in-progress item is highlighted.
- Running subagents — when a session spawns subagents (via the Agent/Task
tool), they appear under a collapsible Subagents · N running group beneath
the session, each with its task, a live activity line (agent type, last tool,
turns, age), and its own todos on the rare occasion it has them. Rows clear as
the subagents finish.
- Every window, one place — sessions are read globally from local Claude
Code and Codex transcript stores, so a single panel shows every active coding
session across all your open VS Code windows and workspaces — not just this
one — sorted most-recent-first.
- Session state at a glance — a spinner while an agent is working, a warning
when a session looks like it's waiting on you (e.g. a permission prompt), and a
check when it's idle.
- Context usage — the percentage of a session's known effective context
window, or its token count when the model/window is unknown, shown per session
and in the status bar (matching Claude Code's
/context where applicable).
- Status-bar widget — a compact
current/total · NN% readout (or token
count when the window is unknown) for the session running in your current
workspace, with a tooltip listing every active session.
Requirements
Use Claude Code and/or local Codex CLI or IDE sessions at least once, so their
transcripts exist under ~/.claude/projects/ and/or ~/.codex/sessions/. The
extension reads those files read-only; it does not run or control either agent.
Installation
From the VS Code Marketplace: search for Coding Session Todos in the Extensions view,
or install from the command line:
code --install-extension abslabs.coding-session-todos
Or build and install a local .vsix:
npm install
npm run package # produces coding-session-todos-<version>.vsix
code --install-extension coding-session-todos-<version>.vsix
Settings
| Setting |
Default |
Description |
codingSessionTodos.activeSessionMinutes |
300 |
How recently a session must have been touched (in minutes) to appear in the panel. Default 300 (5 hours). Min 5, max 1440 (1 day). |
How it works
- Lists local Claude Code and Codex transcripts whose modification time is within
the active window, and reads only the trailing ~1 MB of each (transcripts
routinely exceed 20 MB).
- Scans Claude tails backward for the latest
TodoWrite tool call and renders
input.todos, plus the session's title, inferred state, and context usage.
- Reads Codex rollout metadata and task lifecycle events for its workspace,
indexed title, state, effective context usage, and structured progress
updates. Codex has no equivalent stable
TodoWrite payload, so the extension
intentionally shows an activity view rather than invented todos.
- Reads any subagents a session spawned from the
<sessionId>/subagents/ sidecar
transcripts Claude Code writes, and shows the ones still running.
- The workspace folder is matched against the
cwd recorded inside each
transcript, not guessed from the folder name (Claude Code's encoding has shifted
across versions).
- Re-reads on file changes (debounced) and re-scans when sessions start, stop, or
age out.
Privacy
Everything stays local. The extension only reads transcript files already on your
machine and makes no network requests.
Development
npm install # also wires up the pre-commit hook (typecheck + test)
npm run build # compile to out/
npm test # vitest
Press F5 in VS Code to launch an Extension Development Host with the extension
loaded. See AGENTS.md for architecture notes.
License
MIT