Skip to content

bacio repo ​

Inspect and manage the repos bacio knows about. Repos auto-register when you first run any mutating bacio command (e.g. bacio issue add) inside a git working tree, so this is mostly read-only — bacio repo list and bacio repo show <PREFIX> are the common calls. (bacio status is the deliberate exception to auto-register: it's strictly read-only and reports registered: false for unbound trees.)

Subcommands ​

SubcommandWhat it does
bacio repo listList every tracked repo with its prefix, name, path, and remote.
bacio repo show [PREFIX]Show full detail for one repo. Defaults to the repo of the current working directory.
bacio repo rm [PREFIX]Remove a repo binding from the global DB. Destructive — see notes below.

bacio repo rm — the destructive one ​

rm cascades through every issue, comment, feature, document, link, PR attachment, tag, TUI setting, and history row attached to the repo. To prevent accidents, the command requires two things:

  1. --dry-run first is strongly recommended. It returns a *DeletePreview with cascade counts so you see the full blast radius before you commit.
  2. --confirm <PREFIX> is mandatory on the real run. Without it the command exits non-zero with a "STOP — DESTRUCTIVE OPERATION REQUIRES HUMAN APPROVAL" alert and the impact preview. The agent contract requires showing this preview to the user, getting unambiguous confirmation, then re-running with --confirm <PREFIX>.
bash
bacio repo rm MINI --dry-run               # see the cascade
bacio repo rm MINI --confirm MINI          # actually delete

Worked examples ​

bash
bacio repo list                           # every tracked repo
bacio repo show                           # detail for the current cwd's repo
bacio repo show MINI                      # detail for one by prefix

# Destructive — always rehearse first
bacio repo rm MINI --dry-run
bacio repo rm MINI --confirm MINI

Inside a sync repo ​

bacio repo list is one of the three read-only commands that take a YAML-on-disk branch inside a bacio sync repo. Instead of hitting the local SQLite store, it reads the top-level index.yaml and prints the prefixes, names, and remotes recorded there. Fields not stored in index.yaml (the local DB id, on-disk path, next issue number) come back empty. If index.yaml is missing — e.g. a sync repo created before that file existed — the command falls back to scanning repos/*/repo.yaml.

bacio repo show and bacio repo rm still refuse inside a sync repo with errSyncRepoMode; only list is sync-aware.

See also ​

bacio · v0.1 · MIT