@super-repo/tui
v0.2.0
Published
Terminal UI for staging and shipping cross-repo migrations across the super stack
Readme
@super-repo/tui
Terminal UI for staging and shipping cross-repo migrations across the super stack. Renders a status board with one card per repo showing branch, git user, commit signing config, change counts, last commit, and unencrypted-secret count.
Run
From a workspace with a super.config.ts:
super-tui # stack repos only (default)
super-tui --all # include reference repos too
super-tui -c ./super.staging.ts
super-tui -d /tmp/superCard layout
Each repo renders as a bordered card (selected card highlighted in cyan):
╭─ design-system [stack] ────────────────────────────────╮
│ branch develop │
│ user interc0der <[email protected]…> │
│ signer SSH github-signing.pub │
│ changes 123 modified 8 new │
│ last fix: dev to utilize shared database (8 days ago)│
│ vault 151 unencrypted values exposed │
╰──────────────────────────────────────────────────────────╯Severity colors:
- green — good (signed, clean working tree, no exposed secrets, user configured)
- yellow — warning (unsigned, dirty, missing user)
- red — bad (unencrypted secrets in plaintext)
Keys
| Key | Action |
| -------- | ------------------------------------ |
| ↑/k | Select previous repo |
| ↓/j | Select next repo |
| r | Refresh all snapshots |
| q / ^C | Quit |
Commit and push flows are coming next; this MVP ships the read-only status board.
Vault detection
The "vault" line is produced by a pluggable detector (packages/cli/src/vault/scan.ts). The default detector is a plain .env heuristic: it walks each repo and counts KEY=VALUE lines in .env* files, excluding .env.example, .env.template, .env.sample, .env.dist. Values that look already-encrypted (ENC[…], vault:…, sops:…) are not counted.
To swap in a real SOPS or git-crypt detector, implement the VaultDetector interface and pass it through scanVault(repoPath, detector) from a custom call site.
Filter behavior
By default, the TUI shows only repos with type: 'stack' in super.config.ts — these are the repos that participate in cross-repo commit/push lifecycle. Use --all to also include type: 'reference' repos for status overview.
