CLI

Open documentation actions

Install for Coding Agents

Detect local coding agents and editors, then install Better Fullstack MCP and skills safely in one run.

install connects Better Fullstack to the supported coding-agent CLIs and editors detected on your machine. It installs the MCP server and the two Better Fullstack skills in one run:

bash
npx create-better-fullstack@latest install

The command prompts once in an interactive terminal. It runs without prompts when stdin is not a TTY, and --yes, --json, and --dry-run each skip the prompt as well.

Detected targets

TargetDetectionMCP setup
Claude Codeclaude on PATHclaude mcp add --scope user ...
Codex CLIcodex on PATHcodex mcp add ...
Gemini CLIgemini on PATHgemini mcp add --scope user ...
OpenCodeopencode or its global configMerges better-fullstack into ~/.config/opencode/opencode.json under mcp
CursorCursor on PATH, the app, or ~/.cursorMerges into ~/.cursor/mcp.json under mcpServers
WindsurfWindsurf on PATH, the app, or its config dirMerges into ~/.codeium/windsurf/mcp_config.json under mcpServers
ZedZed on PATH, the app, or its config dirMerges into settings.json under context_servers

Zed uses ~/.zed/settings.json on macOS and ~/.config/zed/settings.json on Linux. If the legacy Linux-style path already exists on macOS, the installer preserves and updates that file.

The skills are copied, not symlinked, into both compatibility locations:

  • ~/.agents/skills/better-fullstack-scaffold-project
  • ~/.agents/skills/better-fullstack-add-to-project
  • ~/.claude/skills/better-fullstack-scaffold-project
  • ~/.claude/skills/better-fullstack-add-to-project

Flags

FlagBehavior
--only mcpInstall or uninstall only MCP connections.
--only skillsInstall or uninstall only the skill folders.
--agent <name>Restrict targets. Repeat for several agents.
--dry-runPrint every command and file operation without writing or running commands.
--jsonPrint the versioned machine-readable receipt.
--uninstallRemove only MCP entries and skill folders recorded as installer-owned.
--yesSkip the interactive confirmation.

Agent names are claude, codex, gemini, opencode, cursor, windsurf, and zed. claude-code and gemini-cli are accepted aliases.

bash
# Preview only Cursor and Codex
npx create-better-fullstack@latest install --agent cursor --agent codex --dry-run

# Install skills without touching MCP configuration
npx create-better-fullstack@latest install --only skills --agent codex --yes

# Remove only setup previously owned by this command
npx create-better-fullstack@latest install --uninstall

Safety and receipts

Existing JSON is parsed strictly before any change. Invalid JSON, a conflicting better-fullstack entry, or a modified installer-owned skill folder is reported and left untouched. Before an existing config changes, the command writes a timestamped backup beside it. Localized JSON edits keep unrelated keys in their existing order and preserve their source bytes where possible.

The ownership receipt lives at ~/.config/better-fullstack/install-state.json. It records target ownership and content hashes, not config contents or secrets. It is what lets --uninstall leave matching setup that existed before bfs install alone. Paths and config contents are never sent in telemetry.

Human output contains one line per target followed by a Try: prompt. --json returns the same result as a versioned object with selection, target operations, and summary fields. A partial success exits zero; the command exits non-zero only when every requested target fails.

Manual fallback

If a target cannot run this installer, use the per-client commands and config examples in MCP Server. The two installed skills also include a CLI-only workflow for agents that cannot reach the MCP server.

GitHub Sponsors