gofasta ai
Install project-specific configuration for AI coding agents — permission allowlists, hooks, conventions files, and slash commands. Every gofasta project ships AGENTS.md by default (the universal file every modern agent reads); per-agent configuration is opt-in via this command so developers who don’t use AI agents aren’t cluttered with dotfiles they don’t need.
Every installer is idempotent — re-running after a gofasta update refreshes the config without touching files you’ve edited.
Usage
gofasta ai <agent> [--dry-run] [--force] [--switch]
gofasta ai list
gofasta ai status
gofasta ai uninstall <agent> [--dry-run]Inherits the global --json flag for machine-parseable output.
Flags
gofasta ai <agent> (the installer):
| Flag | Type | Default | Description |
|---|---|---|---|
--dry-run | bool | false | Preview what would be written without touching disk |
--force | bool | false | Overwrite existing files whose contents differ from the template |
--switch | bool | false | Replace the currently-installed agent with this one (uninstalls the previous agent first). Useful when you want to try a different agent without manually running uninstall then install. |
gofasta ai uninstall <agent>:
| Flag | Type | Default | Description |
|---|---|---|---|
--dry-run | bool | false | Preview what would be removed without touching disk |
Supported agents
| Key | Agent | What gofasta ai <key> installs |
|---|---|---|
claude | Claude Code | .claude/settings.json (project permissions), .claude/hooks/pre-commit.sh (runs gofasta verify), .claude/commands/ (project slash commands: /verify, /scaffold, /inspect) |
cursor | Cursor | .cursor/rules/gofasta.mdc (project rules referencing AGENTS.md) |
codex | OpenAI Codex | .codex/config.toml (command allowlist pointing at AGENTS.md) |
aider | Aider | .aider.conf.yml (auto-test + auto-lint) + .aider/CONVENTIONS.md |
windsurf | Windsurf | .windsurfrules (project rules) |
Subcommands
gofasta ai list
Prints every supported agent:
$ gofasta ai list
KEY NAME DESCRIPTION
claude Claude Code Anthropic's official CLI coding agent
cursor Cursor AI-first IDE with project-level rules and MCP support
codex OpenAI Codex OpenAI's coding agent — reads AGENTS.md by default
aider Aider Open-source pair-programming CLI agent
windsurf Windsurf Codeium's AI-native IDEgofasta ai status
Shows which agents are currently installed in this project, when they were installed, and which CLI version wrote the templates:
$ gofasta ai status
AGENT NAME INSTALLED AT CLI VERSION
claude Claude Code 2026-04-18 15:04 UTC v0.2.0
cursor Cursor 2026-04-18 15:06 UTC v0.2.0gofasta ai uninstall <agent>
Removes everything the installer added — every file in the manifest’s created list, plus reverses any documentation-file rename (e.g. CLAUDE.md → AGENTS.md). Files you’ve modified since install are preserved, not silently overwritten — they’re reported in the output so you can review them.
$ gofasta ai uninstall claude
renamed: CLAUDE.md → AGENTS.md
removed: .claude/settings.json
removed: .claude/hooks/pre-commit.sh
removed: .claude/commands/verify.md
preserved (locally modified): .claude/commands/scaffold.mdPass --dry-run to preview what would be removed without touching disk:
gofasta ai uninstall claude --dry-runExamples
Install Claude Code config:
gofasta ai claudePreview what Cursor would install without writing:
gofasta ai cursor --dry-runInstall Aider and overwrite any previously-edited file:
gofasta ai aider --forceList supported agents in JSON:
gofasta ai list --jsonSwitch from Claude to Aider (uninstalls Claude, installs Aider, in one step):
gofasta ai aider --switchRemove all Cursor configuration:
gofasta ai uninstall cursorIdempotency + upgrade path
Re-running gofasta ai <agent> after a gofasta release is safe:
- Unchanged files: skipped silently.
- Files we wrote last time that we now want to update: overwritten if
--force, else halt with an error pointing at the diff. - Files you modified after install: respected — no overwrite without
--force.
Tracked via .gofasta/ai.json — a small manifest that records the installed CLI version per agent. gofasta ai status reads it.
Output shape (JSON)
{
"agent": "claude",
"created": [
".claude/settings.json",
".claude/hooks/pre-commit.sh",
".claude/commands/verify.md",
".claude/commands/scaffold.md",
".claude/commands/inspect.md"
],
"skipped": [],
"replaced": [],
"would_replace": []
}Why this exists
Every modern AI coding agent has its own preferred configuration format — Claude Code reads .claude/, Cursor reads .cursor/rules/, Aider reads .aider.conf.yml, OpenAI Codex reads AGENTS.md + .codex/, Windsurf reads .windsurfrules. Pre-shipping all of them in the scaffold clutters projects for developers who don’t use agents; shipping none means every user has to write them from scratch.
The installer is the middle path: scaffold stays clean (just AGENTS.md), agent-specific files land only when you explicitly ask. Adding a sixth, seventh, or tenth agent later is a template directory — zero changes to the CLI.