{"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":"693a7f76-ca75-46bd-a93b-a2b52c3e9f44","date":"2026-09-16","status":"locked","createdAt":"2026-09-16T02:25:05.562Z","storyCount":5,"newsletterSubject":"Cursor X plugin enables direct messaging, Cursor launches Gamma plugin for presentations, Cursor adds Excalidraw plugin for diagrams"},"updatedAt":"2026-09-16T02:31:03.814Z","stories":[{"id":"3b89b6e0-98d6-4d77-ae86-2e77b21c2065","title":"Cursor’s X plugin adds direct-message access through X Chat scopes","dek":"Version 2.4 requests `dm.read` and `dm.write` for direct messages through X’s hosted service, and existing users must sign in again to grant the added permissions.","bodyMd":"Cursor updated its official X plugin to version 2.4 on September 14, adding the `dm.read` and `dm.write` OAuth permissions. The change enables X Chat operations through X's hosted Model Context Protocol (MCP) service.\n\nExisting installations need another X sign-in before they receive the added permissions. Cursor's changelog calls out that reauthorization step directly. The plugin continues to use OAuth as the user's own X account, and its configuration sends requests to X's hosted service at `https://api.x.com/mcp`.\n\nThe X Chat tools listed in the updated plugin documentation cover five operations: listing conversations, fetching events, sending messages, showing typing activity, and sending read receipts. The version 2.4 configuration requests both direct-message permissions alongside the plugin's earlier OAuth permissions so those chat operations can run in the signed-in user's context.\n\nCursor also updated the plugin's marketplace description. It now names X Chat together with searching posts, reading timelines, pulling trends, and managing bookmarks. The plugin README describes the wider integration as a way to search and read public X data and to manage lists, bookmarks, blocks, and mutes.\n\nPosting remains outside the plugin's documented feature set. The README says the plugin does not request `tweet.write`, so an agent using this configuration cannot publish posts as the signed-in user. Version 2.4 adds direct-message reading and writing permissions without adding the separate permission required to publish posts.\n\nThe permission list still includes `tweet.read`, `users.read`, `follows.read`, `space.read`, `mute.read`, `like.read`, `list.read`, `list.write`, `block.read`, `block.write`, `bookmark.read`, and `bookmark.write`. It also includes permissions for developer account access and offline access. The only permissions added by this update are `dm.read` and `dm.write`.\n\nUsers can add the plugin from Cursor chat with `/add-plugin x`. After the version update, an existing user must complete X sign-in again to grant the two new permissions. That extra consent step is what makes the X Chat tools available to an installation that previously had only the older permission set.\n\nThe updated manifest requires Cursor 3.13.0 or later and identifies Cursor as the plugin author. The same commit changes the manifest to version 2.4, adds chat to its keywords, updates the marketplace description, documents the X Chat operations, and adds the two permissions to the hosted-service configuration.\n\nFor Cursor users, the release expands one existing X connection rather than adding a second account or service. Search, timelines, trends, bookmarks, lists, blocks, and mutes remain part of the plugin, while the newly authorized X Chat tools handle conversations, events, messages, typing activity, and read receipts.","status":"published","storyType":"news","category":null,"clusterKey":"q1470-cursor-x-chat","slug":"cursor-s-x-plugin-adds-direct-message-access-through-x-chat-scopes-3b89b6","url":"https://cursorhq.ai/news/cursor-s-x-plugin-adds-direct-message-access-through-x-chat-scopes-3b89b6/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/3b89b6e0-98d6-4d77-ae86-2e77b21c2065","role":"lead","position":0,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/cursor-s-x-plugin-adds-direct-message-access-through-x-chat-scopes-3b89b6/621d80e972a2054b-399e9618bf1f1914/web_hero.webp","imageAlt":"A modular data cartridge is partially inserted into a metal socket, with two metallic pins extending to connect the two pieces.","createdAt":"2026-09-16T02:23:18.192Z","updatedAt":"2026-09-16T02:30:36.209Z","sources":[{"role":"primary","title":"Cursor’s X plugin adds direct-message access through X Chat scopes","url":"https://github.com/cursor/plugins/commit/256a21aa364cddff8c0d0a91a9214f8936510df1","sourceName":"github.com","author":"github.com","publishedAt":"2026-09-14T12:00:00Z"}]},{"id":"3e233680-0c00-48b6-a54d-fede13ce8222","title":"Cursor adds a Gamma plugin for presentations, documents, and webpages","dek":"The version 1.0 plugin signs in through Gamma, generates four content formats, exports PDF, PPTX, and PNG files, and reads existing workspace material.","bodyMd":"Cursor added a Gamma plugin to its official repository on September 10. The version 1.0 integration connects Cursor agents to Gamma's hosted service so they can generate presentations, documents, webpages, and social posts. A generation can begin from a prompt, an outline, or a Gamma template.\n\nUsers install the plugin from Cursor Settings by opening Plugins, searching for Gamma, and selecting Install. The repository also documents `/add-plugin gamma` as the command from chat. When the plugin first connects, Cursor opens a Gamma sign-in flow. A Gamma account is required, and generated material consumes credits from that account.\n\nAuthentication uses OAuth 2.0 with dynamic client registration. Users do not need to copy a personal access token or configure a client ID in Cursor. The plugin configuration points to Gamma's hosted service at `https://mcp.gamma.app/mcp`, and the signed-in Gamma account remains the boundary for the workspace material and credits available through the connection.\n\nGeneration runs asynchronously. The service returns a generation ID, and the agent checks that ID until the work completes instead of holding one request open for the full creation process. The documented output types cover presentations, documents, webpages, and social posts, giving Cursor a route from a written brief to several Gamma formats.\n\nThe export tools can produce PDF, PPTX, and PNG files. That lets a presentation created through the integration move into a standard slide file, a fixed-layout document, or image output. Export is separate from generation, so an agent can create the Gamma first and request one of the documented file formats afterward.\n\nThe plugin can also browse existing Gamma material. Its documented read operations list Gammas, themes, and folders and open those items for inspection. Analytics access covers views and comments on existing Gammas. These capabilities let an agent work with content and organization already present in the signed-in workspace, alongside creating new material.\n\nThe initial release requires Cursor 3.13.0 and lists Cursor as the plugin author. Cursor's marketplace categorizes it as an integration and describes the same core job as the plugin's own guide: generating presentations, documents, and webpages. The repository commit adds the manifest, hosted-service configuration, installation guide, changelog, license, logo, and marketplace entry together.\n\nGamma's hosted runtime defines the live tool names and request shapes, while the Cursor plugin supplies the connection and installation path. For Cursor users, the release adds an authenticated Gamma workspace connection with generation, export, browsing, and analytics operations in one installed plugin.","status":"published","storyType":"news","category":null,"clusterKey":"q1470-cursor-gamma","slug":"cursor-adds-a-gamma-plugin-for-presentations-documents-and-webpages-3e2336","url":"https://cursorhq.ai/news/cursor-adds-a-gamma-plugin-for-presentations-documents-and-webpages-3e2336/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/3e233680-0c00-48b6-a54d-fede13ce8222","role":"item","position":1,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/cursor-adds-a-gamma-plugin-for-presentations-documents-and-webpages-3e2336/cbd3e5f99132aa90-a3ab10cc58bec5c4/web_hero.webp","imageAlt":"A hardware cartridge with four output ports, each holding a different physical representation of a document, slide deck, or image file.","createdAt":"2026-09-16T02:19:33.612Z","updatedAt":"2026-09-16T02:30:43.133Z","sources":[{"role":"primary","title":"Cursor adds a Gamma plugin for presentations, documents, and webpages","url":"https://github.com/cursor/plugins/commit/0c43e29ee8e8c79207e5303d2a41ba1c701cf2cf","sourceName":"github.com","author":"github.com","publishedAt":"2026-09-10T12:00:00Z"}]},{"id":"6cf4c841-df23-415d-a0b8-788c39d9a41b","title":"Cursor adds an Excalidraw plugin for drawing and exporting diagrams from chat","dek":"The version 1.0 plugin connects Cursor to Excalidraw’s hosted service, needs no account, and can create diagram views, export files, and restore session checkpoints.","bodyMd":"Cursor added an Excalidraw plugin to its official repository on September 10. The version 1.0 integration lets an agent create hand-drawn diagram views from elements described in chat and export the current drawing as an `.excalidraw` file. Its documentation also lists checkpoints that save and restore a drawing within a session.\n\nThe plugin connects to Excalidraw's hosted Model Context Protocol (MCP) service. MCP is a standard that lets agents call tools provided by an outside service. Cursor's configuration points to `https://mcp.excalidraw.com/mcp`, the final service address documented by Excalidraw, rather than the bare web address that redirects there.\n\nUsers can install the integration from Cursor Settings by opening Plugins, searching for Excalidraw, and choosing Install. They can also add it from chat with `/add-plugin excalidraw`. The manifest requires Cursor 3.13.0, places the plugin in the integrations category, and describes its job as drawing and exporting hand-drawn diagrams from chat.\n\nNo account or authentication is required for the hosted service configured by this plugin. Once connected, an agent can assemble a diagram from described elements. Clients that support MCP Apps can show the result as an interactive diagram view inside the conversation, while the export action produces an `.excalidraw` file that can be saved elsewhere.\n\nCheckpoints provide the third documented capability. A user can save the state of a drawing during a session and restore that checkpoint later in the same session. That makes it possible to try a change and return to an earlier version without rebuilding every element from the beginning.\n\nThe public hosted service and Excalidraw+ use different connections. Cursor's new plugin configures the public `mcp.excalidraw.com` service. Excalidraw+ workspaces use a separate authenticated address, `api.excalidraw.com/api/v1/mcp`, which is not part of this plugin configuration. Installing the plugin therefore does not connect a user's Excalidraw+ workspace.\n\nThe initial release adds the plugin manifest, hosted-service configuration, installation guide, changelog, license, and marketplace listing to Cursor's maintained repository. The drawing, file export, and session checkpoint tools come from the hosted Excalidraw service, whose live tool names and schemas remain the service's source of truth.","status":"published","storyType":"news","category":null,"clusterKey":"q1470-cursor-excalidraw","slug":"cursor-adds-an-excalidraw-plugin-for-drawing-and-exporting-diagrams-from-6cf4c8","url":"https://cursorhq.ai/news/cursor-adds-an-excalidraw-plugin-for-drawing-and-exporting-diagrams-from-6cf4c8/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/6cf4c841-df23-415d-a0b8-788c39d9a41b","role":"item","position":2,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/cursor-adds-an-excalidraw-plugin-for-drawing-and-exporting-diagrams-from-6cf4c8/f40d8fcf1c056285-a396d5b80d288a86/web_hero.webp","imageAlt":"A modular mechanical cassette device with three circular switches and an umbilical cable connector.","createdAt":"2026-09-16T02:09:31.174Z","updatedAt":"2026-09-16T02:30:56.879Z","sources":[{"role":"primary","title":"Cursor adds an Excalidraw plugin for drawing and exporting diagrams from chat","url":"https://github.com/cursor/plugins/commit/f4a966992f4de00e159109872a68394b316ec373","sourceName":"github.com","author":"github.com","publishedAt":"2026-09-10T12:00:00Z"}]},{"id":"d826fb1f-f64b-4a9a-9e1b-2684d4067986","title":"Cursor adds an official BigQuery plugin for dataset exploration and SQL","dek":"Version 1.0 connects Cursor to Google Cloud through Model Context Protocol (MCP), a standard for agents to use outside tools, with OAuth login and dataset, table, and SQL operations.","bodyMd":"Cursor added a Google Cloud BigQuery plugin to its official repository on September 10. The plugin connects Cursor agents to a Google-hosted service using Model Context Protocol (MCP), a standard that lets agents call outside tools. Its documented operations cover exploring BigQuery datasets and tables and running SQL queries.\n\nThe version 1.0 manifest requires Cursor 3.13.0 and identifies Cursor as the plugin author. Users can open Cursor Settings, select Plugins, search for Google Cloud BigQuery, and install it there. The repository also documents `/add-plugin google-cloud-bigquery` as the command-line route from chat. After installation, Cursor prompts the user to sign in with Google Cloud.\n\nAuthentication uses BigQuery user OAuth. The plugin does not ask users to configure a separate API key or client ID, but it still works through the signed-in Google Cloud account. Existing Google Cloud access controls continue to determine which projects, datasets, and tables that account can reach and which queries it can run.\n\nThe plugin configuration directs Cursor to BigQuery's Google-hosted service at `https://bigquery.googleapis.com/mcp`. Because the service is hosted by Google Cloud, the installed Cursor plugin is primarily a connection and authentication definition rather than a bundled database client. The manifest, service configuration, installation guide, and changelog all arrived in the official Cursor plugin repository together.\n\nFor exploration work, the documented surface groups the available actions around datasets and tables. That gives an agent a way to inspect the BigQuery structures exposed to the signed-in user before composing SQL. Query execution is the other named operation, so the same integration can move from inspecting those structures to running SQL under the account's existing permissions.\n\nThe release is version 1.0 of the plugin and is listed in Cursor's integrations category. Its manifest uses the Google Cloud BigQuery name and icon and requires Cursor 3.13.0 or later. The repository's marketplace entry describes the integration as a way to explore datasets and tables and run SQL queries, matching the narrower capability description in its own documentation.\n\nFor teams that already keep analytical data in BigQuery, setup consists of adding the plugin and completing the Google Cloud login rather than copying a service credential into the plugin. The resulting access remains attached to the user's Google identity and its existing cloud permissions.","status":"published","storyType":"news","category":null,"clusterKey":"q1470-cursor-bigquery","slug":"cursor-adds-an-official-bigquery-plugin-for-dataset-exploration-and-sql-d826fb","url":"https://cursorhq.ai/news/cursor-adds-an-official-bigquery-plugin-for-dataset-exploration-and-sql-d826fb/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/d826fb1f-f64b-4a9a-9e1b-2684d4067986","role":"item","position":3,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/cursor-adds-an-official-bigquery-plugin-for-dataset-exploration-and-sql-d826fb/192e1eca2ac95ac3-b0d041826be0277c/web_hero.webp","imageAlt":"A metallic device acting as a bridge between a single plugin card and a stack of three nested rings representing BigQuery data structures.","createdAt":"2026-09-16T02:09:26.028Z","updatedAt":"2026-09-16T02:31:03.814Z","sources":[{"role":"primary","title":"Cursor adds an official BigQuery plugin for dataset exploration and SQL","url":"https://github.com/cursor/plugins/commit/00ea25b86e1217e4392b154bd7c3c1195d9e0382","sourceName":"github.com","author":"github.com","publishedAt":"2026-09-10T12:00:00Z"}]},{"id":"afe79ea2-c1a5-466e-8f9b-e234f8b7c556","title":"Cursor adds a read-only SharePoint plugin for sites, files, and lists","dek":"The plugin connects Cursor to SharePoint through Model Context Protocol (MCP), a standard connector for outside services, with delegated read-only access.","bodyMd":"Cursor added a SharePoint plugin to its official plugin repository on September 14. The plugin connects Cursor agents to Microsoft SharePoint through Model Context Protocol (MCP), a standard that lets agents call outside tools. Its documented operations cover searching for sites, browsing document libraries and folders, searching and reading files, and reading SharePoint lists and list items available to the signed-in Microsoft account.\n\nThe plugin is explicitly read-only. Its changelog names the delegated `Sites.Read.All` permission, and the documentation says write operations are not part of the tool set. An agent can inspect team sites and documents that the signed-in account can already reach, but this plugin cannot modify or delete them.\n\nCursor distinguishes the plugin from its OneDrive integration. OneDrive targets the signed-in user's personal drive, while SharePoint targets sites and their team document libraries. That separation gives users a specific connection for shared organizational material instead of treating every Microsoft file as part of one personal drive.\n\nThe initial plugin manifest requires Cursor 3.19.0 and identifies Cursor as the author. Users install it through Cursor's plugin interface and then sign in with Microsoft. Access is delegated through that user account, so the plugin inherits the account's existing SharePoint reach rather than opening unrelated sites.\n\nSite search is the starting point for finding the relevant SharePoint workspace. From there, the documented tools can browse libraries and folders, search files, read file contents, and inspect lists and their items. These operations cover both document-oriented team work and structured information stored in SharePoint lists.\n\nThe September 14 repository change added the plugin files, permission scope, service configuration, changelog, and user documentation to Cursor's maintained marketplace. The version 1.0 release is categorized as a productivity integration and describes its role as searching and reading SharePoint sites, document libraries, files, and lists.\n\nBecause the permission is read-only, the plugin is suited to retrieving context from shared Microsoft workspaces without adding an editing path. Microsoft sign-in remains the access boundary, and SharePoint content unavailable to that account remains unavailable to the agent.","status":"published","storyType":"news","category":null,"clusterKey":"q1470-cursor-sharepoint","slug":"cursor-adds-a-read-only-sharepoint-plugin-for-sites-files-and-lists-afe79e","url":"https://cursorhq.ai/news/cursor-adds-a-read-only-sharepoint-plugin-for-sites-files-and-lists-afe79e/","relayUrl":"https://relaygrid.com/publications/pivot-cursor/stories/afe79ea2-c1a5-466e-8f9b-e234f8b7c556","role":"item","position":4,"imageStatus":"ready","imageUrl":"https://media.pivotnews.ai/brands/cursor-hq/articles/cursor-adds-a-read-only-sharepoint-plugin-for-sites-files-and-lists-afe79e/618fe9817561ca4e-9c16b01c13c1257e/web_hero.webp","imageAlt":"A metallic access device with a blocked probe tethered to a repository structure via a one-way connector.","createdAt":"2026-09-16T01:46:08.168Z","updatedAt":"2026-09-16T02:20:50.662Z","sources":[{"role":"primary","title":"Cursor adds a read-only SharePoint plugin for sites, files, and lists","url":"https://github.com/cursor/plugins/commit/90b852d2aa9206927b6a4eacab023302b38f3b5b","sourceName":"github.com","author":"github.com","publishedAt":"2026-09-14T12:00:00Z"}]}],"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"}]}