Installation
Installation
Prerequisites
- Claude Code — the CLI must be installed
- jq — required for hook scripts (
brew install jqon macOS) - Go — required only for local development builds (not needed for plugin install)
Plugin Install (Recommended)
Install the plugin and everything is configured automatically:
bash
# Register the marketplace (one-time)
/plugin marketplace add hiromaily/claude-forge
# Install the plugin
/plugin install claude-forge
/reload-pluginsAfter installation, restart Claude Code and verify:
bash
/mcp # forge-state should show as ConnectedWhat happens automatically
When the plugin is installed, Claude Code:
- Registers the MCP server —
.mcp.jsondeclares theforge-stateserver - Runs the Setup hook — downloads the pre-built
forge-state-mcpbinary from GitHub Releases - Falls back to source build — if the release binary is unavailable, builds from source using
go build
plugin.json ← declares "mcpServers": "./.mcp.json"
└─> .mcp.json ← defines forge-state server (stdio transport)
└─> scripts/launch-mcp.sh ← self-healing launcher
└─> bin/forge-state-mcp ← binary downloaded by Setup hookAlternative installation
bash
# Install from a local clone
claude plugins install ~/path/to/claude-forge
# One-time session only (no persistent install)
claude --plugin-dir ~/path/to/claude-forgeLocal Development Setup
For contributors working on claude-forge itself:
bash
# Build and install binary, then register with Claude Code
make setup-manualThis registers the MCP server with --scope local (written to .claude/settings.local.json, gitignored).
Environment Variables
| Variable | Required | Description |
|---|---|---|
FORGE_AGENTS_PATH | Yes | Absolute path to agents/ directory. Set automatically by make setup. |
FORGE_SPECS_DIR | No | Override the default .specs/ directory. |
FORGE_EVENTS_PORT | No | Port for the SSE events endpoint and the bundled web dashboard. Default 8099 (auto-set by .mcp.json). Falls back to 8100–8200 on conflict. |
Troubleshooting
Two forge-state entries, one failing
When working inside the claude-forge dev repo with the plugin also installed, run make setup-manual to register a local-scope override.
forge-state shows as "Failed to connect"
- Check if the binary exists
- Check
FORGE_AGENTS_PATHpoints to a valid directory - Test the binary directly:
echo '{}' | forge-state-mcp - Re-run setup
Setup hook didn't run
Force re-run by removing the version marker:
bash
rm -f $(claude plugins path)/claude-forge/bin/.installed-versionUpdating
bash
claude plugin update claude-forge@claude-forge
/reload-plugins
# Restart Claude Code to reload MCP serversUninstalling
bash
claude plugins uninstall claude-forge@claude-forge
# If manually registered:
claude mcp remove forge-state -s user