sqlew
OfficialEnables storing and querying architectural decisions using a MariaDB database backend.
Enables storing and querying architectural decisions using a MySQL database backend.
Enables storing and querying architectural decisions using a PostgreSQL database backend.
Enables storing and querying architectural decisions using an SQLite database backend.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sqlewshow me recent architectural decisions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sqlew

Design intent on tap — stop agents from re-auditing the whole repo every turn
What is sqlew?
The Problem
Strong coding agents no longer "forget" the stack between sessions the way older models did. They treat the codebase as ground truth — and that is good for correctness.
The new failure mode is cost and thrash:
Specs, plans, and ADRs already say why a choice was made
The agent still re-opens large swaths of source "just to be sure"
Rejected alternatives and non-local constraints are expensive (or impossible) to re-derive from code alone
Every turn pays the same investigation tax; multi-agent and multi-day work multiplies it
Code answers what is implemented. It is a poor, high-token index for why we chose it, what we forbade, and what we already rejected.
The Solution
sqlew is an MCP server that stores architectural decisions and constraints in a SQL database — with rationale, tags, layers, and rejected alternatives. Agents query intent first (suggest, session context, targeted decision / constraint lookups) instead of re-deriving design context from a full-tree read every turn.
┌──────────────────────────────────────────────────────────────────────┐
│ Without sqlew │ With sqlew │
│────────────────────────────────────────│─────────────────────────────│
│ Plan/spec: "use Postgres, no Mongo" │ Research/write → ADR draft │
│ Next turn: re-read half the repo │ (or Plan approved → ADR) │
│ "just to confirm the architecture" │ Next turn: suggest/query │
│ Tokens burned; same audit next agent │ → intent in milliseconds │
└──────────────────────────────────────────────────────────────────────┘sqlew does not replace reading code for implementation detail. It replaces ritual whole-repo archaeology for design intent with structured recall:
Capture — Plan Mode is not required. Research + Write hooks draft ADRs automatically; Plan Mode capture still works as before (sqlew-plugin)
Recall — Session start injects recent context (where the harness supports it); Post hooks on Grep / WebSearch / WebFetch inject related ADRs via
suggestEnforce — Constraints stay first-class rules; duplicate/similarity checks stop circular re-decisions
Built on the Model Context Protocol (MCP), so it works with any MCP-compatible AI coding tool.
This software does not send any data to external networks. We NEVER collect any data or usage statistics.
Related MCP server: Memory MCP
Quick Start
1. Install
Local / full (default) — all RDB drivers (SQLite, PostgreSQL, MySQL). Unchanged:
npm install -g sqlew
# same capability under the scoped name:
npm install -g @sqlew/fullCursor Cloud / ephemeral VMs — prefer PostgreSQL-only (no native SQLite addon):
npx @sqlew/pg
# or: npm install -g @sqlew/pgWire a remote DB with SQLEW_DATABASE_URL / DATABASE_URL in Environment Secrets. Project name usually comes from the git remote basename; set SQLEW_PROJECT_NAME only when sharing one DB across repos. Plan-less auto ADR needs sqlew-plugin Cursor hooks — MCP (npx @sqlew/pg) alone is not enough. Details: Cursor Cloud Agents. Other slim installs: @sqlew/mysql, @sqlew/sqlite. Package matrix: SCOPED_PACKAGES.md.
npm 12+ (bundled with Node 24.19+) blocks dependency install scripts by default. The full/@sqlew/sqlite installs need better-sqlite3 to download or compile its native addon, so allow that script:
npm install -g --allow-scripts=better-sqlite3 sqlewWithout the flag, sqlew installs but exits on first run with Could not locate the bindings file. Re-run the command above to repair an existing install. @sqlew/pg and @sqlew/mysql do not need this flag.
npm 11 and earlier still run install scripts by default; npm install -g sqlew is enough there.
2. Setup
Choose the setup that matches your environment. Each client has its own install and uninstall steps.
Claude Code (Plugin)
Install:
claude plugin marketplace add sqlew-io/sqlew-plugin
claude plugin install sqlewConfigures MCP server, Skills (Plan Mode guidance), and Hooks (research suggest inject, Write enqueue / Stop flush, Plan-to-ADR).
Uninstall:
claude plugin remove sqlewCodex CLI (Plugin)
Install:
codex plugin marketplace add sqlew-io/sqlew-plugin
codex plugin install sqlew --source sqlew-pluginAfter install, open /hooks in Codex and trust the bundled sqlew hooks. Enable Plan Mode with collaboration_modes = true under [features] in your Codex config.
Do not duplicate skills in
~/.codex/skills/or add[mcp_servers.sqlew]toconfig.tomlwhen using the plugin. See Hooks Guide.
Uninstall:
codex plugin remove sqlewGrok Build (Plugin)
Install:
grok plugin install sqlew-io/sqlew-plugin --trust
grok plugin updateConfigures MCP server, Skills (plan mode guidance), and Hooks (plan-less save enqueue, Plan-to-ADR on exit_plan_mode).
Do not duplicate hooks in
~/.grok/hooks/or add[mcp_servers.sqlew]to~/.grok/config.toml. See Hooks Guide.
Uninstall:
grok plugin remove sqlewHermes (Plugin)
Requires sqlew >= 5.3.0. Hermes uses a separate plugin bundle (.hermes-plugin/), not the Claude/Codex plugin manifest.
Install:
hermes plugins install sqlew-io/sqlew-plugin/.hermes-plugin
hermes plugins enable sqlewMerges MCP + shell hooks into ~/.hermes/config.yaml and copies planning skills to ~/.hermes/skills/. See Hermes Hooks Guide for wire-protocol details and manual config.yaml setup.
Uninstall:
hermes plugins remove sqlewIf you merged hooks manually before using the plugin, also remove mcp_servers.sqlew and sqlew hooks: entries from ~/.hermes/config.yaml. Skills under ~/.hermes/skills/sqlew-* are not removed automatically.
oh-my-pi / omp (Extension)
Requires sqlew with the sqlew/hooks export (see Harness Compatibility for the minimum version). omp uses an in-process Extension (.omp-plugin/), not Claude-style shell hooks.
Install:
npm i -g --allow-scripts=better-sqlite3 sqlew # see Install above (npm 12+)
omp --extension /path/to/sqlew-plugin/.omp-plugin
# or:
omp plugin install /path/to/sqlew-plugin/.omp-pluginSession context via before_agent_start; Plan-to-ADR when you approve via xd://propose / /xdev/propose. Plans live as session-local local://*-plan.md (no project .sqlew/plans/ copy by default). See Hooks Guide.
MCP still comes from the project .mcp.json (Extension does not re-register MCP when already present).
Other harness (MCP only)
MCP server only — no sqlew-plugin hooks or skills (Cursor, Claude Desktop, custom clients, …). See Harness Compatibility.
Add to .mcp.json in your project root:
{
"mcpServers": {
"sqlew": {
"command": "sqlew"
}
}
}The database (~/.config/sqlew/sqlew-shared.db) and config are auto-created on first run. See Shared Database for details.
3. Capture decisions (Plan Mode optional)
Plan Mode is no longer required for ADR / suggest. With sqlew-plugin hooks:
Research — Post hooks on Grep / WebSearch / WebFetch (and equivalents) inject related context via
suggestWrite — first implementation Write enqueues a draft ADR to
.sqlew/queue/pending.json(no DB write yet)Stop / flush —
on-stopor QueueWatcher upserts the queue into the database
Plan Mode still works as before — create a plan, get approval, and Plan-to-ADR records 📌 / 🚫 blocks automatically.
Hermes exception: Hermes cannot drive this automatic research→ADR trigger via Hooks. Create a Skill with
/learn, for example: 「調査開始時にsqlewを使ってサジェストを取得し、実装前にADRをsqlewで記録することを義務付けて」
See Harness Compatibility and Hooks Guide.
Features
Structured Records — Decisions stored as relational data with metadata, tags, layers, and version history
Fast Queries — 2-50ms SQL recall for design intent; avoid multi-file repo archaeology every turn
Duplicate Detection — Three-tier similarity scoring (0-100) prevents redundant decisions
Constraint Tracking — Architectural rules and principles as first-class entities
Auto-Capture (plan-less) — Research Post hooks inject related ADRs; Write enqueues drafts; Stop / flush upserts to DB
Auto-Capture (Plan Mode) — Hooks/Extension still record decisions from Plan Mode (Claude Code, Codex, Grok Build, Hermes, and oh-my-pi via sqlew-plugin)
Session Context Injection — Recent decisions and active constraints injected at session start (Claude Code, Hermes, omp, Codex partial; not Grok Build — see matrix)
Multi-Database — SQLite (default), PostgreSQL, MySQL/MariaDB, or Cloud
Git Worktree Ready — Each worktree shares the same context database
Harness compatibility
Not every feature works the same on every client. Grok Build uses passive hooks (no stdout injection), so session context and plan-mode hook enforcement are skill-based only (◎). oh-my-pi (omp) uses an in-process Extension (sqlew/hooks) rather than shell hooks — the summary rows below are full (✓). Hermes lacks Post-hook context inject for research→ADR — use a Skill (/learn); Plan-to-ADR via plan files still works.
Feature | Claude | Codex | Grok | Hermes | omp |
MCP tools | ✓ | ✓ | ✓ | ✓ | ✓ |
Session context injection | ✓ | △ | — | ✓ | ✓ |
Research → ADR (plan-less) | ✓ | △ | △ | ◎ | ✓ |
Plan-to-ADR (auto) | ✓ | △ | △ | ✓ | ✓ |
Plan mode hook enforcement | ✓ | △ | ◎ | ✓ | ✓ |
✓ full · △ partial · ◎ skills only · ✎ manual MCP · — not available
Full matrix (hooks, Other harness column, fallbacks): Harness Compatibility
For Teams (sqlew.io)
Connect to sqlew.io for team-shared decisions:
Step 1: Get your API key
Visit sqlew.io and save your API key:
# ~/.config/sqlew/.sqlew.env (shared across all projects)
SQLEW_API_KEY=your-api-keyStep 2: Configure each project
# .sqlew/config.toml
[database]
type = "cloud"
[project]
name = "your-project-name"Benefits:
All team members share the same decision database
Works seamlessly with Git worktree workflows
No local database setup required
Performance
Metric | Value |
Query speed | 2-50ms |
Concurrent agents | 5+ simultaneous |
Storage efficiency | ~140 bytes/decision |
Token savings | Fewer full-tree "confirm the architecture" passes; 60-75% vs dumping Markdown ADRs into context |
Use Cases
Architecture Evolution — Document major decisions with full context and alternatives considered
Pattern Standardization — Establish coding patterns as constraints, enforce via AI code generation
Cross-Session Continuity — Agents reuse recorded intent across days without re-auditing the tree for why
Multi-Agent Coordination — Multiple AI agents share architectural understanding
Onboarding Acceleration — New sessions/agents load decisions and constraints first, then read only the code paths that matter
Documentation
Guide | Description |
Architecture Decision Records explained | |
Config file setup, database options | |
Feature × harness matrix (MCP, hooks, session context, Plan-to-ADR) | |
Claude Code, Codex, Grok Build, Hermes, and oh-my-pi (omp) integration | |
Hermes-specific setup and wire-protocol notes | |
Multi-database support | |
Database migration, export/import | |
|
Upgrade Guides
Migrating to SaaS — Export local data to sqlew.io cloud
MCP Tools
8 action-based tools: decision, constraint, project, suggest, help, example, use_case, queue
All tools support action: "help" for documentation. The project tool targets a project per call for desktop AI agents (Claude Desktop, Hermes Desktop) — see Shared Database.
Support
Support development via GitHub Sponsors.
Version
Current version: 5.3.0
See CHANGELOG.md for release history.
What's New in v5.3.0:
Hermes support — Plan-to-ADR via sqlew-plugin
.hermes-pluginbundle (hermes plugins install sqlew-io/sqlew-plugin/.hermes-plugin)Hook normalization — Hermes
pre_tool_call/pre_llm_callpayloads mapped to canonical Claude-shaped events and toolsEvery-turn plan guidance —
on-promptinjects FULL/SHORT context via Hermespre_llm_call({"context":"..."}).hermes/plans/— Plan files written by the Hermesplanskill are tracked for decision extraction
License
Apache License 2.0 — Free for commercial and personal use. See LICENSE for details.
Links
Built with MCP SDK, better-sqlite3, and TypeScript.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents. Search and store durable facts, preferences and decisions.
Persistent business-intelligence memory for AI agents.
Knowledge accumulation for AI coding agents. Records decisions, problems, and insights as context.
Decision memory for AI agents: record, revisit, and resolve consequential choices.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides AI coding agents with persistent, long-term memory through local semantic search and SQLite storage. It enables agents to save and retrieve architectural decisions or project context across different conversation sessions without requiring cloud services.MIT
- AlicenseAqualityDmaintenanceProvides persistent cross-session memory and full-text search for AI coding assistants, storing project context, decisions, and preferences while enabling searchable access to conversation history via local SQLite.81MIT
- AlicenseBqualityAmaintenancePersistent memory for AI coding agents, storing learned architecture decisions, patterns, and bug fixes in a local SQLite database with full-text search, enabling agents to recall information across sessions.662 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI assistants with persistent memory across sessions using local SQLite and keyword search, allowing storage and retrieval of user preferences, project context, and decisions.48 npm9MIT