Cursor is the AI built into my code editor. It connects to the same Fulltrace server as Claude Code and Codex, so it gets the same notes about me, and the full set of tools. One hook logs every slash command it runs back to that server, so Studio shows what my assistants have been asked to do in one place. Another stops shell commands that would send data off this machine.
There is no separate server for Cursor. It registers the same shared agentOS-portfolio server in ~/.cursor/mcp.json and gets all fourteen tools, like Claude Code. Its config carries the second token that allows changes, which Codex does not have. The portfolio reads matter most here: Cursor gets the same context about who I am, what I am working on and how I like things done that Claude Code loads from CLAUDE.md.
The full tool table is on the Codex page. All fourteen work from Cursor.
Cursor is not offered as a builder for development slices. Nobody has verified a way to drive it without a person at the keyboard, so Studio's launch picker shows it greyed out, with that reason beside it.
Studio's setup wizard can walk through this. By hand it is three steps: check the server is running, run the Cursor sync script, then turn the server on inside Cursor. Nothing needs setting up before you start.
The sync script locates the repo from its own path, so there is no environment variable to configure before running it. It expands an {{AGENTOSROOT}} token into everything it deploys, which is what let the whole repo move from C: to D: without a single hardcoded path following it.
Run pm2 status and confirm agentOS-portfolio shows as online. If it is not running, start it from mcp-server/ with pm2 start ecosystem.config.cjs, which pins its port and settings.
& "<repo>\clients\cursor\sync.ps1" push-runtime
This deploys mcp-config.json to ~/.cursor/mcp.json, copies hooks.json, and deploys shared skills to ~/.cursor/skills/.
Open Cursor, go to Settings → MCP (or run Cursor: Open MCP Settings from the command palette). The agentOS-portfolio server should appear. Enable it if shown as disabled, then reload the Cursor window so hooks and MCP config take effect.
Cursor runs two hooks. The first posts every slash command I run to the Fulltrace server, tagged tool: "Cursor", and it shows up in Studio under Config > Commands, in the same log as Claude Code. The second checks each shell command before it runs and refuses any that would send data off this machine. It uses the same rule as Claude Code, kept in one shared file so the two cannot drift apart.
The sync script copies all 17 shared commands from clients/shared/skills/ to ~/.cursor/skills/. On the way it fills in each command's {{TOKEN}} placeholders (the repo path, the client name, the lightweight model id), so one copy of each command works in every assistant and on every machine. They run as /jn-* slash commands in Cursor, and each run is logged to Studio by the hook above.
The full list is on the Claude page. All 17 are the same in Claude Code, Codex and Cursor.
One script keeps Cursor in step with the repo. It pushes the config and commands out, pulls them back to inspect, or checks whether the two have drifted apart.
| Command | What it does |
|---|---|
| push-runtime | Deploys mcp-config.json to ~/.cursor/mcp.json, hooks.json, and shared skills. |
| pull-runtime | Copies ~/.cursor/mcp.json back into the repo for inspection or comparison. Useful for auditing drift. |
| check-sync | Reports whether the repo copy and ~/.cursor/ are in sync. Exits non-zero when drift is detected. |