// live agent control
Live agent control (MCP)
rekord mcp runs a Model Context Protocol server over stdio. An AI agent (Claude Code, Cursor, …) launches terminal programs, sends input, waits for output, and reads a deterministic screen frame — instead of guessing from a raw byte stream. Every agent session is also recorded, so you can export, replay, and handoff it afterward.
Start the server
$ rekord mcp
| flag | default | description |
|---|---|---|
| --root | ~/.rekord/sessions | Where sessions are recorded. |
| --config | ~/.rekord/rekord.yaml | Config file (redaction patterns). |
| --no-redact | false | Disable redaction of captures and logs. |
Register with Claude Code
$ claude mcp add rekord -- rekord mcp
Or add it to your MCP client config:
{
"mcpServers": {
"rekord": { "command": "rekord", "args": ["mcp"] }
}
}
Tools
| tool | purpose |
|---|---|
| launch | Start a program in a new session (name, command, cols, rows, cwd, env). |
| send | Send text and/or named keys (enter, tab, esc, ctrl-c, arrows, …). |
| capture | Return the current screen frame (grid + cursor). raw: true for unredacted text. |
| wait_text | Block until the screen contains text, the process exits, or timeoutMs elapses. |
| wait_idle | Block until output is quiet for quietMs. |
| wait_exit | Block until the process exits. |
| logs | Return the retained output transcript (maxBytes, raw). |
| resize | Resize the terminal viewport. |
| stop | Terminate a session and finalize its recording. |
| list / status | Inspect active and finished sessions. |
Every wait returns a reason: matched, idle, exited, or deadline.
Memory tools
Rekord Memory adds tools so agents can read and write persistent project memory and resume interrupted work.
| tool | purpose |
|---|---|
| memory_write | Persist a project memory. |
| memory_search | Search project memory. |
| memory_list | List memories. |
| memory_get | Read one memory by id. |
| memory_resolve | Mark a memory or blocker resolved. |
| memory_projects | List every project that has stored memory. |
| snapshot_create | Capture git-aware project state. |
| resume_context | Return latest snapshot, relevant memories, changed files, patches, blockers, and continuation context. |
Example flow
launch—{ "name": "build", "command": ["npm", "run", "dev"] }wait_text—{ "name": "build", "text": "ready in", "timeoutMs": 30000 }capture—{ "name": "build" }→ inspect the framestop—{ "name": "build" }
▋ privacy
capture and logs are redacted with your configured patterns by default. Pass raw: true (or start the server with --no-redact) only when you need the unredacted screen — transcripts may contain secrets.