| Mobile | Desktop |
|---|---|
![]() |
![]() |
Treat your agent as a collaborator.
Open the console.
Agents can run for hours. At that point they stop feeling like “tools” and start feeling like “coworkers”.
Coworkers don’t dump their entire context on you — they bring progress, questions, and decisions. HAP defines that contract; cue-command implements it.
| Package | What it is | Source |
|---|---|---|
cue-console |
UI inbox (desktop + mobile) | /cue-console |
cue-command |
HAP command adapter (cueme) |
/cue-command |
cue-mcp |
HAP implementation (MCP server) | /cue-mcp |
npm install -g cue-console
npm install -g cueme
cue-console startOpen http://localhost:3000.
Use cueme proto to inject protocol.md into your runtime's persistent rules.
Example (macOS + Windsurf):
cueme proto apply windsurfReference:
cue-command/protocol.mdcueme protodocs: cue-command/docs/proto.md
In your IDE chat panel, send the text:
cue
Then continue follow-up conversation rounds in cue-console (http://localhost:3000).
Optional: MCP server (cuemcp)
Recommended runtime command:
command:uvxargs:--from cuemcp cuemcp
Claude Code:
claude mcp add --transport stdio cuemcp -- uvx --from cuemcp cuemcpOther runtimes (Windsurf / Cursor / Codex / VS Code)
Windsurf (~/.codeium/mcp_config.json):
{
"mcpServers": {
"cuemcp": {
"command": "uvx",
"args": ["--from", "cuemcp", "cuemcp"]
}
}
}Cursor (mcp.json in your project):
{
"mcpServers": {
"cuemcp": {
"command": "uvx",
"args": ["--from", "cuemcp", "cuemcp"],
"env": {}
}
}
}Codex:
codex mcp add cuemcp -- uvx --from cuemcp cuemcpVS Code:
{
"servers": {
"cuemcp": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "cuemcp", "cuemcp"]
}
}
}cue-consoleis running and you openedhttp://localhost:3000- If you're using cuemcp:
uvxis available (uvinstalled) and your runtime can launch the MCP server - Both sides can access the same mailbox DB:
~/.cue/cue.db - Your runtime has the HAP rule injected (so it calls
cue()before ending and waits for you)
Architecture (at a glance)
Agent/Runtime ⇄ (cueme OR cuemcp) ⇄ ~/.cue/cue.db ⇄ cue-console
flowchart LR
A["Agent / Runtime\nClaude Code • Cursor • Windsurf • Codex"]
B["cueme\ncommand adapter"]
E["cuemcp\nMCP server"]
C[("~/.cue/cue.db\nSQLite mailbox")]
D["cue-console\nUI (desktop/mobile)"]
A -->|command| B
A -->|MCP stdio| E
B --> C
E --> C
D <-->|reads/writes| C


