diff --git a/apps/docs/docs.json b/apps/docs/docs.json index 3891a43bd..663c9b403 100644 --- a/apps/docs/docs.json +++ b/apps/docs/docs.json @@ -388,6 +388,8 @@ "pages": [ "integrations/openclaw", "integrations/claude-code", + "integrations/cursor", + "integrations/grok-bot", "integrations/opencode", "integrations/codex", "integrations/hermes" diff --git a/apps/docs/images/cursor-logo.svg b/apps/docs/images/cursor-logo.svg new file mode 100644 index 000000000..e2cef2e43 --- /dev/null +++ b/apps/docs/images/cursor-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/docs/images/grok-logo.png b/apps/docs/images/grok-logo.png new file mode 100644 index 000000000..d839f8088 Binary files /dev/null and b/apps/docs/images/grok-logo.png differ diff --git a/apps/docs/integrations/claude-code.mdx b/apps/docs/integrations/claude-code.mdx index 8d2909301..1a41f75c1 100644 --- a/apps/docs/integrations/claude-code.mdx +++ b/apps/docs/integrations/claude-code.mdx @@ -145,7 +145,7 @@ Per-repo overrides in `.claude/.supermemory-claude/config.json`. Run `/supermemo Source code, issues, and detailed README. - - Multi-platform memory for Telegram, WhatsApp, Discord, and more. + + Memory for your Cursor chats. diff --git a/apps/docs/integrations/codex.mdx b/apps/docs/integrations/codex.mdx index 008960158..179784602 100644 --- a/apps/docs/integrations/codex.mdx +++ b/apps/docs/integrations/codex.mdx @@ -170,7 +170,7 @@ tail -f ~/.codex-supermemory.log Source code, issues, and detailed README. - - Memory plugin for Claude Code. + + Memory for your Cursor chats. diff --git a/apps/docs/integrations/cursor.mdx b/apps/docs/integrations/cursor.mdx new file mode 100644 index 000000000..67cbf681a --- /dev/null +++ b/apps/docs/integrations/cursor.mdx @@ -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 + + +Requires [Node.js](https://nodejs.org) on your `PATH`. Installing Cursor does not put one there. + + +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): + + + + ```bash + echo 'export SUPERMEMORY_API_KEY="sm_..."' >> ~/.zshrc + source ~/.zshrc + ``` + + + ```bash + echo 'export SUPERMEMORY_API_KEY="sm_..."' >> ~/.bashrc + source ~/.bashrc + ``` + + + ```powershell + [System.Environment]::SetEnvironmentVariable("SUPERMEMORY_API_KEY", "sm_...", "User") + ``` + Restart your terminal after running this. + + + +Restart Cursor after installing the plugin or changing credentials. + +Check the connection any time with `/supermemory-status`. + + +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 ` from the installed plugin directory. + +Credentials are stored in `~/.supermemory-cursor/credentials.json`. + + +## 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___ +``` + +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 + + +**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. + + +### 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 + + + Source code, issues, and detailed README. + diff --git a/apps/docs/integrations/grok-bot.mdx b/apps/docs/integrations/grok-bot.mdx new file mode 100644 index 000000000..878a64cc5 --- /dev/null +++ b/apps/docs/integrations/grok-bot.mdx @@ -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 + + + + Source code, issues, and detailed README. + + + + The same plugin, installed through Cursor. + + diff --git a/apps/web/lib/plugin-catalog.ts b/apps/web/lib/plugin-catalog.ts index 93a3d0e8c..480cc91ec 100644 --- a/apps/web/lib/plugin-catalog.ts +++ b/apps/web/lib/plugin-catalog.ts @@ -86,7 +86,7 @@ export const PLUGIN_CATALOG: Record = { name: "Cursor", tagline: "Persistent memory, session hooks, and MCP tools inside Cursor", icon: "/images/plugins/cursor.png", - docsUrl: "https://github.com/supermemoryai/cursor-supermemory#readme", + docsUrl: "https://supermemory.ai/docs/integrations/cursor", githubUrl: "https://github.com/supermemoryai/cursor-supermemory", installSteps: [ {