Skip to main content
Glama

Codex Goal Viewer

Node.js 22+ License: MIT

Codex Goal Viewer is a compact Codex Desktop plugin for long-running Goal tasks. It adds a conversation side-panel entrypoint that shows only:

  • Goal progress

  • Token consumption

  • A rough remaining-time estimate

Use the icon button at the bottom of the panel to collapse or expand it.

How it works

The plugin uses supported Codex and MCP interfaces instead of reading the desktop DOM or parsing free-form model text:

  1. Trusted Codex lifecycle hooks record the current conversation session ID.

  2. The hook asks the Goal agent to report completed and total from its structured plan through goal_progress.report.

  3. The MCP server reads tokensUsed and timeUsedSeconds from Codex thread/goal/get.

  4. An MCP App with an OpenAI thread entrypoint renders the compact side panel and refreshes every 2.5 seconds.

Progress is completed / total. ETA uses the elapsed Goal time and current percentage:

remaining = elapsed x (1 - completion) / completion

The panel displays a deliberately broad 75%-125% range. It is directional, not a deadline. Tokens are displayed but do not affect percentage or ETA.

Related MCP server: toshi-mcp

Install in Codex Desktop

Requirements:

  • Codex Desktop with plugin, hook, and MCP Apps support

  • Node.js 22 or newer available as node

Install from the GitHub marketplace repository:

codex plugin marketplace add GuMu599/-codex-goal-viewer
codex plugin add codex-goal-viewer@gumu-codex-plugins

Review and trust the two plugin hooks when Codex asks. Start a new Goal conversation, or send the next message in an existing Goal conversation, so the hook can bind that conversation to the viewer.

Open the panel from the conversation header:

  1. Select the + button at the upper right to open a conversation side tab.

  2. Select 更多工具....

  3. Under 插件和 MCP, select Goal Progress.

The 来源 card only confirms that codex-goal-viewer is connected; selecting that source does not open the panel. The first load can briefly show 暂无数据 while Codex returns the current Goal snapshot. Keep the Goal Progress tab open for live updates. Use the arrow at the bottom of the panel to collapse it to one line or expand it again.

Update or remove

codex plugin marketplace upgrade gumu-codex-plugins
codex plugin remove codex-goal-viewer@gumu-codex-plugins

Local runtime state is stored under %USERPROFILE%\.codex-goal-viewer\plugin by default. Override it with GOAL_VIEWER_DATA_DIR when needed.

Development

npm ci
npm run build:plugin
npm test
npm run check
npm run verify:plugin
git diff --check

npm run verify:plugin checks the publishable files, launches the bundled MCP server, and verifies all three tools plus the text/html;profile=mcp-app thread resource.

For local marketplace development:

codex plugin marketplace add .
codex plugin add codex-goal-viewer@gumu-codex-plugins

After changing hook commands, Codex intentionally marks their new hashes as modified. Review and trust the updated hooks again.

Architecture

.agents/plugins/marketplace.json  GitHub marketplace catalog
.codex-plugin/plugin.json         Codex compatibility manifest
.mcp.json                         MCP server declaration
hooks/                            Session binding and agent context
src/plugin/                       MCP server, state, and panel source
src/codex/                        Codex App Server client
dist/                             Self-contained publishable bundles

The repository still contains the original localhost viewer under src/server and src/public for development and regression coverage. The installed Codex plugin uses the bundled files in dist/.

Current limitations

  • Progress requires a structured plan with at least one step. The plugin never guesses a percentage from prose.

  • Existing conversations need one new user submission after installation so the hook can bind the session.

  • The active-session binding is local to the current Windows user. Rapidly alternating between multiple Goal conversations may briefly show the most recently active one until the current conversation reports again.

  • Lifecycle hooks make this a desktop/local-executor plugin. It is distributed through this GitHub marketplace repository rather than the universal public plugin directory.

Security

  • Hook commands are explicit and hash-trusted by Codex.

  • The plugin stores only the session ID, workspace/transcript paths supplied by Codex, and structured step counts.

  • It does not inspect model reasoning, scrape the UI, inject CDP, or send telemetry.

  • MCP App HTML is bundled locally; no remote scripts are loaded.

License

MIT. See LICENSE.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    Not graded
    maintenance
    Provides comprehensive telemetry and usage analytics for Claude Code sessions, including token usage tracking, cost monitoring, and tool usage patterns. Enables users to monitor their Claude usage with detailed metrics, warnings, and trend analysis.
    12
    -
  • F
    license
    A
    quality
    B
    maintenance
    Enables monitoring and analysis of agent goal achievement and failures across sessions, repos, and tools, with detailed views and tracing.
    3
    -