This document defines how Fast-Context integrates with host tools that can use:
- skills
- MCP servers
- hooks
- plugin packaging
The immediate hosts in scope are:
- Codex
- Claude Code
This spec exists to prevent the project from conflating different host models.
- Use the host's native integration model.
- Do not invent a fake universal plugin format.
- Keep the Rust implementation as the source of truth.
- Treat skills as content, not runtime code extensions.
- Treat hooks as optional advanced integrations, not required baseline behavior.
Fast-Context provides these native artifacts:
- Rust core library
- Rust CLI binary:
fast-context - Rust MCP binary:
fast-context-mcp - Node package
- Python package
Host integrations should package or reference those artifacts. They should not duplicate analyzer logic in separate wrappers.
Codex has native support for:
- skills
- MCP
- optional beta hooks
Codex should be supported through Codex-native configuration rather than a separate plugin abstraction.
Codex skills should be shipped as skill directories using the standard SKILL.md model.
Planned repo location:
.agents/skills/
Skill content may include:
SKILL.md- optional
scripts/ - optional
references/ - optional supporting files
Codex MCP should use the Rust MCP binary:
fast-context-mcp
Preferred integration model:
- user configures Codex with its native MCP configuration flow
- documentation provides the exact
codex mcp add ...command or equivalent config snippet
Fast-Context may provide helper output via the Rust CLI, but Codex remains the owner of MCP registration.
Codex hooks are optional.
They must be treated as:
- beta/advanced integration
- disabled by default
- host-specific
They must not be required for baseline Fast-Context usage.
Claude Code uses a plugin directory model.
Claude integration should be packaged as a real Claude plugin directory rather than reusing the Codex layout directly.
Planned repo location:
plugin/
Claude plugin skills should live under:
plugin/skills/
They should mirror the actual maintained Fast-Context skills, not drift into a second independent set of instructions.
Claude plugin MCP should be defined in:
plugin/.mcp.json
The plugin should reference:
fast-context-mcpif available onPATH- or another explicitly supported command path
Claude hooks are optional.
They should only be added for concrete operational value.
They must not:
- silently mutate user code
- perform surprise network actions
- install dependencies without explicit user action
Skills are instruction bundles that help the host understand:
- when Fast-Context is useful
- how to invoke the relevant tools
- how to interpret the resulting output
Skills are not:
- dynamic Rust plugins
- runtime extensions to the analyzer
- arbitrary code execution packages
Hooks are host lifecycle integrations.
Hooks may be useful for:
- validating environment/setup
- surfacing MCP availability issues
- lightweight host-specific diagnostics
Hooks are not part of the minimum viable integration.
Phase 1 support should include:
- Codex skills
- Codex MCP setup guidance
- Rust MCP binary
- plugin directory
- plugin skills
- plugin
.mcp.json
Hooks are phase 2 for both hosts.
.agents/skills/<skill-name>/SKILL.md- optional supporting files in the same skill directories
- docs for Codex MCP setup
plugin/.claude-plugin/plugin.jsonplugin/.mcp.jsonplugin/skills/<skill-name>/SKILL.md- optional
plugin/hooks/hooks.jsonlater
The Rust CLI should support host integrations, but not replace native host installation models.
Good CLI responsibilities:
mcp doctormcp init- environment diagnostics
- printing config snippets
- scaffolding host integration files later
Non-goals for the CLI:
- a fake cross-host plugin installer
- dynamic plugin loading
- replacing native Codex or Claude install flows
Host integrations should reference released binaries and maintained skill files.
That means:
- skills should be versioned with the repo
- Claude plugin packaging should be versioned with the repo
- MCP references should target the released
fast-context-mcpbinary or an explicitly supported fallback
The following still need explicit decisions:
- which skills are shared between Codex and Claude
- whether Claude plugin skills are copied or generated from a shared source
- whether any hooks are worth shipping in phase 2
- whether the Rust CLI should generate host-specific config snippets for Codex and Claude separately