{"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":"1eb5f1f7-d3ca-46f3-8ebf-1d8d7b2c420c","date":"2026-09-28","status":"locked","createdAt":"2026-09-27T17:33:27.114Z","storyCount":4,"newsletterSubject":"An open-source tool gives Cursor a map of the codebase so it stops hunting for files"},"updatedAt":"2026-09-27T18:00:21.736Z","stories":[{"id":"15dc9e6d-18f1-466f-b31d-f33328fd8fb0","title":"An open-source tool gives Cursor a map of the codebase so it stops hunting for files","dek":"Enola builds a structural model of a repository, the shared folder where a project's code lives, and exposes it to Cursor through MCP, the connector standard that lets AI tools plug into outside apps and data, so the agent can query a project's architecture directly instead of spending the tokens, the chunks of text it reads and pays for, that tracing dependencies, the file-to-file links that make code rely on other code, and hunting for files by hand would cost.","bodyMd":"A developer open-sourced Enola, a tool that scans a codebase and builds a structural map of it before handing that map to Cursor, so the AI editor can look up how a project fits together instead of digging through files itself. The developer described the project, posted on GitHub under enola-labs/enola, in a post to Cursor's subreddit on September 26.\n\nThe problem it targets is a familiar one for anyone running Cursor on a large, real-world project: before the agent can make a change, it has to spend time and tokens (the chunks of text a model reads and is billed for) tracing which files call which, which services depend on which modules, and where a given piece of logic actually lives. Enola does that legwork once, up front, and stores the result as a structural model of the repository, the shared folder where a project's code lives.\n\nCursor reaches that model through MCP, a connector standard that lets AI tools plug into outside apps and data sources without custom integration work for each one. Once wired up, the agent can query Enola's model directly, the same way it might query a database, rather than re-deriving the codebase's architecture from scratch on every task.\n\nEnola's second function kicks in after code is written: it checks a proposed change against a set of deterministic rules, meaning fixed, rule-based checks rather than another model's guess, to flag whether the edit breaks the architecture it just mapped. The developer describes the resulting workflow as a loop: understand the repository, make the change, then check the architectural impact before moving on.\n\nThe GitHub repo is open source, and the Reddit post frames the project as a question as much as an announcement, its developer asking how the approach compares with other people's Cursor setups and what harness they use. No benchmarks or token-savings figures accompany the release, so the efficiency case rests on the developer's description of the problem rather than measured results.","status":"published","storyType":"news","category":"Ecosystem","clusterKey":"enola-open-source-architecture-layer-for-cursor","slug":"an-open-source-tool-gives-cursor-a-map-of-the-codebase-so-it-stops-hunti-15dc9e","url":"https://cursorhq.ai/news/an-open-source-tool-gives-cursor-a-map-of-the-codebase-so-it-stops-hunti-15dc9e/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/15dc9e6d-18f1-466f-b31d-f33328fd8fb0","role":"lead","position":0,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/an-open-source-tool-gives-cursor-a-map-of-the-codebase-so-it-stops-hunti-15dc9e/3d1f614a9ad4c262-f1d2a611210bd935/web_hero.webp","imageAlt":"A tactile cartridge with an engraved branching map fits into a metal interface port.","createdAt":"2026-09-27T15:37:43.418Z","updatedAt":"2026-09-27T16:00:18.200Z","sources":[{"role":"primary","title":"Enola Adds an Open-Source Architecture Layer to Speed Up Cursor on Big Codebases","url":"https://reddit.com/r/cursor/comments/1wqhdb1/enola_i_built_an_opensource_architecture_layer","sourceName":"/u/yellow-llama1","author":"/u/yellow-llama1","publishedAt":"2026-09-26T04:38:51Z"},{"role":"supporting","title":"[Enola] - I built an open-source architecture layer for Cursor","url":"https://reddit.com/r/cursor/comments/1wqhdb1/enola_i_built_an_opensource_architecture_layer","sourceName":"/u/yellow-llama1","author":"/u/yellow-llama1","publishedAt":"2026-09-26T04:38:51Z"}]},{"id":"ddf8872c-5beb-4f3a-b356-ad5fbfab9a70","title":"Prompt Cursor's Agent to map an unfamiliar Playwright suite before touching it","dek":"A demonstrated workflow has Cursor's built-in Agent explain an existing Playwright test framework's structure and trace one flow, like login, while a \"do not modify any files\" instruction keeps it read-only.","bodyMd":"Cursor's Agent, the AI chat pane built into the Cursor code editor, can read through an existing Playwright test automation project and explain how it's organized, then trace a single feature like login end to end, all without changing any code. The trick is a read-only instruction tacked onto the prompt, which turns the agent into a walkthrough tool for a codebase a new team member has never seen.\n\nA recent demonstration used it on a Cucumber BDD framework (a way of writing test scenarios in plain English, paired with Playwright to run them) built around the HR platform OrangeHRM. The workflow ran like this:\n\n1. Open the unfamiliar project in Cursor (File > Open Folder), then switch to the Agent panel rather than the regular IDE view.\n2. Prompt: \"Analyze this Playwright project and explain the overall project structure, execution flow, and purpose of key folders. Do not modify any files.\" The agent explored the repo and reported back that it was a Cucumber-BDD UI framework for OrangeHRM, including which command actually ran the tests and what the config, page-object, and service-layer folders were for.\n3. Narrow to one feature: \"Find the login functionality of OrangeHRM in this project and explain how the feature files, step definitions, page object, hooks, and config work together. Do not modify any files.\" This produced a walk-through of the login feature file, its scenario, and the page object it depends on.\n4. Ask it to execute: \"Run the current valid login scenario for OrangeHRM and tell me if it succeeds or fails. Do not modify any files.\"\n5. Ask it to plan a change before making one: \"I want to add an invalid login scenario for incorrect username and password. Analyze the current framework and tell me which files need to be added or modified. Do not modify any files.\" Only after reviewing that list does the prompt change to \"go ahead and make the changes... following the existing feature file, step definition, page object, and framework structure. Don't change any unrelated functionality.\"\n\nThe use case is joining a test automation project with no one around to explain the framework, understanding a specific flow before writing new coverage for it, or scoping a change before an agent starts editing files. The same read-then-ask pattern was also suggested for manual testing, feeding the agent a product requirements document instead of a codebase.\n\nOne wrinkle showed up in step 4: the agent reported the login scenario neither passed nor failed, because the scenario itself was commented out in the feature file. Nothing was wrong with the agent's read of the framework, it just surfaced a disabled test that a plain \"did it pass\" question wouldn't have caught.","status":"published","storyType":"tip","category":"Workflow","clusterKey":"cursor-agent-playwright-test-analysis","slug":"prompt-cursor-s-agent-to-map-an-unfamiliar-playwright-suite-before-touch-ddf887","url":"https://cursorhq.ai/guides/prompt-cursor-s-agent-to-map-an-unfamiliar-playwright-suite-before-touch-ddf887/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/ddf8872c-5beb-4f3a-b356-ad5fbfab9a70","role":"item","position":1,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/prompt-cursor-s-agent-to-map-an-unfamiliar-playwright-suite-before-touch-ddf887/94dc9613bb9d003b-9451da11aaa7e22d/web_hero.webp","imageAlt":"A magnifying loupe hovering over a stack of rectangular data plates with one plate being extracted by tweezers.","createdAt":"2026-09-27T17:58:46.247Z","updatedAt":"2026-09-27T18:00:21.736Z","sources":[{"role":"primary","title":"Use Cursor Agent to Analyze and Run Playwright Test Automation Projects","url":"https://www.youtube.com/watch?v=Nuhws5qMaWo","sourceName":"@scriptandexecute","author":"@scriptandexecute","publishedAt":"2026-09-26T10:55:57Z"}]},{"id":"1f09ca8f-5e91-4509-836b-2bbf60abcce0","title":"How Cursor's Agent Mode plans, acts, and checks its own code","dek":"A new walkthrough traces that loop step by step, then builds a working example using Node.js 22's ability to run TypeScript files directly without first translating them into plain JavaScript.","bodyMd":"Cursor's Agent Mode doesn't just hand back a single code snippet the way autocomplete does. According to a new technical walkthrough, it runs a loop that decides what steps a task needs, carries them out, and then checks whether the result actually worked, repeating until the job is done or it needs your input.\n\nThe loop breaks into three moves the walkthrough calls plan, act, and observe. First the model reads the request and proposes an action, such as writing a file or running a test. Then your code executes that action using the matching tool. Finally, whatever comes back, the file's contents, a command's output, or an error, gets sent back to the model as a new message, so it can adjust its next move. The cycle only stops when the model returns an action labeled `final_output`.\n\nTo make the loop concrete, the walkthrough builds a small command-line tool in Node.js and wires it to a demo API call of the tutorial's own construction: a POST to `https://api.cursor.com/v1/agent` carrying the running conversation, a list of tools the model is allowed to use (in the example, writing files and running shell commands), and a `session_id` that has to stay the same for the whole run. Change the session ID mid-run, the piece warns, and the model loses track of what it already did and starts over. The demo code also includes a header the tutorial calls `X-Cursor-Client-Id`, which its example server rejects with a 403 error if it's missing, but that endpoint and header are the tutorial author's own illustrative code for the demo, not confirmed Cursor API documentation; the piece discloses it was written with AI assistance and tells readers to check its code against Cursor's official docs before relying on it. A separate breakdown of Agent Mode's architecture says Cursor's actual Cloud Agents API uses authenticated `/v1/agents` endpoints (note the plural), and that the desktop Agent itself is \"an integrated product experience rather than simply a public HTTP endpoint that mirrors every internal Agent operation.\"\n\nThe Node.js piece of the demo leans on a feature in Node 22: the `--experimental-strip-types` flag lets the CLI run a `.ts` file directly, stripping out type annotations like `: string` or `interface …` at the moment it runs, rather than requiring a separate `tsc` compile step beforehand. Run the script with `node --experimental-strip-types generate-func.ts \"describe the function\"`, and the demo's agent writes a TypeScript function to `generated.ts`, executes it, and reports the output back through the same loop. Forget the flag, the walkthrough notes, and the type annotations survive into the file Node tries to run, producing a syntax error instead of working code.\n\nThe walkthrough also suggests capping the loop at around five iterations, so a stuck agent doesn't keep firing requests, and adding a mock version of the API call for tests so the CLI's logic can be checked without hitting a real server each time.","status":"published","storyType":"tip","category":"Workflow","clusterKey":"cursor-agent-mode-under-the-hood-explainer","slug":"how-cursor-s-agent-mode-plans-acts-and-checks-its-own-code-1f09ca","url":"https://cursorhq.ai/guides/how-cursor-s-agent-mode-plans-acts-and-checks-its-own-code-1f09ca/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/1f09ca8f-5e91-4509-836b-2bbf60abcce0","role":"item","position":2,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/how-cursor-s-agent-mode-plans-acts-and-checks-its-own-code-1f09ca/a9a37d0e8c92a020-cc7e373bbd4243dc/web_hero.webp","imageAlt":"A circular mechanical device with three chambers containing a TypeScript file, illustrating a continuous feedback loop of planning, acting, and observing.","createdAt":"2026-09-25T00:45:53.699Z","updatedAt":"2026-09-25T01:00:31.813Z","sources":[{"role":"primary","title":"[Not Selected] Tutorial explaining how Cursor's Agent Mode works architecturally, not a change in what builders can use today. No new feature, release, or technique emerged — it's educational content about an existing system. Also too technical: covers API endpoints, HTTP headers, TypeScript stripping flags, and orchestration loops that require building ON Cursor rather than WITH it. Our vibe coder audience uses Cursor's agent mode through the IDE, not by calling api.cursor.com directly.","url":"https://dev.to/dineshgowtham/how-cursor-ais-agent-mode-works-under-the-hood-a-step-by-step-guide-with-nodejs-22-native-94i","sourceName":"Dinesh_gowtham","author":"Dinesh_gowtham","publishedAt":"2026-09-24T07:46:46Z"},{"role":"supporting","title":"How AI Coding Agents Actually Work: Inside Cursor’s Agent Mode with Node.js 22","url":"https://medium.com/@dineshshuttler/how-ai-coding-agents-actually-work-inside-cursors-agent-mode-with-node-js-22-e64b4fa69bba?source=rss------cursor_ai-5","sourceName":"Dinesh gowtham","author":"Dinesh gowtham","publishedAt":"2026-09-24T09:37:26Z"},{"role":"supporting","title":"How Cursor AI’s Agent Mode Works Under the Hood – A Step‑By‑Step Guide with Node.js 22 Native TypeScript Stripping","url":"https://dev.to/dineshgowtham/how-cursor-ais-agent-mode-works-under-the-hood-a-step-by-step-guide-with-nodejs-22-native-94i","sourceName":"Dinesh_gowtham","author":"Dinesh_gowtham","publishedAt":"2026-09-24T07:46:46Z"}]},{"id":"39a0b2e9-6a27-422d-b7ed-4ea90e447a23","title":"An open-source toolkit brings conference-ready chart styles into Cursor","dek":"A Yale computer science PhD student released the plotting scripts behind their published research figures as a free Cursor Skill, a bundle of instructions Cursor's AI reads on its own so it can format charts to journal standards without being told how each time.","bodyMd":"A Yale computer science PhD student has published the plotting scripts behind their own research figures in one public repository, a shared online folder of code and files that anyone can download. The scripts recreate the bar charts, radar plots, trend lines, 3D spheres, and concept diagrams that appear in papers at NeurIPS and ICML, two of the largest AI research conferences, and in the journal Nature Machine Intelligence. Each script ships with its original data and the finished figure, so the pitch is simple: swap in your own numbers and the chart keeps the same polished look.\n\nThe same visual rules are also packaged as an installable Skill for Cursor, Claude Code, and Codex. A Skill is a bundle of instructions one of these AI coding tools can read on its own, so once it's installed, asking the AI to make a chart applies the formatting automatically instead of you describing the style by hand each time.\n\nThe style rules are specific enough to follow without guesswork: strip the top and right border lines off each chart, outline bars in black, apply a fixed color code (blue for your own method, green for results that improve on it, red for baseline comparisons), and export images at 300 DPI, a resolution setting that keeps charts sharp when a journal prints them rather than just displaying them on screen.\n\nThe intended user is anyone who writes academic papers and currently starts each chart from a blank matplotlib file, matplotlib being the standard Python library researchers use to draw plots. Applying a ready-made repo and Skill instead, the post argues, is worth the roughly ten minutes it takes to set up.","status":"published","storyType":"tip","category":"Ecosystem","clusterKey":"yale-phd-cursor-skill-publication-plots","slug":"an-open-source-toolkit-brings-conference-ready-chart-styles-into-cursor-39a0b2","url":"https://cursorhq.ai/guides/an-open-source-toolkit-brings-conference-ready-chart-styles-into-cursor-39a0b2/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/39a0b2e9-6a27-422d-b7ed-4ea90e447a23","role":"item","position":3,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/an-open-source-toolkit-brings-conference-ready-chart-styles-into-cursor-39a0b2/c281c8936727509b-dbe3c60de10be1a4/web_hero.webp","imageAlt":"A physical cartridge featuring five distinct metal chart templates being inserted into a rectangular slot.","createdAt":"2026-09-25T00:41:58.833Z","updatedAt":"2026-09-25T01:00:38.638Z","sources":[{"role":"primary","title":"Yale PhD Student Open Sources Publication-Grade Plotting Scripts as Cursor Skill","url":"https://x.com/0x0SojalSec/status/2103257183844786258","sourceName":"Md Ismail Šojal 🕷️","author":"Md Ismail Šojal 🕷️","publishedAt":"2026-09-24T22:56:03Z"}]}],"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"}]}