
Shinobi
io.github.numbereriksonPublished by GitHub account numbereriksonv0.3.1Updated Oct 25, 2026
Task spine + searched dead ends + approvals for AI coding agents. One brain, every device.
Overview
Shinobi is a local task-spine MCP server for AI coding agents: it stores projects, subtasks, decisions, dead ends and context across sessions and devices.
- What you can do
- Manage projects and subtasks: create, list, update, claim, complete and delete them, and pull the next task for an agent loop. Record and query decisions, dead ends, notes, plans and per-project context, with full-text or optional semantic recall. Track history and link git commits to subtasks. Run workflow helpers such as agent bootstrap, session closeout, file context, decision extraction and session summaries. Request approvals and send notifications, and register custom plugin tools.
- When to use it
- Use it when an AI coding agent works on multi-session projects and you want durable decisions, known-bad approaches and task state to persist across sessions and machines, including approvals from a phone.
- Requirements
- Local process via npm package @shinobiapps/shinobi, needing Node.js 18+ and possibly a C++ build toolchain for the better-sqlite3 native build. Run shinobi init to create the config and database under ~/.shinobi. Optional embedding provider (OpenAI, Voyage or Ollama) for semantic recall. Remote HTTP mode uses bearer-token auth.
Installation
In SourceWeft
- Open Shinobi in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Shinobi
[Website] [test] [License: MIT] [Node]
The task spine for AI coding agents. Shinobi holds the decisions that survive across sessions, actively searches your past dead ends — semantically — before the agent writes code, and routes approvals to your phone. One brain, every device: laptop, cloud session, and mobile all wired to the same store.
Works with Claude Code, Cursor, Cline, Continue.dev, Zed — any MCP-compatible client.
Status: v0.3 — autonomous agents. Run it as a hosted HTTP
/mcpbrain (the default deploy) or self-host a local instance. Mobile push, a headless dispatch loop, parallel swarm over git worktrees, and audit→subtask ingestion on top of the remote MCP foundation. 39 MCP tools, web dashboard, mobile approvals, plugin system, optional semantic recall.
What it does
Most tools try to be a memory bolt-on. Shinobi is the task spine your agent works along — the durable backbone of work, decisions, and known-bad paths that outlives any single session and follows you across every device.
- Task spine — projects + subtasks the agent claims, completes, or pivots; the persistent skeleton of multi-session work
- Decisions that survive — record architectural choices with rationale so the next session (on any device) doesn't re-litigate them
- Dead ends, searched before you build — every failed approach is logged and semantically matched the moment an agent plans a similar one, so it never burns a second session on the same wall. No other tool does this.
- Approvals on your phone —
request_approvalpushes the decision to your pocket; the agent blocks until you tap yes/no, wherever you are - One brain, every device — laptop editor, Claude Code cloud session, and mobile chat all hit the same store over remote MCP; no sync step, no per-device drift
- Plans — versioned plan snapshots, retrievable mid-task
- Context — per-project conventions, "don't touch" rules, test patterns, deploy notes, file annotations
- Recall — fulltext (FTS5) by default, semantic (embedding-backed) when an embedding provider is configured
- Notes — free-form annotations and voice notes (audio_path field)
- Activity timeline — every write path lands in the timeline so you can replay what happened
- Git linking —
link_committies commits to subtasks via[SHI-N]tags or viatarget_pathattribution - Web dashboard — Hono-served Kanban + decisions + dead ends + notes + plans + context + timeline + analytics
- Plugin system — drop a
.jsfile in~/.shinobi/plugins/or install a@shinobi/plugin-*npm package and register customplugin_*tools
Hosted or self-hosted, your call. The default deploy is one remote brain
behind an HTTP /mcp endpoint (we run ours at shinobi.shinobi-apps.com); the
same binary still runs as a fully local single-machine instance when you'd
rather keep everything on your own box. BYO embedding provider only if you want
semantic recall.
🚀 New here? Follow Getting started — zero to a working brain in ten minutes. Going multi-device? Remote mode
Install
Requirements:
- Node.js 18+ on
PATH - C++ build toolchain for
better-sqlite3native build (most systems have prebuilt binaries; Windows may need Visual Studio Build Tools as fallback)
From npm (recommended)
The binary is shinobi (e.g. shinobi serve, shinobi dashboard).
From GitHub (latest, unreleased)
Pulls from main. Useful for trying unreleased fixes. On Windows you may need
to add your Node directory to system PATH before this works, because the
prepare build script runs in a subshell that does not always inherit
per-session PATH (Laragon, portable installs). If install fails with 'node' is not recognized, prefer the npm install above.
From a cloned source folder (for development / contributing)
Then bootstrap
In any project root where you want Shinobi available to your MCP client:
init will:
- Create
~/.shinobi/withconfig.json,.envtemplate, andshinobi.db(migrations applied) - Drop a
.mcp.jsonsnippet for the current project - Print next steps
shinobi init writes config for the two clients with a workspace-local
MCP convention out of the box:
- Claude Code —
<workspace>/.mcp.json - Cursor —
<workspace>/.cursor/mcp.json
Restart the client and the mcp__shinobi__* tools become available.
For other MCP clients (Cline, Continue.dev, Zed), see the MCP client setup section below.
Then open:
On Windows PowerShell, if script execution blocks shinobi, use the .cmd shim:
If you upgraded Node or copied an old node_modules, rebuild native dependencies:
Important: the code lives in the Shinobi folder, but the local memory database lives in:
To move the tool only, copy/clone the Shinobi folder and run the install commands above. To move the existing projects, tasks, decisions, notes, and context too, either copy ~/.shinobi/ or use shinobi sync.
MCP client setup
Every snippet below uses the same JSON shape — command is the path
to the Node binary that's running Shinobi, args is [<absolute path to dist/cli.js>, "mcp"]. Print the exact values for your machine:
(Or read .mcp.json from any project where you already ran
shinobi init — the values are identical.)
Claude Code
Drops in automatically — shinobi init writes <workspace>/.mcp.json.
Restart Claude Code to pick up the server.
Cursor
Drops in automatically — shinobi init writes <workspace>/.cursor/mcp.json.
Works on Cursor 0.43+. Restart Cursor or reload the workspace.
For a global Cursor config (every project sees Shinobi), paste the
same snippet into ~/.cursor/mcp.json (or use Cursor Settings → MCP).
Cline (VS Code extension)
Open Cline's settings file:
- Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json - macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Merge the contents of your project's .mcp.json into the file's
mcpServers object. Restart VS Code.
Continue.dev
Edit ~/.continue/config.json. Add Shinobi to the mcpServers array
(note: Continue uses an array, not an object like the others):
Use the values from your project's .mcp.json for command and args.
Zed
Edit ~/.config/zed/settings.json. Zed nests MCP servers under
context_servers:
Restart Zed.
Generic / other clients
Any MCP client that supports the standard { command, args } server spec
should work. Use the same values your .mcp.json has:
command: absolute path to the Node binary running Shinobiargs:[<absolute path to dist/cli.js>, "mcp"]
Avoid the bare shinobi command in MCP config — many clients spawn
servers with shell: false, which skips the OS PATH resolution that
makes shinobi work in a terminal.
Remote mode (the default deploy)
Host one Shinobi brain on a server and connect every device to it — your
desktop editor, Claude Code web/mobile sessions, any remote-MCP-capable
client. shinobi serve exposes the MCP endpoint at /mcp (streamable HTTP,
stateless, bearer-token auth) alongside the dashboard:
This is the recommended way to run Shinobi — one brain, reachable from every device. The same binary still runs as a local single-machine instance if you'd rather self-host everything on your own box. Full deployment guide (Docker, Cloudflare Tunnel, GCP Always Free, client config): docs/remote-mcp.md.
CLI
MCP tools (39)
Architecture
See docs/architecture.md for the request lifecycle and module layout.
Dashboard auth
The dashboard is open on loopback binds (127.0.0.1, localhost, ::1) and token-protected on any non-loopback bind. The token is read from SHINOBI_DASHBOARD_TOKEN, otherwise loaded from ~/.shinobi/dashboard-token, otherwise auto-generated and persisted there. /health is always open for probes.
Browser flow — open the dashboard with the token once and the cookie sticks:
Curl / scripts — any of these works:
See docs/configuration.md for the full env-var reference.
Cross-machine sync
Shinobi syncs your local SQLite database via a private git repo. Setup once per machine:
The DB file lands on the main branch as a binary; pre-existing local DB is backed up to <path>.bak-<timestamp> before restore.
Configuration
Edit ~/.shinobi/.env or set env vars before running shinobi mcp:
Full reference: docs/configuration.md.
Plugins
Write a single .js file in ~/.shinobi/plugins/:
Restart the MCP client and mcp__shinobi__plugin_count_open is available. See docs/plugin-development.md.
Roadmap
- v0.2 — remote MCP foundation: stateless HTTP
/mcpendpoint, Docker + GCP Always Free deploy, Cloudflare Tunnel, env-driven.mcp.jsonfor cloud sessions. One brain across laptop, cloud, and mobile. - v0.3 (current) — autonomous agents: push notifications (task-completed /
agent-blocked) → dispatch loop (headless agent pulls
next_taskand works while you sleep) → Shinobi Swarm (N parallel agents, worktree isolation, shared dead ends), plusingest_findings(audit → subtask graph → swarm) pulled forward from v0.4. - v0.4 — unit-test coverage pass on
tools/*; richer remediation templates and finding-source adapters on top ofingest_findings. - v1.0 — stability, security audit, performance pass; optional team mode / hosted SaaS only on demand signal.
Changelog
See CHANGELOG.md for release notes.
Contributing
See CONTRIBUTING.md. Issues and PRs welcome.
By participating you agree to our Code of Conduct.
Security
For vulnerability reports, see SECURITY.md — please do not open public issues for security matters.
License
MIT — see LICENSE.
Source: README.md at commit 79dd187
Tools
0Version history
1- v0.3.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts