Skip to main content
Cursor connects to Smithers in two directions, and they are independent:
  • Cursor drives Smithers. Register the MCP server and add a project rule, then ask Cursor to start, watch, and approve runs. That is everything up to Add a project rule.
  • Smithers drives Cursor. CursorAgent spawns the cursor-agent CLI as a worker inside a <Task>, the same way CodexAgent spawns codex. See Run cursor-agent as a Smithers worker.
Most setups use both: Cursor is where you talk to Smithers, and cursor-agent is one of the CLI workers Smithers can hand a task to.

Drive Smithers from Cursor

Cursor extends through MCP servers, rules, and the headless cursor-agent CLI. Smithers plugs into those surfaces; generated CLI skill files can also sync to ~/.agents/skills.
Registers the MCP server; reopen Cursor and the Smithers tools appear in the Agent.

Register the MCP server

mcp add writes the registration. By hand, create .cursor/mcp.json in the project (or ~/.cursor/mcp.json for all projects); Cursor uses the mcpServers key:
The server exposes list_workflows, run_workflow, watch_run, resolve_approval, and the rest. Full reference: MCP Server.

Optional generated skill files

skills add syncs generated Smithers CLI skill files into ~/.agents/skills globally, or .agents/skills with --no-global. Use this if Cursor bridges that directory into its skill context:

Add a project rule

A rule keeps Smithers in context whenever someone works in .smithers/. Create .cursor/rules/smithers.mdc:
Cursor also reads a plain AGENTS.md at the repo root, the same file Codex and Copilot use.

Headless: cursor-agent driving Smithers

cursor-agent runs Cursor’s agent in the terminal, honoring the same .cursor/ config, so the MCP server and rule above apply in CI. Bridged generated skill files travel with the same setup:

Run cursor-agent as a Smithers worker

This is the other direction: Smithers spawns cursor-agent to do the work. CursorAgent is a first-class CLI adapter, so it goes wherever any other CLI agent goes.
It runs cursor-agent --print --output-format stream-json --stream-partial-output --trust --workspace <task cwd> and streams the parsed events into the run UI: assistant text, thinking, and one row per tool call. Smithers maps task resumes onto cursor-agent --resume <chat-id>. bunx smthrs init scaffolds .smithers/agents/cursor.ts and wires Cursor into the generated agent pools whenever cursor-agent is installed and signed in (cursor-agent login, or CURSOR_API_KEY). Full option list: CLI Agents. Interactive bunx smthrs hijack takeover is not wired up for Cursor yet, so a paused run resumes headlessly rather than handing you a live Cursor session.

See also