Codex Session NotifierMonitor VS Code Codex sessions locally and on Remote SSH hosts. Receive a pushplus notification through your chosen channel when a reply finishes, with the actual machine and session name in its details.
Status barClick the Codex Session Notifier status bar item at the bottom right to open the native VS Code Quick Pick at the top. The menu provides the notification switch, pushplus token setup, channel selection and test, refresh, logs, and settings. Test message review also uses Quick Pick, without centered native dialogs. Hover over the item to see the selected channel, notification state, and running sessions grouped by machine, with their names and elapsed time. The list combines fresh snapshots from local and Remote SSH windows sharing this local state. A running session means an explicit Codex reply has started and has not ended, including a turn waiting for a tool or approval; recent file updates alone do not establish this state. The reader also verifies the executing backend. Headings, status paragraphs, and footer links share a text inset; lists retain native indentation. Section spacing follows the native Agent Usage Bar layout. VS Code controls the outer padding and line wrapping. The hover stays native, including its possible brief replacement when visible content changes. Activity already in progress at startup is discovered through bounded backward reads. Until its start marker or backend can be verified, it appears as an activity check rather than an invented running session. Sources without an update for 30 seconds are marked delayed and excluded from the running count. Local UI snapshots expire after 90 seconds; they contain names and IDs, never prompts, replies, or tokens. The notification outbox continues to store IDs and delivery metadata only. Archived history is excluded from new activity candidates. A session already being monitored can have its final records checked in the native archive directory before its read cursor is retired; the existing completion evidence, backend verification, recovery window, and deduplication rules still apply. Archiving alone is not a completion signal. An archive move can cause records to be read again after the backend closes the file. Already queued replies are recognized by the exact source, session, and turn IDs in the existing local outbox, before attempting source verification again. This prevents a misleading warning about a notification already processed. Unseen turns still require backend verification, including new turns in a file containing previously queued replies. No additional remote state or service is installed. If the current window says Some completion notifications await source verification, a completion record was found but could not be associated with an existing Codex backend on that machine. That notification is withheld and retried within the existing recovery window; other sessions continue monitoring. Open the status bar menu and choose Show logs for the UTC timestamp, machine, source ID, session name and ID, turn IDs, verification stage, and any OS error code. These diagnostics stay in the local output channel. A missing backend observation alone cannot distinguish synchronized history from a transient inspection failure; this message is unrelated to Codex command approval or notification transport. Activity has its own persisted read position and runs before completion replay, so a busy notification cursor cannot starve the running-session list. Normal scans read at most 1 MiB and process at most 100 records. During initial lifecycle backfill, bounded batches can read up to 8 MiB, with a 250 ms pause between successful unfinished scans; the reader still reserves space for notification replay. After backfill, normal five-second polling resumes. Unknown backend bindings and invalid metadata do not trigger fast retries. UI snapshots from older versions cannot overwrite this activity state. Unchanged hover text is not reassigned; machine and session ordering is stable and elapsed time changes at minute resolution. While a new window initializes, the status bar menu remains available. The first hover waits for real saved settings and the source's initial status; it does not briefly display guessed notification settings or an empty session list. A short settling period combines initial discoveries and transient diagnostics, capped at eight seconds after the first snapshot becomes available. Scan status follows activity publication, and subsequent UI changes are combined within 100 ms. Concurrent refresh requests wait for the latest read. Errors remain visible, and later session changes continue updating normally. NotificationsThe title is the session name, without a machine name or generic prefix. For example:
The details contain:
Commands, dialogs, settings descriptions, status messages, and fixed notification text are in English. Session names and machine labels keep their original language. Unnamed sessions use an explicit short-ID fallback. Long titles are shortened to fit the request budget; details retain a longer name. Only machine labels, session names, completion status, and time leave your computer. Prompts, replies, code, working directories, and raw logs are excluded. A timestamp distinguishes successive replies in the same session. Install and enableIf you installed the earlier local preview with ID
See pushplus channel setup for channel prerequisites, configuration codes ( The extension runs in the local UI host and starts with VS Code. No notification program, hook, package, or persistent service is installed remotely.
Codex version numbers are diagnostic information, not an installation or scanning gate. New or absent version fields and additional unrelated fields do not block the known record format. The current adapter uses Real format samples have been checked on Source settingsStore settings locally once. Use
An empty label uses the actual hostname returned by the reader. A symlinked Codex home is resolved automatically. For example, Simple Remote SSH authorities are discovered from the current workspace. Complex authorities and custom paths can need a one-time override. Full Remote SSH window lifecycle and multi-host acceptance remain unverified. An unidentified remote source never falls back to the local computer. Set Delivery and troubleshooting
The local SQLite outbox atomically deduplicates replies across windows. Automatic requests are spaced at least 13 seconds apart. A crash before HTTP submission can be retried; a crash or timeout after submission becomes unknown and is not blindly resent. Explicit provider rejection pauses delivery. Check your pushplus account's records and limits before using Enable again for future notifications. No extra Open API management credential is requested for result lookup. Offline completions can be recovered only with explicit completion evidence, within the 30-minute recovery window. On restart, pending names are read from specific metadata columns through the existing reader. Names and notification bodies are not stored in the outbox. Your local computer must be awake and able to reach the backend. Closing all VS Code windows stops monitoring. An open-source SDK does not make the hosted service fully open source or guarantee account safety. DevelopmentUse Node.js 22+, npm, and Python with the standard-library SQLite module (the development suite is run with Python 3.11; runtime readers retain Python 3.7 syntax):
Probe options include The extension integration test uses an existing desktop VS Code with isolated test data; it never downloads an editor:
Optional DocumentationSee pushplus channel setup for recipient prerequisites and channel-specific limits. LicenseMIT. Third-party components retain their own licenses; see third-party notices. |