Saltar al contenido principal

Claude Code Plugin

The @fyso/claude-plugin package installs the full Fyso development experience into Claude Code: skills, hooks, and MCP server connection — in one command.

What it includes

ComponentDescription
Skills20 slash commands (/fyso-plan, /fyso-build, /fyso-verify, /fyso-ui, and more)
Hooks5 hooks across 4 lifecycle events — destructive op guard, reference sync, state tracking, project context loading, and draft verification
MCP serverConnects Claude Code to https://app.fyso.dev/mcp via OAuth
Reference docsFYSO-REFERENCE.md — consolidated API and DSL reference, always loaded

Installation

Search for fyso in the Claude Code plugins marketplace, or install directly from the repository:

https://github.com/fyso-dev/claude-plugin

Manual install from a clone

git clone https://github.com/fyso-dev/claude-plugin
cd claude-plugin
# Follow instructions in README.md

Restart Claude Code after install.

Authentication

The plugin connects to Fyso via OAuth — no API key needed.

When Claude Code first calls a Fyso MCP tool, mcp-remote will open a browser window for you to sign in to your Fyso account. The session token is stored locally and reused on subsequent runs.

The .mcp.json the plugin registers looks like this:

{
"mcpServers": {
"fyso": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://app.fyso.dev/mcp"]
}
}
}

No environment variables are required.

Hooks

The plugin installs 5 hooks across 4 Claude Code lifecycle events:

PreToolUse — Destructive operation guard

Triggers before delete_entity, delete_business_rule, purge_entity_data, or delete_record. Before the operation runs, Claude is prompted to verify the entity has no records and no other entity holds a relation field pointing to it. If data or relations exist, Claude explains the impact and waits for explicit confirmation.

PostToolUse — Reference sync

Triggers after any Edit or Write tool call that touches a reference .md file inside the skills directory. Automatically regenerates FYSO-REFERENCE.md so the reference stays current without manual intervention.

PostToolUse — State tracking

Triggers after MCP calls that modify tenant state: generate_entity, publish_entity, create_business_rule, publish_business_rule, update_entity, and import_metadata. If .planning/STATE.md exists in the project, Claude silently updates it to reflect the change.

SessionStart — Project context loading

At session start, Claude reads .planning/PROJECT.md, .planning/STATE.md, and .planning/ROADMAP.md if they exist — silently, without reporting them — to build accurate context about the current project and tenant state.

Stop — Draft verification

Before a session ends, Claude checks whether any entities or rules are still in draft that should be published, and whether STATE.md reflects the real tenant state. If anything is unpublished or out of sync, Claude informs the user in 2–3 lines. If everything is in order, Claude says nothing.

Plugin manifest fields

The .claude-plugin/plugin.json manifest declares:

FieldValue
skills./skills/
hooks./hooks/hooks.json
mcpServers./.mcp.json

The agents field was removed from plugin.json. The agents/ directory (5 agent personas) still ships with the plugin and is referenced by skills at runtime.

Troubleshooting

Skills not showing up after install

Restart Claude Code. Skill discovery runs at startup.

OAuth browser window does not open

Make sure npx is available in your PATH and that mcp-remote can resolve https://app.fyso.dev/mcp. Run the connection once manually:

npx -y mcp-remote https://app.fyso.dev/mcp

FYSO_API_KEY errors

The plugin does not use FYSO_API_KEY. If you see this error, you may have an older version. Re-install from the marketplace or from a fresh clone.