-
Notifications
You must be signed in to change notification settings - Fork 2.6k
docs: add Cursor and Grok Bot plugin pages #1635
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,208 @@ | ||
| --- | ||
| title: "Cursor" | ||
| sidebarTitle: "Cursor" | ||
| description: "cursor-supermemory: persistent memory across your Cursor chats" | ||
| icon: "/images/cursor-logo.svg" | ||
| --- | ||
|
|
||
| Your agent remembers the decisions, bugs, and conventions from earlier chats instead of starting cold every time. | ||
|
|
||
| ## Install | ||
|
|
||
| <Note> | ||
| Requires [Node.js](https://nodejs.org) on your `PATH`. Installing Cursor does not put one there. | ||
| </Note> | ||
|
|
||
| Run this in Cursor: | ||
|
|
||
| ``` | ||
| /add-plugin cursor-supermemory | ||
| ``` | ||
|
|
||
| Or install it from the [Cursor Marketplace](https://cursor.com/marketplace/supermemory): open **Customize**, find **Supermemory**, select **Install**, and choose **project** or **user** scope. | ||
|
|
||
| Restart Cursor or run **Developer: Reload Window** afterwards. | ||
|
|
||
| ## Authenticate | ||
|
|
||
| Open a new chat in Cursor and run: | ||
|
|
||
| ``` | ||
| /supermemory-setup | ||
| ``` | ||
|
|
||
| A browser window opens. Sign in to Supermemory and you are done. | ||
|
|
||
| As a fallback, set an API key from [API Keys](https://console.supermemory.ai/keys): | ||
|
|
||
| <Tabs> | ||
| <Tab title="macOS / Linux (zsh)"> | ||
| ```bash | ||
| echo 'export SUPERMEMORY_API_KEY="sm_..."' >> ~/.zshrc | ||
| source ~/.zshrc | ||
| ``` | ||
| </Tab> | ||
| <Tab title="macOS / Linux (bash)"> | ||
| ```bash | ||
| echo 'export SUPERMEMORY_API_KEY="sm_..."' >> ~/.bashrc | ||
| source ~/.bashrc | ||
| ``` | ||
| </Tab> | ||
| <Tab title="Windows (PowerShell)"> | ||
| ```powershell | ||
| [System.Environment]::SetEnvironmentVariable("SUPERMEMORY_API_KEY", "sm_...", "User") | ||
| ``` | ||
| Restart your terminal after running this. | ||
| </Tab> | ||
| </Tabs> | ||
|
|
||
| Restart Cursor after installing the plugin or changing credentials. | ||
|
|
||
| Check the connection any time with `/supermemory-status`. | ||
|
|
||
| <Accordion title="Prefer the terminal?" icon="terminal"> | ||
| The slash commands just run the plugin's CLI for you. To drive it yourself: | ||
|
|
||
| ```bash | ||
| node "${CURSOR_PLUGIN_ROOT}/dist/cli.js" login | ||
| node "${CURSOR_PLUGIN_ROOT}/dist/cli.js" status | ||
| node "${CURSOR_PLUGIN_ROOT}/dist/cli.js" logout | ||
| ``` | ||
|
|
||
| `CURSOR_PLUGIN_ROOT` is set for plugin hooks. If it is empty in your shell, run `node dist/cli.js <command>` from the installed plugin directory. | ||
|
|
||
| Credentials are stored in `~/.supermemory-cursor/credentials.json`. | ||
| </Accordion> | ||
|
|
||
| ## How It Works | ||
|
|
||
| | Layer | What it does | | ||
| |-------|--------------| | ||
| | Session profile | Loads your persistent profile when a Cursor conversation starts | | ||
| | Automatic recall | Searches on substantive prompts, deduplicates results, and injects them after the first supported tool result | | ||
| | Incremental capture | Saves each completed turn, and retries unsaved transcript deltas at session end | | ||
| | MCP tools | Explicit memory control from any Cursor AI session | | ||
| | Context gatherer | Fans out targeted searches before substantial work | | ||
| | Always-on rule | Makes the agent recall relevant history proactively | | ||
|
|
||
| ### Skills and Commands | ||
|
|
||
| | Name | Type | Description | | ||
| |------|------|-------------| | ||
| | `memory-init` | Skill | Explore the codebase and initialize project memory | | ||
| | `memory-save` | Skill | Save an insight, decision, or solution worth keeping | | ||
| | `memory-search` | Skill | Search memory for past work, bugs, and decisions | | ||
| | `supermemory-context-gatherer` | Agent | Gather deep background before substantial work | | ||
| | `supermemory-setup` | Command | Connect Supermemory to Cursor | | ||
| | `supermemory-status` | Command | Check authentication and live connectivity | | ||
| | `supermemory-config` | Command | Create or edit the project config file | | ||
| | `supermemory-logout` | Command | Disconnect Supermemory from Cursor | | ||
|
|
||
| ## MCP Tools | ||
|
|
||
| | Tool | Description | | ||
| |------|-------------| | ||
| | `supermemory_get_config` | Show current config, resolved container tags, and config file paths | | ||
| | `supermemory_set_config` | Update config at project or global scope | | ||
| | `supermemory_containers` | Show what `user` and `project` container tags resolve to | | ||
| | `supermemory_search` | Search memories by query | | ||
| | `supermemory_add` | Save new information to memory | | ||
| | `supermemory_list` | List stored memories | | ||
| | `supermemory_forget` | Delete a memory by id or content | | ||
| | `supermemory_profile` | Get your user profile summary | | ||
|
|
||
| Every tool that takes a `container` argument accepts: | ||
|
|
||
| - `"user"` (default): personal memories for the current repository | ||
| - `"project"`: project knowledge for the current repository | ||
| - `"both"`: both scopes plus compatible legacy memories | ||
| - any custom string: used as a raw container tag | ||
|
|
||
| `user` and `project` write to the same repository container. The `sm_scope` metadata field is what keeps personal and session memories separate from explicit project knowledge when an agent asks for one scope. | ||
|
|
||
| ## Container Tags | ||
|
|
||
| Cursor shares one repository tag with the [Claude Code](/integrations/claude-code), [OpenAI Codex](/integrations/codex), and [OpenCode](/integrations/opencode) plugins, so agents working on the same repo read and write the same memory: | ||
|
|
||
| ```text | ||
| repo_<project_name>__<project_id> | ||
| ``` | ||
|
|
||
| The project ID is a stable hash of the normalized Git remote. Repositories without a remote fall back to their resolved local path. Two repos with the same directory name never collide, and different agents on the same repository share memory. | ||
|
|
||
| The plugin still reads the former `cursor_user_*` and `cursor_project_*` tags, along with legacy tags from the other agents. New writes only use the unified repository tag. Set `repoContainerTag` only when you need an explicit shared override. | ||
|
|
||
| ## Configuration | ||
|
|
||
| <Tip> | ||
| **Prefer to keep everything on your machine?** This plugin works with [self-hosted Supermemory](/self-hosting/overview): run `npx supermemory local`, then set `SUPERMEMORY_API_URL="http://localhost:6767"` (or `baseUrl` in your config file) and use the API key printed on first boot. | ||
| </Tip> | ||
|
|
||
| ### Environment variables | ||
|
|
||
| | Variable | Description | | ||
| |----------|-------------| | ||
| | `SUPERMEMORY_API_KEY` | API key (overrides all other sources) | | ||
| | `SUPERMEMORY_API_URL` | Override the Supermemory API base URL | | ||
| | `SUPERMEMORY_REPO_TAG` | Override the unified repository container tag | | ||
| | `SUPERMEMORY_USER_TAG` | Legacy Cursor personal container to continue reading | | ||
| | `SUPERMEMORY_PROJECT_TAG` | Legacy Cursor project container to continue reading | | ||
| | `CURSOR_USER_EMAIL` | Used only to find legacy Cursor personal memories | | ||
|
|
||
| ### Global config | ||
|
|
||
| `~/.config/cursor/supermemory.json` holds user-wide defaults and applies to all projects. | ||
|
|
||
| ```json | ||
| { | ||
| "repoContainerTag": "repo_my_project__0123456789abcdef", | ||
| "similarityThreshold": 0.55, | ||
| "maxMemories": 10, | ||
| "injectProfile": true, | ||
| "signalExtraction": false, | ||
| "signalKeywords": ["remember", "architecture", "decision", "bug", "fix"], | ||
| "signalTurnsBefore": 3 | ||
| } | ||
| ``` | ||
|
|
||
| ### Project config | ||
|
|
||
| `.cursor/.supermemory/config.json` holds per-workspace overrides and wins over global config. Add it to `.gitignore` if it contains an API key. | ||
|
|
||
| ```json | ||
| { | ||
| "apiKey": "sm_...", | ||
| "repoContainerTag": "repo_my_project__0123456789abcdef", | ||
| "similarityThreshold": 0.55, | ||
| "maxMemories": 10, | ||
| "injectProfile": true | ||
| } | ||
| ``` | ||
|
|
||
| | Option | Default | Description | | ||
| |--------|---------|-------------| | ||
| | `apiKey` | — | Project-specific API key | | ||
| | `baseUrl` | Supermemory API | Override the Supermemory API base URL | | ||
| | `repoContainerTag` | derived from normalized Git remote or project path | Override the unified repository container | | ||
| | `userContainerTag` | — | Legacy Cursor personal container to continue reading | | ||
| | `projectContainerTag` | — | Legacy Cursor project container to continue reading | | ||
| | `similarityThreshold` | `0.55` | Minimum similarity for prompt recall. Values below `0.55` are floored. | | ||
| | `maxMemories` | `10` | Max profile facts injected at session start | | ||
| | `injectProfile` | `true` | Whether to inject the user profile at session start | | ||
| | `signalExtraction` | `false` | Capture only turns containing durable-signal keywords | | ||
| | `signalKeywords` | `remember`, `architecture`, `decision`, `bug`, `fix` | Keywords that trigger signal-based capture | | ||
| | `signalTurnsBefore` | `3` | Number of nearby turns retained around a signal | | ||
|
|
||
| You can also set these from the agent with `supermemory_set_config`, or edit the file by hand. | ||
|
|
||
| ## Log Out | ||
|
|
||
| Run `/supermemory-logout` in Cursor. | ||
|
|
||
| This removes the stored credentials. Your memories in Supermemory are preserved. | ||
|
|
||
| ## Next Steps | ||
|
|
||
| <Card title="GitHub Repository" icon="/images/github-icon.svg" href="https://github.com/supermemoryai/cursor-supermemory"> | ||
| Source code, issues, and detailed README. | ||
| </Card> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| --- | ||
| title: "Grok Bot" | ||
| sidebarTitle: "Grok Bot" | ||
| description: "Supermemory for Grok Bot: persistent memory for your Grok Bots" | ||
| icon: "/images/grok-logo.png" | ||
| --- | ||
|
|
||
| Grok Bots are cloud agents. A new task can mean a new machine and a blank context. Supermemory is the memory they keep between those tasks — findings, decisions, and preferences — so the next Bot does not start cold. | ||
|
|
||
| ## How it helps | ||
|
|
||
| Without memory, a Bot redoes investigation you already paid for. With Supermemory: | ||
|
|
||
| - Later Bots know what earlier ones already figured out | ||
| - You can save a decision or finding once and have it stick | ||
| - You can ask what it already remembers instead of starting over | ||
|
|
||
| Install once, sign in, and it is available to your Grok Bots. | ||
|
|
||
| ## Install | ||
|
|
||
| Open the [Supermemory for Grok Bot plugin page](https://x.ai/bot/plugin/58578698) and select **Add to Grok Bot**. | ||
|
|
||
| Restart Grok Bot afterwards so the plugin loads. | ||
|
|
||
| ## Authenticate | ||
|
|
||
| Just ask Grok Bot: | ||
|
|
||
| ``` | ||
| Sign me in to Supermemory | ||
| ``` | ||
|
|
||
| It shows a connect card. Follow it to link your Supermemory account. | ||
|
|
||
| To check later, ask `Is Supermemory connected?` | ||
|
|
||
| ## Skills | ||
|
|
||
| Grok Bot picks these up from what you ask. There are no slash commands. | ||
|
|
||
| | Skill | Ask for it like this | | ||
| |-------|----------------------| | ||
| | `memory-init` | "Learn this codebase and remember it" | | ||
| | `memory-save` | "Remember that we use Vitest for unit tests" | | ||
| | `memory-search` | "What do you remember about our database schema?" | | ||
|
|
||
| ## Log Out | ||
|
|
||
| Ask Grok Bot to `Disconnect Supermemory`. | ||
|
|
||
| This removes the stored credentials. Your memories in Supermemory are preserved. | ||
|
|
||
| ## Next Steps | ||
|
|
||
| <CardGroup cols={2}> | ||
| <Card title="GitHub Repository" icon="/images/github-icon.svg" href="https://github.com/supermemoryai/cursor-supermemory"> | ||
| Source code, issues, and detailed README. | ||
| </Card> | ||
|
|
||
| <Card title="Cursor Plugin" icon="/images/cursor-logo.svg" href="/integrations/cursor"> | ||
| The same plugin, installed through Cursor. | ||
| </Card> | ||
| </CardGroup> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.