diff --git a/README.md b/README.md index 17de7dea..e7b92744 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ All of this is in our single memory structure and ontology.

🧑‍💻 I use AI tools

-Give Claude Code, Cursor, Codex and OpenCode **persistent memory across every conversation** with a plugin or the MCP server. +Give Claude Code, Muse Code, Cursor, Codex and OpenCode **persistent memory across every conversation** with a plugin or the MCP server. Your AI remembers your preferences, projects, past discussions — and gets smarter over time. @@ -111,7 +111,7 @@ Plugins and the MCP server give any compatible AI assistant persistent memory. O ### Supermemory Plugins -Supermemory comes built with plugins for Claude Code, Cursor, Codex, OpenCode, OpenClaw, and Hermes. +Supermemory comes built with plugins for Claude Code, Muse Code, Cursor, Codex, OpenCode, OpenClaw, and Hermes. image @@ -120,6 +120,7 @@ These plugins are implementations of the supermemory API, and they are open sour You can find them here: - Claude Code plugin: https://github.com/supermemoryai/claude-supermemory +- Muse Code plugin: https://github.com/supermemoryai/muse-supermemory - Cursor plugin: https://github.com/supermemoryai/cursor-supermemory - Codex plugin: https://github.com/supermemoryai/codex-supermemory - OpenClaw plugin: https://github.com/supermemoryai/openclaw-supermemory diff --git a/apps/docs/docs.json b/apps/docs/docs.json index cc0618e2..0d41141c 100644 --- a/apps/docs/docs.json +++ b/apps/docs/docs.json @@ -390,6 +390,7 @@ "integrations/openclaw", "integrations/hermes", "integrations/claude-code", + "integrations/muse-code", "integrations/codex", "integrations/opencode", "integrations/cursor", diff --git a/apps/docs/images/muse-code-icon.svg b/apps/docs/images/muse-code-icon.svg new file mode 100644 index 00000000..542c7d67 --- /dev/null +++ b/apps/docs/images/muse-code-icon.svg @@ -0,0 +1,4 @@ + + Meta + + diff --git a/apps/docs/integrations/cursor.mdx b/apps/docs/integrations/cursor.mdx index 67cbf681..8c516475 100644 --- a/apps/docs/integrations/cursor.mdx +++ b/apps/docs/integrations/cursor.mdx @@ -122,7 +122,7 @@ Every tool that takes a `container` argument accepts: ## 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: +Cursor shares one repository tag with the [Claude Code](/integrations/claude-code), [Muse Code](/integrations/muse-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___ diff --git a/apps/docs/integrations/muse-code.mdx b/apps/docs/integrations/muse-code.mdx new file mode 100644 index 00000000..239bc957 --- /dev/null +++ b/apps/docs/integrations/muse-code.mdx @@ -0,0 +1,138 @@ +--- +title: "Muse Code" +sidebarTitle: "Muse Code" +description: "muse-supermemory — persistent memory for Meta Muse Code" +icon: "/images/muse-code-icon.svg" +--- + +[muse-supermemory](https://github.com/supermemoryai/muse-supermemory) is a native [Muse Code](https://dev.meta.ai/docs/muse-code) plugin that gives your agent persistent memory across sessions. Your agent remembers what you worked on — across sessions, across projects. + + +**Prefer to keep everything on your machine?** This plugin works with [self-hosted Supermemory](/self-hosting/overview) — run `npx supermemory local`, then set `baseUrl` in `.muse/supermemory.json` (Muse clears hook env, so `SUPERMEMORY_API_URL` may not reach the plugin) and use the API key printed on first boot. + + +## Install the Plugin + +> **Requires Node.js 18+** on your PATH — the memory hooks and MCP proxy run as Node scripts. + +In a Muse session, open `/plugins` and install from the marketplace. Or from the CLI: + +```bash +export MUSE_EXPERIMENTAL_PLUGINS=1 +muse plugins marketplace add supermemory https://github.com/supermemoryai/muse-supermemory +muse plugins install supermemory@supermemory +muse plugins approve supermemory +``` + +`approve` trusts the runtime capabilities (hooks + MCP). Without it, the plugin is installed but inert. + +Local bundle (a clone of the repo): + +```bash +export MUSE_EXPERIMENTAL_PLUGINS=1 +muse plugins install . --scope user +muse plugins approve supermemory +``` + +## Authenticate + +Muse runs hooks with a **cleared environment**, so an exported API key in your shell does not reach them. Auth is file-based. + +The first session opens a browser login and writes `~/.supermemory-muse/credentials.json`. + +If you already logged in through the [Claude Code plugin](/integrations/claude-code), that key is reused from `~/.supermemory-claude/credentials.json`. + +Or write the file yourself with a key from [API Keys](https://console.supermemory.ai/keys): + +```json +{ "apiKey": "sm_..." } +``` + +Check the connection any time with `/supermemory:status`. + +## How It Works + +Two layers, same as the other coding plugins: + +| Layer | When | What it does | +| --- | --- | --- | +| Session profile | `SessionStart` | Injects up to 5 persistent profile facts and 5 recent memories for this repo | +| Prompt recall | `UserPromptSubmit` | Searches supermemory with the prompt, injects up to 5 new hits (similarity ≥ 0.55) | +| Auto-approve | `PreToolUse` | Allows read-only supermemory MCP tools without a permission prompt | +| Auto-capture | `Stop` | Saves new user prompts and assistant messages from Muse's `session.jsonl` | +| MCP tools | on demand | Search, save, list, and manage memories explicitly | + +Recalled lines are marked `◪`. When the model uses one, it keeps that mark and says "from supermemory" — never "from memory". + +Slash commands and very short prompts skip recall. Timeouts fail open so a slow network never blocks the turn. + +### Memory scope + +Container tags match [Claude Code](/integrations/claude-code): + +```text +repo___ +``` + +The project ID is a hash of the git remote (or the resolved local path if there isn't one). The same repo in Muse and Claude Code shares memory. Override with `repoContainerTag` in project config. + +## Commands + +| Command | Description | +| --- | --- | +| `/supermemory:index` | Index codebase architecture and patterns | +| `/supermemory:status` | Auth, container tag, API and MCP reachability | +| `/supermemory:logout` | Clear saved Muse credentials | + +A bundled skill also tells the agent when to search vs save on its own. + +## Configuration + +### Global settings + +`~/.supermemory-muse/settings.json` + +```json +{ + "maxProfileItems": 5, + "debug": false +} +``` + +| Option | Description | +| --- | --- | +| `maxProfileItems` | Max profile facts injected at session start (default: 5) | +| `debug` | Log hook activity to stderr | +| `recallDirective` | Replace prompt-recall injection with a fixed instruction | + +### Project config + +Per-repo overrides in `.muse/supermemory.json`. A Claude Code config at `.claude/.supermemory-claude/config.json` is also read, so one repo keeps one container tag across tools. + +```json +{ + "apiKey": "sm_...", + "baseUrl": "https://api.supermemory.ai", + "repoContainerTag": "my-team-project" +} +``` + +| Option | Description | +| --- | --- | +| `apiKey` | Project-specific API key | +| `baseUrl` | Supermemory API URL (use for self-hosted) | +| `repoContainerTag` | Override the auto-derived project container | + +Add the project file to `.gitignore` if it contains an API key. + +## Next Steps + + + + Source code, issues, and detailed README. + + + + The same memory in Claude Code. + + diff --git a/apps/docs/overview/billing.mdx b/apps/docs/overview/billing.mdx index 8b12af25..86080c4a 100644 --- a/apps/docs/overview/billing.mdx +++ b/apps/docs/overview/billing.mdx @@ -182,7 +182,7 @@ Usage meters are shared; **feature gates** differ by tier. |---|---|---|---|---| | Memory API, search, profiles | Yes | Yes | Yes | Yes | | Diff / delta token billing | Yes | Yes | Yes | Yes | -| Plugins (Claude Code, Cursor, Hermes, …) | — | Yes | Yes | Yes | +| Plugins (Claude Code, Muse Code, Cursor, Hermes, …) | — | Yes | Yes | Yes | | Team management | — | Yes | Yes | Yes | | Google Drive, OneDrive, Notion connectors | — | Yes | Yes | Yes | | Gmail, GitHub, S3, Web Crawler connectors | — | — | Yes | Yes | diff --git a/apps/docs/self-hosting/overview.mdx b/apps/docs/self-hosting/overview.mdx index 8fc9fe23..77a98d1f 100644 --- a/apps/docs/self-hosting/overview.mdx +++ b/apps/docs/self-hosting/overview.mdx @@ -54,7 +54,7 @@ const client = new Supermemory({ }) ``` -Everything in the [Memory API docs](/quickstart) works the same way. The coding plugins do too — [Claude Code](/integrations/claude-code), [Codex](/integrations/codex), and [OpenCode](/integrations/opencode) all target your local server with `SUPERMEMORY_API_URL=http://localhost:6767`. +Everything in the [Memory API docs](/quickstart) works the same way. The coding plugins do too — [Claude Code](/integrations/claude-code), [Muse Code](/integrations/muse-code), [Codex](/integrations/codex), and [OpenCode](/integrations/opencode) all target your local server with `SUPERMEMORY_API_URL=http://localhost:6767` (Muse: set `baseUrl` in `.muse/supermemory.json`, because hook env is cleared). ## Self-hosted vs. the platform