Claude Code Plugin
Install, configure, and use the Arcanon plugin for Claude Code.
The Arcanon plugin turns Claude Code into a cross-repo service dependency scanner. It builds a local service graph, detects drift, queries impact, and syncs to Arcanon Hub — all from inside your editor. A bundled MCP server exposes the same data to any MCP-compatible client.
Source: github.com/Arcanon-hub/arcanon (AGPL-3.0, v0.1.1)
Installation
Add the Arcanon marketplace and install the plugin:
claude plugin marketplace add https://github.com/Arcanon-hub/arcanon
claude plugin install arcanon@arcanon --scope userRestart Claude Code. The session banner should show:
Arcanon active. Detected: <project types>. Commands: /arcanon:map, /arcanon:drift, ...No local binary is required. Runtime dependencies (better-sqlite3, fastify, chromadb, @modelcontextprotocol/sdk) are installed automatically on first session.
Commands
| Command | Purpose |
|---|---|
/arcanon:map | Scan linked repos and build or refresh the local service graph |
/arcanon:drift | Detect version, type, and OpenAPI drift across scans and repos |
/arcanon:impact | Query cross-repo consumers and impact for a service, endpoint, or schema |
/arcanon:login | Store your Arcanon Hub API key (arc_*) in ~/.arcanon/config.json (mode 0600) |
/arcanon:sync | Upload the current repo's latest scan to Hub and drain the offline queue |
/arcanon:status | One-line health check — plugin version, credentials, queue, config |
/arcanon:export | Emit the local graph as Mermaid, DOT, JSON, or a self-contained HTML viewer |
/arcanon:update | Check for plugin updates and preview the changelog |
Typical session
/arcanon:login arc_your_key_here # one-time, per machine
/arcanon:map # scan this repo + linked siblings
/arcanon:impact user-service # see cross-repo consumers
/arcanon:sync # upload to HubLocal Graph Viewer
The plugin's worker ships a local web UI at http://localhost:37888. It's a single-user, offline graph viewer — think of it as the local counterpart to the team dashboard at app.arcanon.dev. Use it for local development and quick exploration of your own scans.
Launched automatically by the worker after /arcanon:map. No account needed; no data leaves your machine.
What it does
- Canvas graph — D3 force simulation with pan, zoom, and fit-to-view
- Project picker — switch between scans you've run locally
- Filters — by protocol, layer, boundary, and language
- Isolate — focus on 1–3 hops around any service
- Search — jump to a service by name
- Export PNG — save the current viewport as an image
- Worker logs — collapsible panel showing scan, HTTP, and MCP activity
Keyboard shortcuts
| Key | Action |
|---|---|
F | Fit all nodes in view |
/ | Focus the search box |
I | Toggle isolate mode for the selected service |
? | Show keyboard shortcut help |
What it does not do
The local viewer is intentionally scoped to one developer's machine. If you need any of these, sync to Hub (/arcanon:sync) and use the team dashboard at app.arcanon.dev:
- Cross-repo drift detection (version, type, OpenAPI)
- Impact analysis across repos owned by other teammates
- Declared connections, acknowledgements, team ownership
- Invite-based sharing, shareable URLs, audit trail
Configuration
Optional arcanon.config.json at your repo root (commit this — it's shared across the team):
{
"project-name": "my-project",
"linked-repos": ["../sibling-service", "../shared-schemas"],
"hub": {
"auto-sync": true,
"url": "https://api.arcanon.dev"
}
}| Field | Description |
|---|---|
project-name | Groups scans under a project in Hub. Defaults to the repo name. |
linked-repos | Sibling repo paths the scanner should include when mapping dependencies. |
hub.auto-sync | If true, /arcanon:map uploads to Hub automatically after a successful scan. |
hub.url | Override the Hub endpoint (defaults to https://api.arcanon.dev). |
Credentials are read in this order: ARCANON_API_KEY env var, then ~/.arcanon/config.json. Scans work fully offline — a Hub account is only needed for sync.
Bundled MCP Server
The plugin ships a stdio MCP server (scripts/mcp-wrapper.sh). Installing the plugin registers it automatically — no npx install, no manual .mcp.json wiring. Once installed, any MCP-compatible client in the same Claude Code session can call it.
Tools
| Tool | Purpose |
|---|---|
impact_query | Which services consume (or are consumed by) a given service — direct or transitive |
impact_changed | Services affected by changed files in the current git working tree |
impact_graph | Return the dependency subgraph (nodes + edges) for a service, up to N hops |
impact_search | Full-text search across connections by path, protocol, or file name |
impact_scan | Trigger a dependency scan via the local worker |
drift_versions | Dependency version mismatches across repos (CRITICAL on exact mismatch, WARN on range) |
drift_types | Shared type/interface/struct mismatches across same-language repos |
drift_openapi | OpenAPI spec breaking changes (uses oasdiff when available) |
For standalone MCP clients (outside Claude Code), set ARCANON_API_KEY and point the client at the plugin's scripts/mcp-wrapper.sh.
Data & Privacy
- Local scan DB:
~/.arcanon/projects/<hash>/impact-map.db(SQLite) - Hub credentials:
~/.arcanon/config.json(mode 0600) - Scans stay on your machine until
/arcanon:sync(orhub.auto-sync: true) pushes them.
Legacy ~/.ligamen/ directories and LIGAMEN_* env vars are still honored — the plugin was formerly named Ligamen.
Troubleshooting
/arcanon:status— shows plugin version, API key presence, queue depth, and data directory in one line.- Plugin commands missing after install — restart Claude Code.
- Dependencies failed to install — check
~/.arcanon/logs/install.logand re-run/arcanon:status.