A 15-key Stream Dock (293V25) local dashboard for OpenAI Codex: live task status, real phase, elapsed time, recent activity, weekly quota, tokens, cache rate, context usage, recent tasks, and local shortcuts—without sending prompts to the network.
為 Stream Dock 293V25 製作的 15 鍵 Codex 本機控制台:任務狀態、真實階段、經過時間、最近活動、配額、Tokens、快取率、Context、最近任務與本機快捷操作。
- Refresh every 2s while a Codex task is running/waiting, every 10s when idle
- Green completion animation for 10 seconds (no sound)
- Open current/recent tasks via
codex://threads/{threadId} - Daily budget derived from weekly remaining quota and days until reset
- Mouse idle wake: turn Stream Dock screen off after 30 minutes without mouse movement; wake immediately on move
- Optional device serial filter via environment variable (default: any device)
- Auto-starts with Stream Dock / Windows login helpers—Codex UI does not need to be open
- The idle helper does not call Codex, OpenAI APIs, or any network service
- It only watches Windows mouse-move events and stores a last-activity timestamp (no coordinates, clicks, keys, or screenshots)
- The console reads only task titles, lifecycle, tool types, timestamps, and token stats from
%USERPROFILE%\.codex\session_index.jsonlandsessions/**/*.jsonl - It does not read prompt text, command content,
auth.json, or credentials - Daily budget state lives in
%LOCALAPPDATA%\CodexStreamDock\daily-budget.json
- Download
release/Codex-Stream-Dock-Plugin-v1.1.1.zip(or build from source) - Copy
com.local.codex.monitor.sdPlugininto:%APPDATA%\HotSpot\StreamDock\plugins\ - In Stream Dock device settings, set auto lock screen to Never so this plugin owns the 30-minute rule
- Restart Stream Dock
If you have multiple Stream Dock units and only want one controlled:
# User-level env var, then restart Stream Dock
setx CODEX_STREAM_DOCK_SERIAL "YOUR_DEVICE_SERIAL"Leave unset to match any compatible device.
profile/*.sdProfile is a sample 15-key layout for the 293V25 “Codex Console” panel.
release/Codex-Console-Profile-v1.1.zip is a portable copy.
Unpack the .sdProfile folder into %APPDATA%\HotSpot\StreamDock\profiles\ and restart Stream Dock. Re-bind the profile to your device if the sample serial does not match.
The mouse helper is plugin-src/helpers/mouse-idle-wake.ps1 (event-based mouse wait, not high-frequency polling). Device transport uses the MiraboxSpace StreamDock Device SDK (transport.dll); MIT notices are in plugin-src/helpers/THIRD-PARTY-NOTICES.txt.
npm install
npm test
npm run check
npm run build
npm run smokeBuild output: build/com.local.codex.monitor.sdPlugin
Test suite: 46 tests.
| Variable | Default | Meaning |
|---|---|---|
CODEX_STREAM_DOCK_SERIAL |
empty | If set, idle wake only targets this serial |
CODEX_STREAM_DOCK_STATE_PATH |
%LOCALAPPDATA%\CodexStreamDock\daily-budget.json |
Daily budget state file |
See CONTRIBUTING.md.
Stream Dock, Codex, and third-party SDKs remain under their respective terms.
