CCUH
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CCUHverify the intended window and show recent Computer Use call records"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Under active development.
The Problem
Computer Use depends on the intended app and window matching what Codex actually observes and where its input goes. CCUH was motivated by sessions where that connection was unreliable:
Selecting an app could still bind observations and input to the wrong window.
Switching windows during normal Mac use could disrupt the expected target.
Repeated attempts continued silently, hiding targeting failures.
CCUH's goal is dependable Computer Use while you keep using your Mac. The intended target should be maintained and verified, and targeting failures should be surfaced promptly rather than silently retried.
Related MCP server: agent-prompt-capture
How It Works
The CCUH plugin bundles a local MCP server, Codex hooks, and a companion skill to make tool-call behavior observable:
Observe: hooks record metadata before and after supported Computer Use calls.
Pair: records are grouped by session and tool-call identifiers, keeping incomplete or conflicting pairs visible.
Inspect: MCP tools expose connection diagnostics and recent call records inside Codex.
Guide: the bundled skill provides app and window targeting guidance, including when to surface failures.
The MCP server runs as a local Node process on your Mac. No external server deployment or OpenAI API key is required.
CCUH's hooks and companion skill apply only to bundled Computer Use tasks. Coding, terminal commands, web search, and other MCP tools do not trigger observation. Codex may keep the MCP connection available while idle; this does not start window control or background monitoring.
Get Started
You need macOS, Node.js 24 or later, and Codex App or Codex CLI with Computer Use configured. Node.js must be available to the Codex process; CCUH uses your installed Node.js and does not bundle it.
1. Add the marketplace
codex plugin marketplace add Package-KR/CCUH2. Install the plugin
Open Plugins in Codex App, or enter /plugins in Codex CLI. Find CCUH in the ccuh marketplace and install it.
The plugin provides the MCP server, Computer Use hooks, and companion skill together. You do not need to edit MCP server or user hook configuration files.
3. Review and restart
If Codex prompts for hook review, review and trust the CCUH hooks in your client. In Codex CLI, open /hooks.
Restart Codex App or start a new Codex CLI session, depending on which client you use. Then use CCUH during your Computer Use task.
Use one registration route. Do not enable the native plugin and manual registration at the same time.
If you cannot use the native plugin, run:
npx --yes github:Package-KR/CCUH setupThis installs a persistent local runtime in ~/.codex/ccuh/runtime, registers the MCP server and Computer Use hooks, and backs up configuration before changing it. Existing MCP servers and hooks are preserved.
Review the CCUH hooks when Codex prompts you. In Codex CLI, open /hooks. Then restart the Codex client or session you use.
Usage
Ask Codex:
While carrying out my app task with Computer Use, use CCUH to verify the intended window and report targeting failures.
Tool | Purpose |
| Check the MCP response and summarize observation records |
| Inspect recent calls, paired events, and missing or conflicting records |
An MCP response confirms connectivity. Real hook records show whether automatic observation is running.
Updates
After changes reach main, GitHub Actions validates the build and github-actions[bot] publishes the next patch version, version commit, tag, and GitHub Release. Users do not need a development checkout or a rebuild.
Codex handles marketplace refresh and installed plugin updates. CCUH does not add a background updater or modify its installed cache. If an update has not appeared, refresh the marketplace:
codex plugin marketplace upgrade ccuhCodex may request review of changed hooks. If your client still uses the previous version after refreshing, start a new chat or restart the app.
Develop on dev and merge reviewed changes into main. CI runs on dev pushes and pull requests to dev or main, checking types, building the runtime, and checking the native Swift sources. Release calls the same CI workflow before publishing from main.
The Release workflow proceeds only after shared CI succeeds and checks out the exact verified commit. It keeps the package, lock file, plugin manifest, and runtime version in sync, rebuilds after incrementing the version, and publishes with the repository's GITHUB_TOKEN. Allow GitHub Actions to write to main and release tags.
For a minor or major increment, run Actions → Release → Run workflow with the desired bump. If the version commit and tag succeeded but GitHub Release publication failed, rerun the failed publish job or set repair_tag to the existing tag. This publishes the same version without another increment.
Concurrent pushes can be included in one release: CI checks the latest main, then the release uses that verified commit. A conflicting branch update stops publication without a force push.
Data
Records are stored in ~/.codex/ccuh/state/events.jsonl by default. They contain metadata such as timestamps, tool names, input-field types, and hashed identifiers.
Raw code, chat content, screenshots, and credentials are not stored.
Collection accepts only mcp__cua_repl__js and mcp__cua_repl__js_reset. Unknown tool names are excluded. Existing files are preserved; entries outside this scope are ignored when reading records.
The observed pre/post time difference includes hook, process, and storage overhead. It is not an app or window acquisition benchmark.
License
CCUH is distributed under the MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
- HypAwareOAuthai.hypaware
Query your team's AI coding history and act on HypAware recommendations from any MCP client.
MCP observability: analyse MCP server usage, investigate sessions, and instrument MCP servers.
- SpanlyOAuthcom.spanly
MCP observability. Query live traffic, errors, duration, and alerts from your AI agent.
- AgentCatOAuthcom.agentcat
Analytics and debugging for your MCP server — explore usage and sessions, then root-cause errors.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceReads local Codex rollout logs to expose context-window usage snapshots, remaining-token estimates, and log-event freshness through a read-only MCP tool.MIT
- AlicenseAqualityBmaintenanceProvides a local MCP interface to query captured, PII-scrubbed prompt telemetry from coding agents and browser chats, enabling time summaries, prompt search, and activity analysis without data leaving the machine.9MIT
- AlicenseNot gradedqualityBmaintenanceProvides MCP tools to search and explore a locally stored screen history, query app/window activity, and manage recording controls such as pause and deletion.MIT
- FlicenseNot gradedqualityAmaintenanceEnables MCP clients such as Claude Code, Codex, and Cursor to debug failing traces, sessions, and exceptions, inspect route decisions, prompts, datasets, and metrics, and control token overhead via compact output, file dumps, and selective tool loading. It supports local stdio or HTTP deployment with optional read-only mode for safer observability workflows.-