{"schemaVersion":"1.0","publication":{"slug":"pivot-cursor","name":"Cursor HQ","description":"Product updates and proven workflows for building software with Cursor.","audience":"Engineers and product teams using the Cursor editor.","geography":null},"edition":{"id":"74326709-1e02-43de-a6a8-98ae339155e1","date":"2026-10-30","status":"locked","createdAt":"2026-10-29T01:06:29.955Z","storyCount":10,"newsletterSubject":"Agents now test iOS apps via Simulator, Agent SDK graduates to general availability, One plugin connects email calendar Drive GitHub"},"updatedAt":"2026-10-29T01:02:00.450Z","stories":[{"id":"6b889605-d878-42cd-a458-acedd4d09e6d","title":"Let Cursor agents tap through the iOS Simulator to check the feature they just built","dek":"Computer Use lets Cursor's agents click and type in any app on your computer, including the iOS Simulator (Apple's tool that runs an iPhone app on your Mac), so they can try a change in the running app instead of stopping at the code.","bodyMd":"Cursor's agents can now click and type across any app on your computer, not just the browser. Cursor announced Computer Use on October 23, and the practical job is verification: an agent that has just written a feature can open the real app and try it.\n\nCursor's demo shows the pattern. The agent adds a favourite-trails feature to an iPhone app, launches it in the iOS Simulator (Apple's tool that runs an iPhone app on your Mac), taps the heart itself, then checks the favourites list. Reading the code changes tells you what the agent intended. A tap and a look at the result tells you whether it works.\n\nTo use it, update Cursor from cursor.com/download. Cursor says the agent invokes Computer Use on its own when a task needs it. You can also ask for it directly by @-mentioning Computer Use in your prompt. One suggested habit is to end prompts by telling the agent to demo the feature.\n\nControl is adjustable. Per the Cursor docs on run modes, as cited by one roundup, you can have Cursor ask before every action under Settings > Agents > Approvals & Execution > Ask Every Time, or turn the feature off.\n\nSetup on a Mac has a cost. The helper app reportedly needs accessibility and screen recording access, which means it can see your whole screen. One walkthrough recommends running it under a separate Mac user, using throwaway data, and reopening the app afterward to confirm saves persisted.\n\nReach for it when a change only shows up in a running app, such as a simulator flow, and a diff (the line-by-line list of what changed) can't prove it works.","status":"published","storyType":"news","category":"Release","clusterKey":"cursor-computer-use-agents","slug":"let-cursor-agents-tap-through-the-ios-simulator-to-check-the-feature-the-6b8896","url":"https://cursorhq.ai/news/let-cursor-agents-tap-through-the-ios-simulator-to-check-the-feature-the-6b8896/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/6b889605-d878-42cd-a458-acedd4d09e6d","role":"lead","position":0,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/let-cursor-agents-tap-through-the-ios-simulator-to-check-the-feature-the-6b8896/81540efd317ea551-6398abf18368a311/web_hero.webp","imageAlt":"A metallic mobile device sits in a mechanical dock while an automated finger presses a circular button on its screen.","createdAt":"2026-10-29T00:54:38.769Z","updatedAt":"2026-10-29T01:02:00.450Z","sources":[{"role":"primary","title":"Computer Use lets agents click and type across any app on your computer, not just the browser. Cursor uses it on its own","url":"https://x.com/cursor_ai/status/2113661518780998003","sourceName":"@cursor_ai","author":"cursor_ai","publishedAt":"2026-10-23T15:59:10Z"},{"role":"supporting","title":"Cursor agents can now control your computer and interact with desktop apps","url":"https://reddit.com/r/AIGuild/comments/1xfk07k/cursor_agents_can_now_control_your_computer_and","sourceName":"/u/Such-Run-4412","author":"/u/Such-Run-4412","publishedAt":"2026-10-26T01:41:45Z"},{"role":"supporting","title":"Cursor's AI agents can now control any app on your computer. Rating AI news until one hits 10/10. Too high or too low? Big Deal Meter: ?/10,...","url":"https://tiktok.com/@technewsblitz/video/7700682221853691149","sourceName":"technewsblitz","author":"technewsblitz","publishedAt":"2026-10-25T19:00:12Z"},{"role":"supporting","title":"Cursor announced on October 23 that its AI coding agents can now use the apps on your computer: they click, type and take screenshots, like a person. That is called computer use. In Cursor's demo, th...","url":"https://instagram.com/reel/De7VNm4BTPk","sourceName":"@techaiwire_official","author":"@techaiwire_official","publishedAt":"2026-10-25T18:17:28Z"},{"role":"supporting","title":"Cursor agents can test desktop apps Every update: desktop, jobs, safety, Codex, offers and model weights.","url":"https://tiktok.com/@moleofficenews/video/7700059871084891414","sourceName":"Mole Office News","author":"Mole Office News","publishedAt":"2026-10-24T06:30:00Z"},{"role":"supporting","title":"Cursor's agents can now use your computer. Computer Use lets them click and type across any app, not just the browser. Update Cursor and @-m...","url":"https://tiktok.com/@fresh.out.of.beta/video/7699958588910947606","sourceName":"Fresh Out of Beta","author":"Fresh Out of Beta","publishedAt":"2026-10-23T20:11:59Z"}]},{"id":"9b3452cc-bc3a-4c21-a840-50aa9149b89c","title":"Cursor's Agent SDK is generally available: define agents in code and deploy them with agent-sdk deploy","dek":"Cursor's Agent SDK defines an agent as a small project, with Markdown prompts and TypeScript tools, then runs it on Cursor's hosted infrastructure or your own.","bodyMd":"Cursor's Agent SDK, released on October 27 and generally available, lets a team describe an agent the way it would describe any other service: as files in a repo. An SDK, or software development kit, is a toolkit of code and tools for building something. An agent here is a program that watches for events, such as a new pull request, and acts on them. Cursor says the SDK is the framework behind its own managed agents, including Bugbot, Security Reviewer and Rollouts.\n\nThe pitch is for recurring work that follows a team's own rules. Cursor's example is pull request review. An agent can respond to PR events from GitHub, GitLab or Bitbucket, assess the risk of a change, route it to the right team, and approve changes that meet the team's policy. Other uses named in the post are compliance workflows and incident investigation.\n\n**How an agent is laid out**\n\nAn agent is organized like a small software project. Prompts are written in Markdown, and tools are TypeScript functions. Connections to outside services and the evals used to test the agent sit alongside them. (Evals are automated checks that show whether the agent behaves as expected.) Because each file represents something the agent knows or can do, changes go through the same version control and review as the rest of your code.\n\nTo start, create a project directory and launch the local playground. The post's starter file calls `defineAgent` from `@cursor/agent-sdk` with a name (\"Robo\"), a model (`composer-2.5`, with `effort` set to `high` and `fast` set to `true`) and a local working directory. Cursor also suggests starting from a template, or pointing your coding agent at the docs. The SDK ships with skills meant to guide coding agents through the build.\n\n**Deploying**\n\nTo deploy an agent, meaning to put it live so it runs on its own, you run the single command `agent-sdk deploy` from the project directory. (A command is a typed instruction that tells the tool what to do.) It builds the agent, gives it a URL and starts it on Cursor's infrastructure. Secrets and integrations are managed from the dashboard, and the same logs, evals and playground used locally remain available. Agents can instead run on your own infrastructure: each one is a single Node process that can be packaged in a container.\n\n**Testing before it touches production**\n\nThe SDK supports evals and event replay out of the box, so you can check that a critical workflow behaves as expected before deploying. For bigger jobs, an agent can hand a task to another specialized agent with its own tools and sessions, or split work among subagents running in parallel.\n\nCursor gives two examples of use. An internal team built kb-reviewer in about a day. It runs on every PR in their main codebase, flags changes that contradict a recorded lesson in the team's knowledge base, cites the note behind each finding, and encourages engineers to reconcile the discrepancies. The PGA Tour uses the SDK to power its software development factory. Michael Gyarmathy, principal engineer at PGA America, said built-in evals let the team iterate on new ideas and tune existing capabilities reliably.\n\nCursor's argument is that the most useful agents are tailored to how a particular team operates, following policies the team can inspect and change, and that evals let the team test them before deploying.","status":"published","storyType":"news","category":"Release","clusterKey":"cursor-agent-sdk-launch","slug":"cursor-s-agent-sdk-is-generally-available-define-agents-in-code-and-depl-9b3452","url":"https://cursorhq.ai/news/cursor-s-agent-sdk-is-generally-available-define-agents-in-code-and-depl-9b3452/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/9b3452cc-bc3a-4c21-a840-50aa9149b89c","role":"item","position":1,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/cursor-s-agent-sdk-is-generally-available-define-agents-in-code-and-depl-9b3452/9fd0bbcc69a03303-da97f9d0c54808a0/web_hero.webp","imageAlt":"A modular metal cartridge containing stacked data cards and mechanical components, representing a collection of code-based tools and instructions integrated into one deployable unit.","createdAt":"2026-10-28T19:00:49.364Z","updatedAt":"2026-10-28T20:00:28.433Z","sources":[{"role":"primary","title":"The Agent SDK","url":"https://cursor.com/blog/agent-sdk","sourceName":"Hacker News","author":"Hacker News","publishedAt":"2026-10-28T14:02:20Z"}]},{"id":"1cfb0e93-315b-425d-a78c-bcbc1698a224","title":"Give Cursor's agent your email, calendar, Drive and GitHub from one plugin repo","dek":"Cursor's official plugins repo packs each tool into its own folder, with a small config file telling Cursor what the plugin is and what it provides, so the agent can work beyond the editor.","bodyMd":"Cursor's coding agent sees the editor and little else by default. Plugins, Cursor's official plugin repository (a shared code repository that holds the plugins), is meant to change that: each plugin is a folder with its own config file (the manifest, which tells Cursor the plugin's name and what it offers), and every plugin uses the same manifest format.\n\nThe set covers work that usually happens outside the code. One plugin lets the agent search, read and draft email. A Drive plugin searches, creates and shares files. A GitHub plugin manages repos, issues, pull requests and Actions, and a Playwright plugin lets the agent click, take screenshots and test in a real browser. One source also lists a calendar plugin for your schedule, a Salesforce plugin for CRM records, and a plugin that calls in a stronger model before the agent decides.\n\nAll the plugins share the same manifest format, and installing one extends the agent past the code.\n\nTwo limits apply. These plugins need Cursor itself to run. And one source notes the repo lists no license, which leaves reuse terms unclear if you plan to copy or adapt a plugin.\n\nReach for it when you want the agent to search, read and draft email, work with your Drive files, or click, screenshot and test in a real browser.","status":"published","storyType":"news","category":"Ecosystem","clusterKey":"cursor-official-plugins-repo","slug":"give-cursor-s-agent-your-email-calendar-drive-and-github-from-one-plugin-1cfb0e","url":"https://cursorhq.ai/news/give-cursor-s-agent-your-email-calendar-drive-and-github-from-one-plugin-1cfb0e/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/1cfb0e93-315b-425d-a78c-bcbc1698a224","role":"item","position":2,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/give-cursor-s-agent-your-email-calendar-drive-and-github-from-one-plugin-1cfb0e/a7aadda5042f1925-04fe9fc6cf6bd713/web_hero.webp","imageAlt":"A modular device with eight slots holding distinct physical representations of email, documents, browser, calendar, and management tools.","createdAt":"2026-10-29T00:18:11.981Z","updatedAt":"2026-10-29T00:31:25.145Z","sources":[{"role":"primary","title":"Cursor Plugins Give Agents Gmail and Calendar Access Repo: github.com/cursor/plugins Cursor's coding agent defaults to editor-only access: n...","url":"https://tiktok.com/@skip_ci/video/7699631251434540294","sourceName":"SkipCI","author":"SkipCI","publishedAt":"2026-10-22T23:01:41Z"},{"role":"supporting","title":"Cursor Plugins","url":"https://reddit.com/r/cursor/comments/1xgpdwn/cursor_plugins","sourceName":"/u/yoyoyoav","author":"/u/yoyoyoav","publishedAt":"2026-10-27T10:57:27Z"},{"role":"supporting","title":"Cursor Plugins: Official Repo Adds Gmail, Drive, GitHub, Playwright Access","url":"https://www.youtube.com/watch?v=vek3T9F0Yb4","sourceName":"@SkipCI","author":"@SkipCI","publishedAt":"2026-10-23T23:22:11Z"},{"role":"supporting","title":"Cursor Plugins Give Agents Gmail and Drive Access Repo: github.com/cursor/plugins Plugins is Cursor's official plugin repository, every plug...","url":"https://tiktok.com/@skip_ci/video/7700002319965932807","sourceName":"SkipCI","author":"SkipCI","publishedAt":"2026-10-23T23:01:38Z"}]},{"id":"42d060c4-92e4-43f1-ae6e-de052826bfa7","title":"Check your repos for hidden files that run code when Cursor opens a project","dek":"JFrog found 42 hijacked GitHub repos holding malicious files so large that GitHub search and its API don't show their contents, wired in as hooks that run when a developer opens the project.","bodyMd":"JFrog Security Research reported Monday that attackers broke into 42 third-party GitHub repositories and planted malicious files inflated to as much as 13.7MB. Those files are sized to slip past \"the GitHub search and API paths normally used to find this kind of compromise,\" JFrog said, in a report covered by CSO Online. Wrappers around the payload \"all decoded to the same hidden CI-publisher payload.\"\n\nThe files were set up as execution hooks for Claude Code, Gemini, Cursor and VS Code. That means the code can run when a developer simply opens an affected project. Aman Mahapatra, chief strategy officer at Tribeca Softech, told CSO Online the campaign plants a Claude Code SessionStart hook, Gemini settings, Cursor MCP configuration and VS Code folder-open tasks. Mahapatra said the roughly 13MB wrappers exceed what GitHub code search indexes and what the contents API returns, which is why early analysis concluded the payload files were empty.\n\nFor Cursor users, the files JFrog says to audit include `.cursor/mcp.json` and `.cursor/rules/setup.mdc`, alongside `.github/init.js`, `.claude/settings.json` and `.vscode/tasks.json`. JFrog says to check them across any repository reachable by an affected identity. Its guidance is to enumerate repository trees directly rather than rely on GitHub code search or the contents API. It also says that installing a full-worm version should be treated as a host compromise, and that teams should revoke and rotate GitHub, GitLab, npm, PyPI, RubyGems, cloud, SSH, Vault, Kubernetes and AI-provider credentials.\n\nThe way in was npm. Malicious releases in the campaign, known as testmetest, used a `binding.gyp` command expansion to run `index.js` during installation without declaring a conventional install script. The resulting worm stole GitHub and npm credentials, which opened up third-party repositories where decoded `ci.js` files exposed publishers built to run through GitHub Actions and cut further malicious releases. JFrog also found account hijacks, forged commit timelines, short-lived publishing branches and exposed npm credentials, plus an attacker-owned repository acting as an encrypted data sink. Its scanners flagged shai-hulud packages in npm on October 21, and it credits SafeDep's October 22 analysis with first documenting the npm package side.\n\nThe compiled native addon in the campaign carries no payload itself. It decrypts a file named `.napi_cache` at runtime to reveal the real one. Frank Dickson, principal analyst at Dickson Research, said it refuses to run inside CI systems, containers, small virtual machines or under a debugger. Dickson added a caveat: the hooks are features, not flaws, and the root cause is stolen credentials rather than the AI tools themselves.","status":"published","storyType":"news","category":"Ecosystem","clusterKey":"jfrog-hijacked-repos-cursor-hooks","slug":"check-your-repos-for-hidden-files-that-run-code-when-cursor-opens-a-proj-42d060","url":"https://cursorhq.ai/news/check-your-repos-for-hidden-files-that-run-code-when-cursor-opens-a-proj-42d060/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/42d060c4-92e4-43f1-ae6e-de052826bfa7","role":"item","position":3,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/check-your-repos-for-hidden-files-that-run-code-when-cursor-opens-a-proj-42d060/ccbaf19c5a7ee116-b7892fdab044a907/web_hero.webp","imageAlt":"Forty-two opaque storage canisters sit in a grid, with one lifted to reveal a large, hidden mechanical latch underneath.","createdAt":"2026-10-28T13:41:48.800Z","updatedAt":"2026-10-28T14:00:21.666Z","sources":[{"role":"primary","title":"Oversized files hid payloads in 42 hijacked GitHub repos, JFrog reports","url":"https://pivotnews.ai/security/oversized-files-hid-payloads-in-42-hijacked-github-repos","sourceName":"Pivot News","author":null,"publishedAt":"2026-10-28T09:07:05Z"}]},{"id":"4b63cc57-e617-498d-adde-938594c5d017","title":"Comment inline on a Cursor agent's plan and send every note back in one batch","dek":"The AI Artifacts extension saves a plan as a separate editor document, so you can mark up individual paragraphs instead of pasting quotes into chat.","bodyMd":"Long agent plans are awkward to review in chat: to fix one section you copy the paragraph, quote it and write your note underneath, then repeat. The AI Artifacts extension replaces that loop. You ask the agent to \"create an artifact,\" and the plan opens in the editor as its own document.\n\n**How to use it**\n\n1. Run \"AI Artifacts: Install All Detected Integrations\" from the command palette, reload the window and start a new chat. The extension works through MCP plus a small skill.\n2. Ask the agent to \"create an artifact\" for the plan.\n3. Select any paragraph, list item, code block or table cell and type a comment. Enter saves it.\n4. Click Review when you have been through the whole plan. Every comment goes back to the agent at once.\n5. The agent answers questions in chat, changes the document only where you asked for changes, and starts the next round.\n6. When the plan looks right, Proceed approves it and the agent starts work. Just save keeps it without running anything.\n\nThe extension's developer also uses it for documents that are not plans, such as a workaround write-up after finishing a feature. Besides Cursor, it has been used with Codex and GitHub Copilot, and is said to work with Claude Code and Cline.\n\n**Limits to know**\n\n- It is separate from Cursor's built-in Plan Mode: the agent creates a document only when you ask for an artifact.\n- It runs only in local desktop editors for now. Remote SSH, WSL, dev containers and Codespaces are not supported.\n- Artifacts live in ~/.ai-artifacts/ and are deleted after 30 days by default (configurable). Use Just save or Copy Markdown for anything you want to keep.\n- After updating the extension, run the installer again and restart the agent.\n\nThe developer says everything stays local and there is no telemetry.","status":"published","storyType":"tip","category":"Workflow","clusterKey":"ai-artifacts-plan-comments-extension","slug":"comment-inline-on-a-cursor-agent-s-plan-and-send-every-note-back-in-one-4b63cc","url":"https://cursorhq.ai/guides/comment-inline-on-a-cursor-agent-s-plan-and-send-every-note-back-in-one-4b63cc/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/4b63cc57-e617-498d-adde-938594c5d017","role":"item","position":4,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/comment-inline-on-a-cursor-agent-s-plan-and-send-every-note-back-in-one-4b63cc/f3a383c06dc95e5b-77169d05dc972d99/web_hero.webp","imageAlt":"A physical document held in a mechanical frame with several attached markers that connect to a single release trigger at the bottom.","createdAt":"2026-10-27T03:50:37.213Z","updatedAt":"2026-10-27T13:34:49.834Z","sources":[{"role":"primary","title":"New Extension Lets You Comment Inline on Cursor Agent Plans Like Google Docs","url":"https://forum.cursor.com/t/making-cursor-s-agent-write-plans-as-artifacts-so-i-can-comment-on-them-inline/175414","sourceName":"Huy Nguyễn","author":"Huy Nguyễn","publishedAt":"2026-10-20T07:23:46Z"}]},{"id":"0f97b24d-6df1-42d8-abb5-e096c1f17ea9","title":"Write a pull request prompt as a Cursor custom command in a markdown file","dek":"A markdown file in a commands folder inside the cursor folder holds a prompt that asks for a PR with a descriptive title and the GitHub CLI.","bodyMd":"Cursor custom commands are markdown files in a `commands` folder inside the cursor folder, each holding a prompt. The walkthrough's example is a command for making pull requests.\n\nA few terms in plain language:\n\n- **Markdown file:** a plain-text file, ending in `.md`, that uses simple formatting symbols.\n- **Pull request (PR):** a proposal to merge your code changes into a project so others can review them.\n- **Prompt:** the written instructions you give Cursor's AI.\n- **Command:** here, a named markdown file that holds a prompt you have written down.\n- **GitHub CLI:** GitHub's command-line tool, which can create pull requests from the terminal.\n\n**How to set it up**\n\n1. In the cursor folder, create a new folder named `commands`.\n2. Inside it, add a markdown file. The example uses `pr.md`, but the file can be named whatever you want.\n3. Put the prompt in the file. The example reads: \"Your job is to create a PR with a descriptive title. Always use the GitHub CLI.\"\n\nThe prompt text is free-form, so you decide what goes in it. The walkthrough notes you could also add specific rules or commit guidelines to the same file.\n\n**What the example shows**\n\nThe example keeps a pull request prompt in a `pr.md` file inside the `commands` folder. That prompt asks for a PR with a descriptive title and says to always use the GitHub CLI.\n\nThe source covers only the file setup and the example prompt. It does not show how the command is then invoked.","status":"published","storyType":"tip","category":"Workflow","clusterKey":"pull-request-workflow-cursor-command","slug":"write-a-pull-request-prompt-as-a-cursor-custom-command-in-a-markdown-fil-0f97b2","url":"https://cursorhq.ai/guides/write-a-pull-request-prompt-as-a-cursor-custom-command-in-a-markdown-fil-0f97b2/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/0f97b24d-6df1-42d8-abb5-e096c1f17ea9","role":"item","position":5,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/write-a-pull-request-prompt-as-a-cursor-custom-command-in-a-markdown-fil-0f97b2/ce519ee6e9295810-7821bc6d791aef8f/web_hero.webp","imageAlt":"A metal cartridge with etched markings is shown being inserted into a slot on the side of a larger, modular hardware device.","createdAt":"2026-10-28T08:39:32.458Z","updatedAt":"2026-10-28T09:00:41.363Z","sources":[{"role":"primary","title":"Turn Your Pull Request Workflow Into a Cursor Command","url":"https://www.youtube.com/watch?v=_wRkhGYC4zU","sourceName":"@tripledigitai","author":"@tripledigitai","publishedAt":"2026-10-21T19:56:06Z"}]},{"id":"edf78230-ee0d-4001-b99e-461d43f1d848","title":"Turn annotated prototype notes into targeted Cursor edits, with real data and design-system parts","dek":"Reddit's internal prototyping app lets designers and product managers pin notes to a live prototype, then hand them to Cursor to apply at the exact spot in the code. Notes pinned to specific spots on a live prototype that Cursor can turn into code changes at those spots. Ready-made UI components from a company's shared design library that Cursor reuses in its edits instead of inventing new ones.","bodyMd":"Reddit's designers and product managers prototype in a custom harness called Reddit Proto. Annotating the running prototype is how they steer Cursor: each note carries its location in the code, so you can target a specific surface or component.\n\n**How the loop works**\n\n1. Open a project from the desktop app. It clones the repo and loads a boilerplate, so nobody touches Git.\n2. Write annotations on the live prototype. In the demo, one note asked for relevant type-aheads and trending recent communities. A second set the overall direction: use signed-in Reddit data and real type-aheads as the user types.\n3. Choose \"send to Cursor\". This writes the annotations to a file.\n4. Tell Cursor to apply annotations. It reads each note's code location, the note itself and the overall direction, then makes the change.\n\nThe same loop handles small edits. Clearing the notes and writing \"make this italics\" shows you can target very specific things, and the edit uses Reddit's design-system tokens and components. In the demo, Cursor produced a working search with real type-aheads and ranked results, pulled from signed-in data and ranked by an LLM.\n\n**Why real data**\n\nReddit's content is personalized, so a Figma mock looks irrelevant to leadership. Signing in lets a prototype render production data, and the harness can also switch device, theme, persona (a moderator, for example) and navigation. Navigation can be turned off for reviewers who click too much.\n\n**From Figma to production**\n\nReddit also built an MCP server, mapped from its design tokens and components to what exists in production code. Copy a Figma location, choose create from Figma in the Figma MCP, and the flow analyzes the frames and generates a PRD with user goals and acceptance criteria. That file is saved locally and sent to Cursor. The code is written into a sibling repo to keep prod clean, and the workflow then sends off a draft PR for normal review. The team says it refined the MCP by submitting PRs, collecting CI and engineer feedback, and iterating. It tried selecting many surfaces at once and went back to high-fidelity UI frames.\n\n**Limits**\n\nPrototypes deploy on Reddit's own Kubernetes infrastructure and are public internally by default. Commenting on prototypes and a searchable console for the roughly 700 existing ones are still being built.","status":"published","storyType":"tip","category":"Workflow","clusterKey":"reddit-figma-cursor-prototyping","slug":"turn-annotated-prototype-notes-into-targeted-cursor-edits-with-real-data-edf782","url":"https://cursorhq.ai/guides/turn-annotated-prototype-notes-into-targeted-cursor-edits-with-real-data-edf782/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/edf78230-ee0d-4001-b99e-461d43f1d848","role":"item","position":6,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/turn-annotated-prototype-notes-into-targeted-cursor-edits-with-real-data-edf782/c0d52109b4844064-a1e588f894628c77/web_hero.webp","imageAlt":"A complex geometric prototype with multiple metal tags attached to specific points, linked to a central modular processing unit.","createdAt":"2026-10-27T03:57:07.205Z","updatedAt":"2026-10-27T13:33:44.315Z","sources":[{"role":"primary","title":"How Reddit’s designers build ultra-realistic prototypes with Figma + Cursor","url":"https://www.youtube.com/watch?v=zF-J3rMbzZw","sourceName":"How I AI","author":"How I AI","publishedAt":"2026-10-26T12:00:20Z"}]},{"id":"e20d45bb-a421-4431-b9e5-4cbb697f15aa","title":"See what each Cursor reply costs and how close you are to your limits","dek":"Two community tools put Cursor spend in view: a free extension that prices every chat reply, and a small always-on-top pill that tracks usage limits as they fill.","bodyMd":"Two community tools posted to the Cursor forum on October 24 surface Cursor cost and limit data: one prices individual chat replies inside the editor, the other keeps your limits visible on screen.\n\n**Spendgeist: a cost badge on every chat reply.** Spendgeist is a free Cursor extension. To install it, open Extensions in Cursor and search \"Spendgeist\". It adds a cost badge to each reply in chat and shows model rates in the model picker, so you can see what a model costs before you send the next message. It also adds a running total in the status bar, a per-request cost table for the chat you have open, a sidebar with chat stats, and usage graphs by model, project and provider. You can ask in chat too, for example \"How much did I spend in the last couple of weeks per model?\" Its developer says usage stays on your machine and no usage data is sent. Model rates are fetched from a public table, which is also published on the project's site, agentcostmonitor.com.\n\n**FuelBar: a pill on the edge of your screen.** FuelBar is a small always-on-top pill for Mac and Windows that shows AI coding limits as they fill. For Cursor, it displays included monthly usage, Auto and named-model usage, and on-demand spend. It warns at 80% and tells you when limits reset. It also tracks Claude, Codex, Copilot, Freebuff and Antigravity. It needs no separate FuelBar account and costs $2.99 one-time for Mac and Windows.","status":"published","storyType":"roundup","category":"Ecosystem","clusterKey":"cursor-spend-trackers","slug":"see-what-each-cursor-reply-costs-and-how-close-you-are-to-your-limits-e20d45","url":"https://cursorhq.ai/news/see-what-each-cursor-reply-costs-and-how-close-you-are-to-your-limits-e20d45/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/e20d45bb-a421-4431-b9e5-4cbb697f15aa","role":"item","position":7,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/see-what-each-cursor-reply-costs-and-how-close-you-are-to-your-limits-e20d45/03fc1494c1c7f89c-a7e919253411d2d3/web_hero.webp","imageAlt":"A desk device featuring a filling usage bar and a separate gauge displaying individual itemized costs.","createdAt":"2026-10-27T03:59:56.188Z","updatedAt":"2026-10-27T13:32:21.857Z","sources":[{"role":"primary","title":"Spendgeist — live cost of each reply in Cursor chat","url":"https://forum.cursor.com/t/spendgeist-live-cost-of-each-reply-in-cursor-chat/175984","sourceName":"Roy Kishony","author":"Roy Kishony","publishedAt":"2026-10-24T07:02:08Z"},{"role":"supporting","title":"FuelBar - Cursor usage and spend on the edge of your screen (Mac + Windows)","url":"https://forum.cursor.com/t/fuelbar-cursor-usage-and-spend-on-the-edge-of-your-screen-mac-windows/175971","sourceName":"Aswin D G","author":"Aswin D G","publishedAt":"2026-10-24T04:05:36Z"}]},{"id":"633ea1f3-ccdd-4279-99b0-490dd30577ff","title":"Vicem swaps unchanged function bodies for one-line stubs to slim Agent Mode's context","dek":"Vicem, a free MIT-licensed MCP server, swaps unchanged function bodies for stubs to trim the context its developer says Cursor re-sends each turn, and hands full bodies back to the agent only when needed.","bodyMd":"Agent Mode is Cursor's AI agent: it reads files, runs commands and edits code across a chat. The developer behind Vicem says it is quick in a fresh chat, but that after 20 to 30 turns of file reads and test runs the \"Planning next moves\" pause grows noticeably. They attribute it to each turn re-sending a large payload built from chat history. That is the developer's own observation, not a documented description of how Cursor works. Starting a new chat restores the speed but costs the context: which files changed, what broke, what constraints apply.\n\nVicem, an open-source tool under the MIT license, attacks the payload size. It is also an MCP server, meaning a small local program that gives the agent extra tools it can call (MCP stands for Model Context Protocol). Its developer says it runs on Node.js built-ins only, with zero npm dependencies and no network calls, and cuts tokens per turn by \"usually 55% to 78%\". Tokens are the chunks of text a model reads and is billed for.\n\n**What it trims**\n\nA function body is the code between a function's braces, the part that does the work; the signature is the line that names the function and its inputs. A stub is a short placeholder left in the body's place.\n\n- **Code skeletonizer:** keeps imports, exported types and function signatures, and replaces unchanged function bodies with a one-line stub carrying an ID, such as `{ /* vicem:fn_a8c39f (42L) */ }`.\n- **Log slimmer:** strips passing test lines and `node_modules` stack frames from terminal output, so the agent sees the failing assertions.\n- **Data diet:** condenses large JSON, CSV and SQL files into compact schemas and ignores lockfiles.\n- **Secret guard:** masks `.env` values and keys such as `sk-*`, `ghp_*` and `AKIA*` locally before they reach the prompt.\n\n**Getting bodies back**\n\nStripped blocks are stored in `.vicem/ledger.json`. Vicem registers a lightweight stdio MCP server (one that talks to Cursor over standard input and output rather than a network port) in `~/.cursor/mcp.json`, with an optional `.cursor/rules/vicem.mdc` rule. When the agent needs to read or edit a skeletonized function, it calls `vicem_rehydrate_node` and pulls back only those lines.\n\n**Carrying state into a new chat**\n\nVicem can also snapshot the workspace: it copies `state.vscdb` plus the `-wal` and `-shm` files to a temp file (so it never locks a running Cursor window), adds your git diff and recent terminal output, and writes a `BATON.md` handoff file you can use to start a fresh chat without re-explaining.\n\n**Trying it**\n\nThe code is at github.com/RAKKUNN/vicem. `npx vicem-cli gui` launches a local three-column web GUI, and a browser sandbox runs at rakkunn.github.io/vicem.\n\nThe developer built it for long sessions on larger codebases. The token savings and the explanation of the slowdown are the developer's own; the source gives no speed measurement.","status":"published","storyType":"tip","category":"Workflow","clusterKey":"skeletonize-context-mcp-agent-mode","slug":"vicem-swaps-unchanged-function-bodies-for-one-line-stubs-to-slim-agent-m-633ea1","url":"https://cursorhq.ai/guides/vicem-swaps-unchanged-function-bodies-for-one-line-stubs-to-slim-agent-m-633ea1/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/633ea1f3-ccdd-4279-99b0-490dd30577ff","role":"item","position":8,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/vicem-swaps-unchanged-function-bodies-for-one-line-stubs-to-slim-agent-m-633ea1/13d5362447afa6e3-56073ef165789f7d/web_hero.webp","imageAlt":"A row of document stacks, with one full stack and several others compressed into thin placeholders by metal spacer plates.","createdAt":"2026-10-29T00:20:09.117Z","updatedAt":"2026-10-29T00:30:57.159Z","sources":[{"role":"primary","title":"Keeping Cursor Agent Mode fast on long sessions: skeletonizing unchanged code and rehydrating functions on-demand via .cursor/mcp.json (open source)","url":"https://reddit.com/r/cursor/comments/1xf1hba/keeping_cursor_agent_mode_fast_on_long_sessions","sourceName":"/u/NoConclusion8361","author":"/u/NoConclusion8361","publishedAt":"2026-10-25T12:47:09Z"}]},{"id":"0a95c334-fa28-468a-bfe1-361afb9adac6","title":"A .cursorignore file is said to keep Cursor's agent from reading node_modules and build output","dek":"A .cursorignore file, placed in your repository root, lists the folders and files you want Cursor's agent to skip when reading your project; one walkthrough says it cuts the cost of agent mode.","bodyMd":"Agent mode is Cursor's setting where the AI works through tasks across your project instead of answering a single question. According to one video walkthrough, it can burn through credits quickly because of what it reads, not only your source code. The walkthrough says that when agent mode scans a project, it also picks up node_modules (the folder where installed packages are stored), build cache and minified bundles (compiled files generated from your source, usually in folders such as `dist` or `build`). It claims a single prompt can send around 200,000 tokens, the units of text a model reads and bills for, to Claude, much of it compiled JavaScript. The same account puts the cost at $50 in credits in two hours.\n\nThe walkthrough's proposed fix is a `.cursorignore` file, a plain file in your repository root that lists what you want Cursor to leave out.\n\n1. Create a `.cursorignore` file in the root of your repository.\n2. Add the folders and files the agent has no reason to read: `node_modules`, `dist`, `build` and `package-lock`.\n3. Save it and run your next agent prompt as usual.\n\nThe claimed result is about 80% less token burn and responses roughly three times faster. Those figures come from a single walkthrough, so compare your billing before and after to see what changes for you.\n\nReach for this when agent mode is eating credits on a JavaScript project with installed packages or a build folder. The walkthrough says setup takes about 30 seconds.","status":"published","storyType":"tip","category":"Workflow","clusterKey":"cursor-agent-mode-cost-fix","slug":"a-cursorignore-file-is-said-to-keep-cursor-s-agent-from-reading-node-mod-0a95c3","url":"https://cursorhq.ai/guides/a-cursorignore-file-is-said-to-keep-cursor-s-agent-from-reading-node-mod-0a95c3/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/0a95c334-fa28-468a-bfe1-361afb9adac6","role":"item","position":9,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/a-cursorignore-file-is-said-to-keep-cursor-s-agent-from-reading-node-mod-0a95c3/a4dd83a4ab16162f-dc6c9f92da622ffd/web_hero.webp","imageAlt":"A funnel-like filter gate with a large pile of paper cards being reduced to a small stack of selected cards.","createdAt":"2026-10-27T15:58:24.683Z","updatedAt":"2026-10-27T16:00:58.929Z","sources":[{"role":"primary","title":"Why Cursor Agent Mode Burns $50/Hour (The Fix)","url":"https://www.youtube.com/watch?v=SN1jDoGggCE","sourceName":"@DevDeckAI","author":"@DevDeckAI","publishedAt":"2026-10-27T08:56:10Z"}]}],"tips":[{"id":"7ab55b05-0f3c-466a-b353-6fcb7c6da174","title":"Find the good edit one agent silently overwrote for another, using git log","dek":"When parallel agents work in one repo, a file committed by two different sessions within an hour is the sign that one fix may have erased another.","bodyMd":"Running several background agents (AI assistants that edit code) or chats on one repository, or Cursor beside Claude Code or Codex, carries a failure that rarely shows up as a bad edit. It shows up as a good edit that vanishes. Agent A fixes a file. Agent B, working from what it read twenty minutes earlier, rewrites the same file and commits. A's fix is gone, nothing errors, and tests may still pass.\n\nGit keeps the evidence, according to the memento team, which builds a free, MIT-licensed tracker and disclosed that interest. The overwrite leaves the same trace each time: one file, two different sessions (a different author or a different branch), commits less than an hour apart. The tool for finding it is `git log`, the command that lists a repository's commit history.\n\n**How to look**\n\n1. Pull a month of history with the session identity attached to each commit:\n `git log --all --source --since='1 month ago' --name-only --format='@%at|%an|%S'`\n Each commit prints a timestamp, author and branch, followed by its files.\n2. Pipe that into an awk filter (awk is a command-line text-processing tool) that flags any file committed by two different author/branch pairs less than an hour apart, then sort by frequency. The memento team's git log plus awk one-liner does this and prints the most frequent files first. The same check also runs in the browser in its overwrite-risk grader, and the team says the log is not uploaded.\n3. Look at the top of the list. If it is config, routes or schema files, that is where your agents collide.\n\n**Two fixes**\n\n- Give each agent its own worktree (a separate working folder checked out from the same repository), so the clash becomes a visible merge conflict instead of a silent overwrite.\n- Have an agent claim a file before it writes: append one line to a shared file under `flock`, and tell the other agents to skip claimed files.\n\n**Caveats.** The check cannot separate sessions that share one branch and one author name. A hit is also a near miss, not proof of a lost edit, so read the two diffs before concluding anything.","category":"Workflow","slug":"find-the-good-edit-one-agent-silently-overwrote-for-another-using-git-lo-7ab55b","url":"https://cursorhq.ai/guides/find-the-good-edit-one-agent-silently-overwrote-for-another-using-git-lo-7ab55b/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/7ab55b05-0f3c-466a-b353-6fcb7c6da174","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/find-the-good-edit-one-agent-silently-overwrote-for-another-using-git-lo-7ab55b/9b0bb9ac47984186-b6371947454b2e54/web_hero.webp","imageAlt":"Two rectangular metal cartridges are forced into a single vertical slot, with the second one partially overlapping the first.","createdAt":"2026-10-29T15:55:37.440Z"},{"id":"22bfcd77-ec8c-43ee-a7a7-d7f074c74961","title":"Have a different model review your agent's PR from inside Cursor","dek":"ThinkReview's MCP server lets Cursor call a single tool on a pull request URL and get back severity-ranked findings, so the agent can fix them in the same session.","bodyMd":"A quick glossary first: a PR (pull request) is a proposed code change awaiting review, and the agent is Cursor's AI assistant that writes and edits code.\n\nThinkReview, a pull request review tool for GitHub, GitLab, Azure DevOps and Bitbucket (including self-hosted), has an MCP server that works in Cursor, Claude Code, Codex, Antigravity and Windsurf. Your agent calls one tool, `review_url_code`, with a PR or MR URL. ThinkReview fetches the diff using git credentials stored in its portal, so nothing is pasted into chat.\n\nThe result is the structured review the ThinkReview extension already returns: a summary, severity-ranked findings, security notes and a plain-language reason. Your custom rules and chosen model apply, so the review can come from a different model family than the one that wrote the code. The reasoning is that the agent is the weakest last reader of its own change, and a recap in chat can drift from what the diff actually does.\n\n## Set it up in Cursor\n\n1. Before the first review, add a git PAT under Settings → Integrations in the ThinkReview portal. Without it, private diffs can't be read.\n2. Add the server to your MCP config. The hosted endpoint is `https://mcp.thinkreview.dev/v1`, which uses browser OAuth, so no token goes in config files.\n3. Click Authenticate.\n4. Ask the agent: \"Call thinkreview for https://github.com/org/repo/pull/123\".\n5. Then run `/mcp` and authenticate.\n\nCopy-paste configs for each client are on ThinkReview's MCP setup page.\n\n## Turn it into a loop\n\nWrapping the call in a skill is the better use. A Cursor skill such as `/thinkreview-pr` can find or open the PR, call `review_url_code`, fix the critical and high findings that deserve a change, run the tests, push to the same PR and review again. The same pattern works in Claude Code and Codex through a prompt, a custom command or an agent instruction file.\n\n## When it earns its keep\n\nTwo runs on real pull requests show the kind of problem it surfaces. On one PR, the review flagged that a Google sign-in popup handler was never set up, so the window could fail to open; the Cursor agent then patched `searchConsole.js` and restored a clear message when Google rejects the account. On a billing change, the review flagged a critical issue: when a cancel call failed, the handler still returned HTTP 200, so the billing provider would not retry and a trial could stay live. Both were easy to miss in the chat summary.\n\nReach for it on agent-written branches before merge, when the summary says \"done\" and you want a reader from outside the authoring session.","category":"Workflow","slug":"have-a-different-model-review-your-agent-s-pr-from-inside-cursor-22bfcd","url":"https://cursorhq.ai/guides/have-a-different-model-review-your-agent-s-pr-from-inside-cursor-22bfcd/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/22bfcd77-ec8c-43ee-a7a7-d7f074c74961","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/have-a-different-model-review-your-agent-s-pr-from-inside-cursor-22bfcd/e9a2f1c5685ca535-d1e1b4689b6c5f4a/web_hero.webp","imageAlt":"A metal cartridge with two glass chambers slides into a hardware dock to bridge a code agent with an external review tool.","createdAt":"2026-10-29T15:08:20.314Z"},{"id":"633ea1f3-ccdd-4279-99b0-490dd30577ff","title":"Vicem swaps unchanged function bodies for one-line stubs to slim Agent Mode's context","dek":"Vicem, a free MIT-licensed MCP server, swaps unchanged function bodies for stubs to trim the context its developer says Cursor re-sends each turn, and hands full bodies back to the agent only when needed.","bodyMd":"Agent Mode is Cursor's AI agent: it reads files, runs commands and edits code across a chat. The developer behind Vicem says it is quick in a fresh chat, but that after 20 to 30 turns of file reads and test runs the \"Planning next moves\" pause grows noticeably. They attribute it to each turn re-sending a large payload built from chat history. That is the developer's own observation, not a documented description of how Cursor works. Starting a new chat restores the speed but costs the context: which files changed, what broke, what constraints apply.\n\nVicem, an open-source tool under the MIT license, attacks the payload size. It is also an MCP server, meaning a small local program that gives the agent extra tools it can call (MCP stands for Model Context Protocol). Its developer says it runs on Node.js built-ins only, with zero npm dependencies and no network calls, and cuts tokens per turn by \"usually 55% to 78%\". Tokens are the chunks of text a model reads and is billed for.\n\n**What it trims**\n\nA function body is the code between a function's braces, the part that does the work; the signature is the line that names the function and its inputs. A stub is a short placeholder left in the body's place.\n\n- **Code skeletonizer:** keeps imports, exported types and function signatures, and replaces unchanged function bodies with a one-line stub carrying an ID, such as `{ /* vicem:fn_a8c39f (42L) */ }`.\n- **Log slimmer:** strips passing test lines and `node_modules` stack frames from terminal output, so the agent sees the failing assertions.\n- **Data diet:** condenses large JSON, CSV and SQL files into compact schemas and ignores lockfiles.\n- **Secret guard:** masks `.env` values and keys such as `sk-*`, `ghp_*` and `AKIA*` locally before they reach the prompt.\n\n**Getting bodies back**\n\nStripped blocks are stored in `.vicem/ledger.json`. Vicem registers a lightweight stdio MCP server (one that talks to Cursor over standard input and output rather than a network port) in `~/.cursor/mcp.json`, with an optional `.cursor/rules/vicem.mdc` rule. When the agent needs to read or edit a skeletonized function, it calls `vicem_rehydrate_node` and pulls back only those lines.\n\n**Carrying state into a new chat**\n\nVicem can also snapshot the workspace: it copies `state.vscdb` plus the `-wal` and `-shm` files to a temp file (so it never locks a running Cursor window), adds your git diff and recent terminal output, and writes a `BATON.md` handoff file you can use to start a fresh chat without re-explaining.\n\n**Trying it**\n\nThe code is at github.com/RAKKUNN/vicem. `npx vicem-cli gui` launches a local three-column web GUI, and a browser sandbox runs at rakkunn.github.io/vicem.\n\nThe developer built it for long sessions on larger codebases. The token savings and the explanation of the slowdown are the developer's own; the source gives no speed measurement.","category":"Workflow","slug":"vicem-swaps-unchanged-function-bodies-for-one-line-stubs-to-slim-agent-m-633ea1","url":"https://cursorhq.ai/guides/vicem-swaps-unchanged-function-bodies-for-one-line-stubs-to-slim-agent-m-633ea1/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/633ea1f3-ccdd-4279-99b0-490dd30577ff","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/vicem-swaps-unchanged-function-bodies-for-one-line-stubs-to-slim-agent-m-633ea1/13d5362447afa6e3-56073ef165789f7d/web_hero.webp","imageAlt":"A row of document stacks, with one full stack and several others compressed into thin placeholders by metal spacer plates.","createdAt":"2026-10-29T00:20:09.117Z"},{"id":"e9e0ebc4-2dbe-4f7f-b238-896f0f17f3a1","title":"Track Cursor CLI tasks and approvals across repos from one dashboard","dek":"Denly, a web dashboard for coding agents, runs Cursor's CLI (the command-line interface, a text-based way to run the agent from a terminal) on your own machine and collects whatever needs a human decision in one place.","bodyMd":"Denly gathers the work that is waiting on you across several projects: plans to approve, questions from agents, failures and PRs ready for review. Its Cursor integration drives Cursor's CLI on your own machine, according to its developer's forum post. The CLI is the command-line interface, the text-based way to run the Cursor agent from a terminal. The tool also supports other coding-agent CLIs, so different projects can use different providers.\n\n**How the workflow runs**\n\n1. Submit a task for a project.\n2. Review the agent's proposed plan and approve it.\n3. Let the agent build and run the checks configured for that repository.\n4. Review the resulting PR, then request changes or merge.\n\n**Who it is aimed at**\n\nThe developer pitches Denly at people using Cursor across several repositories and asks for feedback on whether the workflow helps. The part the developer says they are focusing on now is coordinating work across projects and keeping track of where a person needs to step in.\n\n**Limits to know**\n\n- The runner makes outbound requests to the control service, so no port needs to be opened on your machine.\n- Your machine must be awake and online for tasks to execute.\n- Selected plans, transcripts and other content can be uploaded, so local execution does not mean everything stays local.\n- Denly has a free plan and paid tiers. You use your own agent account, with its existing limits and charges.\n\nThe developer's post links a product page at denly.dev and an illustrated demo walkthrough with sample tasks.","category":"Ecosystem","slug":"track-cursor-cli-tasks-and-approvals-across-repos-from-one-dashboard-e9e0eb","url":"https://cursorhq.ai/guides/track-cursor-cli-tasks-and-approvals-across-repos-from-one-dashboard-e9e0eb/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/e9e0ebc4-2dbe-4f7f-b238-896f0f17f3a1","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/track-cursor-cli-tasks-and-approvals-across-repos-from-one-dashboard-e9e0eb/aecba402adeae18f-570bf920197284f3/web_hero.webp","imageAlt":"A metallic central hub with four cables connecting to four separate workstation towers, representing the coordination of multiple coding tasks in one location.","createdAt":"2026-10-28T19:11:12.546Z"},{"id":"0f97b24d-6df1-42d8-abb5-e096c1f17ea9","title":"Write a pull request prompt as a Cursor custom command in a markdown file","dek":"A markdown file in a commands folder inside the cursor folder holds a prompt that asks for a PR with a descriptive title and the GitHub CLI.","bodyMd":"Cursor custom commands are markdown files in a `commands` folder inside the cursor folder, each holding a prompt. The walkthrough's example is a command for making pull requests.\n\nA few terms in plain language:\n\n- **Markdown file:** a plain-text file, ending in `.md`, that uses simple formatting symbols.\n- **Pull request (PR):** a proposal to merge your code changes into a project so others can review them.\n- **Prompt:** the written instructions you give Cursor's AI.\n- **Command:** here, a named markdown file that holds a prompt you have written down.\n- **GitHub CLI:** GitHub's command-line tool, which can create pull requests from the terminal.\n\n**How to set it up**\n\n1. In the cursor folder, create a new folder named `commands`.\n2. Inside it, add a markdown file. The example uses `pr.md`, but the file can be named whatever you want.\n3. Put the prompt in the file. The example reads: \"Your job is to create a PR with a descriptive title. Always use the GitHub CLI.\"\n\nThe prompt text is free-form, so you decide what goes in it. The walkthrough notes you could also add specific rules or commit guidelines to the same file.\n\n**What the example shows**\n\nThe example keeps a pull request prompt in a `pr.md` file inside the `commands` folder. That prompt asks for a PR with a descriptive title and says to always use the GitHub CLI.\n\nThe source covers only the file setup and the example prompt. It does not show how the command is then invoked.","category":"Workflow","slug":"write-a-pull-request-prompt-as-a-cursor-custom-command-in-a-markdown-fil-0f97b2","url":"https://cursorhq.ai/guides/write-a-pull-request-prompt-as-a-cursor-custom-command-in-a-markdown-fil-0f97b2/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/0f97b24d-6df1-42d8-abb5-e096c1f17ea9","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/write-a-pull-request-prompt-as-a-cursor-custom-command-in-a-markdown-fil-0f97b2/ce519ee6e9295810-7821bc6d791aef8f/web_hero.webp","imageAlt":"A metal cartridge with etched markings is shown being inserted into a slot on the side of a larger, modular hardware device.","createdAt":"2026-10-28T08:39:32.458Z"}]}