Add claudebox list — no way to see your boxes, and none at all to see their snapshots
#7
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:cli
scope:drill
scope:host
scope:installer
scope:templates
scope:tiers
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/box#7
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
There is no
claudebox list. The only lister isstatus, and nothing about itbehaves the way a new user expects.
1. The obvious command doesn't exist — and fails silently.
An unknown command falls through the
help|*)arm, so a wrong guess prints thehelp and exits 0. Nothing tells you
listisn't a command; you're left toinfer it from a wall of help text. (The exit-0-on-typo half of this is tracked
separately in the CLI-contract issue; this issue is about the missing command.)
2.
statusis misnamed, and its documented signature is a lie.The CLI's own help says:
…which reads as
status <box>— a per-box status. But the implementation(
bin/claudebox:88) never looks at theargument:
So
claudebox status worksilently ignoresworkand prints every box. TheREADME, meanwhile, documents it correctly as
claudebox status # list boxes.Two docs, two different contracts, and the code matches neither name.
3. You cannot see your snapshots — which the headline workflow requires.
The README's central move is snapshot-then-clone:
That needs the snapshot label. There is no command that shows you one. Once
you've forgotten whether you called it
authedorlogged-in, the CLI cannothelp you — you have to drop to
incus snapshot list <box>and know thatclaudebox instances are plain Incus instances. The tool's own reuse story dead-ends
on missing information.
Proposal
Add a first-class
list, and keepstatusworking as a deprecated alias sonobody's muscle memory (or the README) breaks.
Details:
listshows only claudebox-tagged instances (the existinguser.claudebox=1filter), so it never touches unrelated Incus instances on the host.
list <box>closes the snapshot gap: it prints the labels and the exact--fromline to copy, connecting the two halves of the README workflow.no boxes yet — claudebox new --name work) instead ofa bare header.
--jsonfor scripting,--remotehonored as elsewhere.statusprints a one-line deprecation note to stderr and forwards tolist.status's replacement is documented.No new dependencies: this is
incus list/incus snapshot listwith--format csvbehind anawkformatter.