Your AI forgets everything when you close the tab. Phloem fixes that. Phloem is a local MCP server that gives your AI persistent memory across sessions. It works with any tool that supports the Model Context Protocol — an open standard. Today that includes Claude Code, VS Code, Cursor, Windsurf, Zed, Neovim, Cline, Warp, Continue, JetBrains, and more arriving every week. You install it once. Every
Add this skill
npx mdskills install CanopyHQ/phloemMCP server providing persistent memory with semantic search, code citations, and causal graphs
1# Phloem23**Your AI forgets everything when you close the tab. Phloem fixes that.**45[](https://go.dev)6[](LICENSE)7[](https://github.com/CanopyHQ/phloem/releases)8[](https://modelcontextprotocol.io)910Phloem is a local [MCP](https://modelcontextprotocol.io) server that gives your AI persistent memory across sessions. It works with **any tool that supports the Model Context Protocol** — an open standard. Today that includes Claude Code, VS Code, Cursor, Windsurf, Zed, Neovim, Cline, Warp, Continue, JetBrains, and more arriving every week.1112You install it once. Every MCP-compatible AI tool on your machine gets memory.1314```bash15brew install canopyhq/tap/phloem # or download binary from Releases16phloem setup # auto-detects your tools17```1819---2021## Why Not Just Use `.claude` Files or Markdown?2223Every AI coding tool has some form of project context — `.claude/` directories, `CLAUDE.md`, `.cursorrules`, system prompts. They work. So why do you need Phloem?2425**They're siloed.** Your `.claude` files don't help Cursor. Your `.cursorrules` don't help Claude Code. Switch tools and you start from zero. Phloem is one memory that works across all of them because MCP is a shared standard.2627**They're static text.** You write rules by hand and hope the AI reads them. Phloem memories are created naturally during conversation, found via semantic search (not keyword matching), and linked to the code they reference.2829**They can't track what changed.** You wrote "we use JWT with 15-minute expiry" in a markdown file. Then someone changed it to 30 minutes. The file still says 15. Phloem **citations** link memories to specific lines of code and **automatically decay confidence** when the code drifts. Your AI never confidently cites stale information.3031**They don't capture *why*.** Markdown files tell the AI *what* to do. Phloem's **causal graph** captures the chain of decisions — *why* you chose JWT over sessions, what that caused you to change, and what would break if you reverted it.3233---3435## What Makes Phloem Different3637### Semantic memory, not keyword matching3839```40You: "Add the logout endpoint"41```4243Phloem finds "JWT tokens expire in 15 minutes, refresh tokens in 7 days" — even though nothing in your query mentions JWT or tokens. It understands *meaning*, not just words.4445### Citations that know when code changes4647```48Memory: "Rate limiter uses sliding window, 100 req/min per API key"49 → src/middleware/rate_limit.go:42-67 (confidence: 0.95)50```5152Refactor that file? Confidence decays. Delete it? Citation marked invalid. Your AI adapts.5354### Causal graphs, not flat lists5556```57"Switched from REST to gRPC"58 → caused: "Updated service clients to protobuf"59 → caused: "Added buf.gen.yaml to build pipeline"60 → caused: "Rewrote integration tests for streaming"61```6263Ask "what would break if we reverted gRPC?" and get a real answer.6465### Completely offline6667Zero network requests. Not as a policy — there is no networking code in the binary. Your memories are a SQLite file on your disk. `phloem audit` proves it.6869### Tool-agnostic by design7071Phloem speaks MCP — the same open protocol that Claude Code, VS Code, Cursor, Zed, and others already support. Add a new AI tool? If it speaks MCP, it already has access to your full memory.7273---7475## Quick Start with Claude Code7677```bash78brew install canopyhq/tap/phloem79phloem setup claude-code80```8182No restart needed. Start a session and your AI has memory.8384For **all other supported tools** (VS Code, Cursor, Windsurf, Zed, Neovim, Cline, Warp, Continue, JetBrains), see the **[Supported Tools Guide](docs/SUPPORTED_TOOLS.md)**.8586Or just run `phloem setup` — it auto-detects everything on your machine.8788---8990## Install9192**macOS (Homebrew):**9394```bash95brew install canopyhq/tap/phloem96phloem setup97```9899**Windows / Linux:**100101Download the binary for your platform from [GitHub Releases](https://github.com/CanopyHQ/phloem/releases), extract it, add to PATH, then run `phloem setup`.102103**From source:**104105```bash106git clone https://github.com/CanopyHQ/phloem.git && cd phloem107CGO_ENABLED=1 go build -o phloem .108./phloem setup109```110111Requires Go 1.24+ and a C compiler (for sqlite-vec/CGO).112113---114115## How It Works116117**SQLite + sqlite-vec** — Everything in `~/.phloem/memories.db`. Vector embeddings power semantic search. No external services.118119**Causal DAG** — Memories linked by cause and effect. Your AI traverses the graph to understand full chains of reasoning.120121**Citation verification** — Memories attach to `file:line` ranges. When code drifts, confidence decays automatically.122123**MCP Protocol** — JSON-RPC over stdio. No HTTP server, no ports, no network surface. Any MCP client connects instantly.124125---126127## Privacy128129There is no networking code in the binary. Verify it:130131```bash132phloem audit133sudo lsof -i -P | grep phloem # should show nothing134```135136No accounts. No telemetry. No analytics. Delete anytime: `rm -rf ~/.phloem`. [Full details →](docs/PRIVACY.md)137138---139140## Contributing141142We welcome contributions. See **[CONTRIBUTING.md](CONTRIBUTING.md)** for guidelines.143144- [Report issues](https://github.com/CanopyHQ/phloem/issues)145- [Discussions](https://github.com/CanopyHQ/phloem/discussions)146147---148149Apache 2.0 License. Built by [Canopy HQ LLC](https://canopyhq.io).150
Full transparency — inspect the skill content before installing.