CLI
Every command and flag, how to read the output, and how it behaves in CI.
Commands
| Command | Description |
|---|---|
init | Install the rules, or update an existing install. |
remove | Remove every managed file, the AGENTS.md block and the CLAUDE.md import. Files you changed are kept unless you confirm or pass --force. |
Options
| Flag | Description |
|---|---|
--agent <list> | claude, cursor (comma separated) or none. Default: claude,cursor. |
--framework <name> | nextjs or tanstack. Overrides detection. |
--force, -f | Also overwrite (or, with remove, delete) managed files you changed. Content outside the AGENTS.md block is never touched. |
--dry-run | Print the plan without writing anything. |
--yes, -y | Answer every question with its default, which never overwrites. |
--tr | Turkish output. |
--help, -h | Show help. |
--version, -v | Show the version. |
Reading the output
This run updated a project after next-intl was installed. The CLI lists each file with a sign and ends with a summary:
ViraStack AI v2.0.0
Framework: nextjs · Agents: claude, cursor · i18n: yes · Package manager: pnpm
~ .claude/rules/virastack/architecture.md · updated
+ .claude/rules/virastack/i18n.md · created
! .claude/rules/virastack/testing.md · skipped: not an interactive terminal; use --force to overwrite
~ .claude/rules/virastack/nextjs.md · updated
~ .cursor/rules/virastack/architecture.mdc · updated
+ .cursor/rules/virastack/i18n.mdc · created
~ .cursor/rules/virastack/nextjs.mdc · updated
~ AGENTS.md · updated
~ .virastack/ai.json · updated
2 created · 6 updated · 0 removed · 1 skipped
ViraStack AI rules are ready.+created~updated-removed!skipped or kept, with the reason
Examples
See what would change, without writing:
$ pnpm dlx @virastack/ai init --dry-runInstall for Cursor only:
$ pnpm dlx @virastack/ai init --agent cursorForce the TanStack Start rules:
$ pnpm dlx @virastack/ai init --framework tanstackRemove ViraStack AI from the project:
$ pnpm dlx @virastack/ai removeCI and scripts
In a non-interactive shell the CLI never asks. Changed files are skipped with a warning, and --yes behaves the same in a terminal. Pass --force only when you want your changes replaced; see customization.
