Codex Mission Control
Codex Mission Control is a local VS Code dashboard for OpenAI Codex sessions, parent chats, and subagents.
The first version intentionally reads Codex JSONL session files instead of requiring native SQLite bindings. That makes the extension easier to package and more likely to work on any Windows machine where Codex writes to %USERPROFILE%\.codex.
What it shows
- Parent chats as pipeline columns.
- Named subagents grouped under each parent chat.
- Active, idle, done, error, and archived states.
- Latest message, workspace, Git branch, model/provider, token count, and latest activity.
- Remaining Codex usage in the 5-hour and weekly windows, including reset time and date.
- Diagnostics for Codex home, session folder, session index, and state database.
Data sources
By default the extension resolves Codex home in this order:
codexMissionControl.codexHome VS Code setting.
CODEX_HOME environment variable.
%USERPROFILE%\.codex on Windows, or ~/.codex elsewhere.
The MVP reads:
.codex/sessions/**/*.jsonl
.codex/archived_sessions/*.jsonl
.codex/session_index.jsonl for renamed chat titles
.codex/state_5.sqlite for the local Codex thread index and parent/child edges
rate_limits snapshots from local token_count events for the same usage windows surfaced by Codex
When a thread exists in state_5.sqlite but its JSONL rollout file is missing or outside the scanned folders, Mission Control still shows it with the metadata available from the local thread index.
Usage cards only show snapshots whose reset is still in the future. If the current Codex plan or client does not publish one of the windows, that card displays Sem dado atual do Codex instead of reusing an expired percentage.
Install from source
git clone https://github.com/kolling88/codex_mission_control.git
cd codex_mission_control
npm install
npm run package
code --install-extension .\codex-mission-control-0.1.5.vsix
Then open VS Code and run:
Codex Mission Control: Open Dashboard
Useful settings
{
"codexMissionControl.codexHome": "",
"codexMissionControl.refreshIntervalMs": 2000,
"codexMissionControl.includeArchived": false,
"codexMissionControl.maxSessions": 300,
"codexMissionControl.activeThresholdMinutes": 10,
"codexMissionControl.showPreview": true
}
Leave codexMissionControl.codexHome empty unless Codex uses a non-standard directory.
Privacy
The extension reads local Codex files from your machine. It does not send transcripts anywhere. Preview text is shown only inside the local VS Code webview and can be disabled with codexMissionControl.showPreview.
Build
npm install
npm run compile
npm run package
GitHub Actions also builds a .vsix artifact on push and pull request.