--- title: "past.dev for Cursor" description: "Cursor chats become memory, and every prompt reaches the model with what past.dev recalls for it." canonical: https://past.dev/docs/plugins/cursor last-updated: 2026-10-12 --- # past.dev for Cursor > Cursor chats become memory, and every prompt reaches the model with what past.dev recalls for it. Product: past.dev Plugins. Source: https://past.dev/docs/plugins/cursor ### Requirements - Cursor 3.23 or later. - Node 16 or later on the path of your login shell. - A project API key and an identity. ### Install the Cursor plugin In Cursor, open Customize and add a marketplace from GitHub with the source `pastdotdev/cursor-plugin`. Then install past.dev from it. From a terminal, this command adds the same marketplace: ```terminal agent plugin marketplace add https://github.com/pastdotdev/cursor-plugin ``` ### Connect the Cursor plugin Run this in a chat. Cursor asks before it runs the command. ```cursor /past-connect ``` The project API key starts with `past_sk_`. Create it on the API keys screen of the console at https://app.past.dev. Do not use the project id or the organization's `past_mk_` management key: a plugin cannot ingest or recall with them. The identity is the email or id that every memory from your sessions is attributed to. Recall answers as this identity, so recall stays off until you set one. Without an audience, every reader in the project can see what you send. Add `--audience ` to the connect command to narrow it to one audience from the console. `--audience project` widens it again. ### How Cursor recalls - On every prompt, the plugin recalls against the prompt and puts the result in front of it. The first prompt of a chat also gets the project's history. - The plugin also serves the `past_recall` tool, which the agent calls to look something up. - Ask mode offers no tools, so there recall comes with the prompt only. ### When Cursor chats are sent A chat is sent when it was quiet for 30 minutes. A turn that the agent still works on is never quiet. What you say after that starts a new sitting, so a sitting that was sent is never sent again. When Cursor opens a workspace, the plugin sends the chats that went quiet while Cursor was closed. The plugin reads a chat from the moment you install it, so it has no history command. ### Cursor skills | Skill | What it does | | --- | --- | | `/past-connect` | Stores the key, the identity and the audience in `~/.past/config.json`. | | `/past-status` | Shows the connection, what was sent, and the last send that failed. | | `/past-cut [chat]` | Prints exactly what would be sent from a chat. The default is the latest chat in this workspace. | | `/past-ingest [chat]` | Sends one chat now, before it goes quiet. | Set `promptRecall` to `false` in `~/.past/config.json` to stop the recall in front of every prompt and keep the `past_recall` tool. ### Remove the Cursor plugin Uninstall the plugin in Customize, then delete `~/.past/cursor`. Revoke the key on the API keys screen to stop it at once from the server side. Data that was already sent stays in past.dev until you delete it. Source code and issues: [pastdotdev/cursor-plugin](https://github.com/pastdotdev/cursor-plugin).