Skip to content

Claude Code compatibility

Localix reads and runs most of what you built or installed for Claude Code: plugins, skills, slash commands, agents, hooks, mods, MCP and language servers, output styles, project instructions and your settings. Compatibility is close, not complete. Use this page to see, area by area, what is read, where a guide covers the details, and what Localix does not do. It was compared with Claude Code 2.1.310 and its documentation.

What works

AreaWhat Localix reads and runsGuide
Plugins.claude-plugin/plugin.json, every component folder, Claude Code marketplaces, installs from /plugin install, Claude Code's own installs, versions and auto-updateClaude Code plugins, Plugin updates
Skills and commandsSKILL.md and command files from plugins, ~/.claude/skills, .claude/skills and .claude/commands, with their frontmatter, arguments, !command and @fileSkills
Everyday slash commands/clear, /resume, /rename, /rewind, /plan, /context, /copy, /permissions, /config, /effort, /reload-plugins, /reload-skills, /compact, /init, /status, /hooks, /diff, /add-dir and /export, each running what Localix already does, with its arguments offered as crumbsClaude Code commands
AgentsPlugin agents, .claude/agents and ~/.claude/agents, and the built-in types general-purpose, Explore and PlanSubagents
Project instructionsCLAUDE.md, .claude/CLAUDE.md, CLAUDE.local.md, ~/.claude/CLAUDE.md, AGENTS.md, .claude/rules and @importsProject instructions
HooksThirty of Claude Code's hook events from plugins and settings files, with its input and output JSON, bar the gaps listed belowHooks and commands, Hook tool calls
Tools as hooks and rules see themClaude Code's tool names and input and result shapes (Bash, Read, Edit, Write, Grep, Glob, WebFetch, Agent, Skill …)Hook tool calls
ModsHooks modules with Claude Code's $ API, panes, the band above the message box, buttons and their hotkeysRun Claude Code mods
Settingspermissions, defaultMode, hooks, env, statusLine, outputStyle, enabledPlugins, pluginConfigs, managed settings and CLAUDE_CONFIG_DIRUse your Claude Code settings
MCP serversPlugin servers, .mcp.json, ~/.claude.json and managed MCP, with Claude Code's tool names and timeoutsMCP
Language serversPlugin .lsp.json with its documented fieldsLanguage servers
Permission rulesBash(git push:*), Read(src/**), Edit(…), WebFetch(domain:…), Agent(…), Skill(…) and mcp__…, with deny over ask over allowPermission rules

How it is checked

Each area was compared with Claude Code's documentation and with the type declarations Claude Code writes for mod authors. A difference that broke a real plugin, skill, hook or mod got a test that failed before its fix. This is a comparison, not a proof: a behavior the documentation does not describe is a judgment call, and the guides say where Localix made one.

For mods, scripts/cc-parity runs one probe mod in the installed Claude Code and in Localix's mods host and compares, event by event and call by call, the shape of what each hands it. Its test fails when a shape that matched stops matching. After a new Claude Code release, its snapshot is taken again and the differences are fixed or listed. See the tool's README.

Limits

Where Localix has no equivalent, the feature is not offered:

  • Modes and models. acceptEdits, auto and dontAsk start in Default, and model and availableModels are not read: Localix chooses models through its own provider connections.
  • Sandbox. sandbox.* settings are not applied: Localix has no operating-system sandbox.
  • Terminal-only output. terminalSequence, the Raster and Image elements, and session_title and scratchpad_dir in hook input have nothing to write to.
  • Mods. The render sites other than Pane and AbovePrompt, classic.* events, the message box's own events and the claude-code/testing kit are not part of Localix yet; the full list is in Not yet in Localix.
  • Plugins. Two plugins of the same name from different marketplaces cannot both be installed, and a command plugin source is refused.
  • Agents. A delegated agent cannot delegate again, so an Agent(worker, researcher) list in tools limits only an agent that runs as the main thread. In your own agent files (not a plugin's) hooks and mcpServers apply to the child's runs. permissionMode applies as Agents describes: Localix has no accept-edits, auto or dont-ask mode, so only default and plan change a child.
  • Agent built-ins. Localix has no human agent: describe yourself in CLAUDE.md. The model and effort of an agent are your choice in Localix; the file's model applies when you chose none, its effort does not.
  • Slash commands. Commands that sign in to an Anthropic account, configure the terminal, use Claude Code's cloud, or are bundled skills (/review, /security-review, /simplify …) are answered with why they do not apply, and with the Localix equivalent where there is one; see the list. /compact takes a context checkpoint without a model, so its instructions reach PreCompact hooks but do not steer the result; /diff and /export reply in the chat or write a file, and open no view. /init, /status, /hooks, /diff, /add-dir, /export and /compact are reserved: a plugin command or skill of the same name does not run.
  • Hook events. Setup, DirectoryAdded and WorktreeRemove are accepted and never fire.
  • Hook handlers. An mcp_tool hook does not wait for a server that is still connecting. permissionDecision: "defer" is warned about and ignored, since Localix has no headless caller to resume a call. A prompt or agent hook that cannot reach a verdict allows the event and shows a hook error, because the documentation names no fail-closed rule for it. SessionStart's agent_type and InstructionsLoaded's globs, trigger_file_path and parent_file_path are not sent, since Localix cannot report them truthfully: it reports instruction files only as loaded with the session or after a checkpoint.
  • Plugin manifests. metadata, types and experimental.evals are read and have no effect (there is no claude plugin eval), and a manifest path to a component folder that does not exist yields no components without a note.
  • MCP. /mcp lists servers by source and reconnects, enables or disables one; a server's prompts run as /mcp__<server>__<prompt>. The menu offers only the prompts of servers already connected (typing the command connects the server), and omits those of a plugin's bundled servers, though typing one works. Prompt arguments are taken positionally. A headersHelper runs for http servers only; a ws server sends its static headers. /mcp enable and disable set Localix's own switch and never write Claude Code's files.
  • Approvals. An unapproved .mcp.json server does not load, since Localix has no approval prompt for one; imports from outside a project are skipped.

Source of truth

API, panes, the band above the message box, buttons and their hotkeys | [Run Claude Code mods](claude-code-mods.md) |\n| Settings | `permissions`, `defaultMode`, `hooks`, `env`, `statusLine`, `outputStyle`, `enabledPlugins`, `pluginConfigs`, managed settings and `CLAUDE_CONFIG_DIR` | [Use your Claude Code settings](claude-code-settings.md) |\n| MCP servers | Plugin servers, `.mcp.json`, `~/.claude.json` and managed MCP, with Claude Code's tool names and timeouts | [MCP](../features/mcp.md) |\n| Language servers | Plugin `.lsp.json` with its documented fields | [Language servers](../features/lsp.md) |\n| Permission rules | `Bash(git push:*)`, `Read(src/**)`, `Edit(…)`, `WebFetch(domain:…)`, `Agent(…)`, `Skill(…)` and `mcp__…`, with deny over ask over allow | [Permission rules](../features/permissions.md#claude-code-permission-rules) |\n\n## How it is checked\n\nEach area was compared with Claude Code's documentation and with the type declarations Claude Code\nwrites for mod authors. A difference that broke a real plugin, skill, hook or mod got a test that\nfailed before its fix. This is a comparison, not a proof: a behavior the documentation does not\ndescribe is a judgment call, and the guides say where Localix made one.\n\nFor mods, `scripts/cc-parity` runs one probe mod in the installed Claude Code and in Localix's mods\nhost and compares, event by event and call by call, the shape of what each hands it. Its test fails\nwhen a shape that matched stops matching. After a new Claude Code release, its snapshot is taken\nagain and the differences are fixed or listed. See the tool's\n[README](https://github.com/rsaryev/localix-studio/blob/main/scripts/cc-parity/README.md).\n\n## Limits\n\nWhere Localix has no equivalent, the feature is not offered:\n\n- **Modes and models.** `acceptEdits`, `auto` and `dontAsk` start in Default, and `model` and\n `availableModels` are not read: Localix chooses models through its own provider connections.\n- **Sandbox.** `sandbox.*` settings are not applied: Localix has no operating-system sandbox.\n- **Terminal-only output.** `terminalSequence`, the `Raster` and `Image` elements, and\n `session_title` and `scratchpad_dir` in hook input have nothing to write to.\n- **Mods.** The render sites other than `Pane` and `AbovePrompt`, `classic.*` events, the message\n box's own events and the `claude-code/testing` kit are not part of Localix yet; the full list is\n in [Not yet in Localix](claude-code-mods.md#not-yet-in-localix).\n- **Plugins.** Two plugins of the same name from different marketplaces cannot both be installed,\n and a `command` plugin source is refused.\n- **Agents.** A delegated agent cannot delegate again, so an `Agent(worker, researcher)` list in\n `tools` limits only an agent that runs as the main thread. In your own agent files (not a\n plugin's) `hooks` and `mcpServers` apply to the child's runs. `permissionMode` applies as\n [Agents](../features/agents.md#what-your-own-agent-files-can-set) describes: Localix has no\n accept-edits, auto or dont-ask mode, so only `default` and `plan` change a child.\n- **Agent built-ins.** Localix has no `human` agent: describe yourself in `CLAUDE.md`. The model and\n effort of an agent are your choice in Localix; the file's `model` applies when you chose none, its\n `effort` does not.\n- **Slash commands.** Commands that sign in to an Anthropic account, configure the terminal, use\n Claude Code's cloud, or are bundled skills (`/review`, `/security-review`, `/simplify` …) are\n answered with why they do not apply, and with the Localix equivalent where there is one; see\n [the list](../features/claude-code-commands.md#claude-code-commands-localix-cannot-run).\n `/compact` takes a context checkpoint without a model, so its instructions reach `PreCompact`\n hooks but do not steer the result; `/diff` and `/export` reply in the chat or write a file, and\n open no view. `/init`, `/status`, `/hooks`, `/diff`, `/add-dir`, `/export` and `/compact` are\n reserved: a plugin command or skill of the same name does not run.\n- **Hook events.** `Setup`, `DirectoryAdded` and `WorktreeRemove` are accepted and never fire.\n- **Hook handlers.** An `mcp_tool` hook does not wait for a server that is still connecting.\n `permissionDecision: \"defer\"` is warned about and ignored, since Localix has no headless caller to\n resume a call. A `prompt` or `agent` hook that cannot reach a verdict allows the event and shows a\n hook error, because the documentation names no fail-closed rule for it. `SessionStart`'s\n `agent_type` and `InstructionsLoaded`'s `globs`, `trigger_file_path` and `parent_file_path` are\n not sent, since Localix cannot report them truthfully: it reports instruction files only as loaded\n with the session or after a checkpoint.\n- **Plugin manifests.** `metadata`, `types` and `experimental.evals` are read and have no effect\n (there is no `claude plugin eval`), and a manifest path to a component folder that does not exist\n yields no components without a note.\n- **MCP.** `/mcp` lists servers by source and reconnects, enables or disables one; a server's\n prompts run as `/mcp__\u003cserver>__\u003cprompt>`. The menu offers only the prompts of servers already\n connected (typing the command connects the server), and omits those of a plugin's bundled servers,\n though typing one works. Prompt arguments are taken positionally. A `headersHelper` runs for http\n servers only; a `ws` server sends its static `headers`. `/mcp enable` and `disable` set Localix's\n own switch and never write Claude Code's files.\n- **Approvals.** An unapproved `.mcp.json` server does not load, since Localix has no approval\n prompt for one; imports from outside a project are skipped.\n\n## Related guides\n\n- [Claude Code plugins](claude-code-plugins.md)\n- [Use your Claude Code settings](claude-code-settings.md)\n- [Plugin updates](plugin-updates.md)\n- [Hooks and commands](../features/hooks-and-commands.md)\n- [Skills](../features/skills.md)\n\n## Source of truth\n\n- [Claude Code tool shapes](https://github.com/rsaryev/localix-studio/blob/main/apps/api/src/features/plugins/kit/tools/cc-tool-shapes.ts)\n- [Mods host](https://github.com/rsaryev/localix-studio/blob/main/apps/api/src/features/mods/host.ts)\n- [Skill discovery](https://github.com/rsaryev/localix-studio/blob/main/apps/api/src/features/plugins/kit/scope-skills.ts)\n- [Project instructions](https://github.com/rsaryev/localix-studio/blob/main/apps/api/src/features/agent-core/context-files.ts)\n- [Parity tool](https://github.com/rsaryev/localix-studio/blob/main/scripts/cc-parity/README.md)\n","headings":[{"depth":2,"text":"What works","id":"what-works"},{"depth":2,"text":"How it is checked","id":"how-it-is-checked"},{"depth":2,"text":"Limits","id":"limits"},{"depth":2,"text":"Related guides","id":"related-guides"},{"depth":2,"text":"Source of truth","id":"source-of-truth"}]}