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]
gofasta ai list
gofasta ai statusInherits the global --json flag for machine-parseable output.
Flags
| 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 |
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.0Examples
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 --jsonIdempotency + 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.
Related
- AGENTS.md — the universal agent guidance format (shipped in every scaffold by default)
- llms.txt — LLM-optimized docs index for gofasta itself
gofasta verify— pre-commit check invoked by agent hooks