Installation
Engrams runs as an MCP server and requires Python 3.10+.
The recommended way is uvx, which manages the Python
environment automatically.
Prerequisites
- Python 3.10+ — I recommend using pyenv
- uv (recommended) — fast Python package manager. Install with:
curl -LsSf https://astral.sh/uv/install.sh | sh
Step 1 — Configure Editor
uvx runs Engrams directly from PyPI. Add the following to your MCP
client's configuration file:
{
"mcpServers": {
"engrams": {
"command": "uvx",
"args": [
"--reinstall",
"--from", "engrams-mcp",
"engrams-mcp",
"--mode", "stdio",
"--log-level", "INFO"
]
}
}
} Where is the config file?
| Tool | Config file location |
|---|---|
| Roo Code | ~/.roo/mcp.json or workspace .roo/mcp.json |
| Cline | VS Code settings → Cline → MCP Servers |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Claude Code | ~/.claude/mcp.json |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
--workspace_id. Engrams
detects the active project directory per-call using common project
indicators (.git, package.json, etc.).
Step 2 — Install the CLI
In your project root directory, run this command to install the CLI tools:
pip install engrams-mcp Step 3 — Initialize your project
Run engrams init from your project root. This does three things:
installs the AI strategy file, sets up team or solo mode, and creates the Engrams database.
# See all supported tools
engrams init --list
# Initialize for your AI tool (interactive — prompts for team/solo)
engrams init --tool roo
engrams init --tool cline
engrams init --tool cursor
engrams init --tool windsurf
engrams init --tool claude-code
engrams init --tool generic
# Or specify team/solo directly
engrams init --tool roo --team # Team: decisions shared via .engrams/ + Git
engrams init --tool roo --solo # Solo: decisions stay in local database - Strategy file — tells your AI how and when to use Engrams tools
- Team/solo config — sets the default visibility for decisions
- Database — creates
engrams/context.dbwith the visibility config seeded - (Team only)
.engrams/directory — creates the filesystem structure for Git-shared decisions
For Roo Code users
engrams init --tool roo installs the complete Roo scaffold:
.roo/rules/engrams_strategy— Engrams memory strategy rules.roomodes— 5 custom Flow modes (Code, Architect, Ask, Debug, Orchestrator).roo/system-prompt-flow-*— Per-mode system prompts with Engrams integration
Use --skip-prompts to install only the strategy rules without system prompt files.
Step 4 — (Team) Commit .engrams/ to Git
If you chose Team mode, Engrams created a .engrams/ directory.
Commit it to share team decisions through Git:
git add .engrams/
git commit -m "chore: initialize Engrams team sync"
git push
From this point on, every decision your AI logs with visibility=team is
automatically written as a markdown file in .engrams/decisions/. When you
commit and push, teammates get those decisions on their next pull.
.engrams/ immediately when created. You just commit the
directory as part of your normal Git workflow. See
Team Sync for the full architecture.
Teammates joining the project
When a teammate clones the repo, they already have all team decisions in .engrams/.
They just need to:
pip install engrams-mcp
engrams init --tool roo --team # (or their preferred AI tool)
On the first MCP tool call, Engrams auto-imports the .engrams/ files into
their local SQLite cache.
Verify the installation
In a new chat, ask your AI:
What is the Engrams schema? List all available MCP tools. If Engrams is connected, the AI will respond with a full list of tools.
alembic, migration scripts,
or any other database commands manually — Engrams handles this internally.
Next: Quick Start →