boxyard-cli

Use the Boxyard CLI to manage, find, inspect, sync, include, exclude, group, rename, or copy boxes. Use when the user asks about boxyard command usage, Boxyard config files, locating box folders, rclone-backed storage, sync status, or shell/TUI helpers.

By lukastk · 469 installs

npx skills add lukastk/boxyard --skill boxyard-cli

Source repository · Upstream listing

Boxyard CLI Use this skill to use , not develop, Boxyard: managed folders with DATA, metadata, sync config, groups, and local/rclone storage. All bundled paths below resolve from this skill directory; no source checkout is required. Authority and safety Ask before modifying local or remote state. This includes init , new , sync , multi sync , sync missing meta , include , exclude , relocate , delete , rename , sync name , group/parent edits, create user symlinks , copy , force push , claim , release , discard local , and non dry run convert . Examples are not authorization. Read only queries, help , doctor , and convert dry run may run without confirmation. Never create ad hoc folders/clones/worktrees in ~/dev . Find the existing box or use boxyard new with approval; put non box scratch outside managed roots. Keep generated data, even large outputs, inside its related box . Use sync excludes, not sibling folders, to avoid uploading it. Resolve identity and placement, don't guess. Both timestamp format and subid length are configurable; index name is {box id} {name} . Use which / path : DATA may be in any checkout root, not just user boxes path ( default ). An unavailable root never falls back to default. Placement is machine local, never synced in boxmeta.toml ; remote storage and local placement are independent. Resolve ownership, never bypass it. DATA/CONF pushes compare write owner with configured machine name , never a hostname. No owner means unrestricted. new claims by default ( no claim for work elsewhere); include read only suppresses the claim nudge. Refusal also protects force push , remote/both rename, and deletion. With approval, claim steal keeps this machine's work; discard local replaces it from remote and keeps overwritten work in backups. Destructive traps: new from PATH MOVES unless copy ; exclude syncs first then removes local DATA ( skip sync skips that protection). delete tombstones the id fleet wide: never delete a stale duplicate name to clean registrations. sync sync setting replace force , copy overwrite , and force push force can overwrite data. Read the relevant reference first. Backups aren't garbage: orphan findings may be intentional discard local keepsakes. Never auto delete them or infer disposability from unclaimed ULIDs. Excludes replace, not extend. A box's conf/.rclone exclude replaces the default list entirely: copy the default contents before adding rules, or risk syncing .venv/ , node modules/ , etc. .rclone include and .rclone filters are currently refused; use .rclone exclude alone. CONF syncs before DATA. Default exclude edits invalidate DATA baselines fleet wide; batch needed edits. Conversion is explicit: policy edits never reformat existing boxes; only convert does, verifying a byte identical restore before removing the old copy. Read the storage reference and ~/.config/myagent/reference/box storage.md before recommending/changing plain vs restic. Rig default is plain; package default for rclone is restic (local is plain). Every participating machine needs Boxyard =0.7.0, restic and the password before using restic boxes. Discover, select, inspect Use the installed CLI as authority: boxyard help , boxyard <command help , boxyard version . When already operating from a Boxyard development checkout, prefer uv run boxyard ... ; do not navigate relative to the installed skill to find source. For non default config use boxyard config /path/to/config.toml ... . BOXYARD CONFIG PATH is for the shell helper, not a substitute for CLI config . path defaults to included DATA; all includes excluded candidates. Use its root , meta , conf , or sync record options for non DATA locations. Select explicitly with box INDEX NAME or box id BOX ID ; box name NAME often means contains matching. pick first on path is only for acceptable ambiguity. Bare selection uses the cwd box across configured roots, then an fzf picker; delete , rename , copy , force push , and sync name require an explicit selector. Run doctor when state looks inconsistent , rather than improvising repairs. It is read only (exit 0 healthy / 1 findings); default includes remote checks, no remote is offline. Follow hints only after approval for state changes. Common operations (after approval) sync can select META/CONF/DATA, direction, and descendants. multi sync supports cadence and skip proofs; proof must cover all requested parts and dependencies, including plain DATA. Unknown/unproven boxes still run the real sync path. For relocation, destructive recovery, conversion, or bulk operations, read the matching reference and command help before acting. Task to reference map (load only what is needed) Task Bundled reference Config keys, local/remote layouts, roots, selectors, filters, canonical discovery [Discovery and paths](references/discovery and paths.md) New/include/exclude/copy, relocation, groups/hierarchy, rename/delete/force [Box lifecycle](references/box lifecycle.md) Sync modes, multi sync proofs, cadence, plain/restic conversion, excludes [Sync and storage](references/sync and storage.md) Owner/claim/release/discard local and doctor findings/recovery hints [Ownership and health](references/ownership and health.md) Ctrl+G, fzf, helper search and zsh setup [Shell helper](references/shell helper.md) Package default paths are not rig paths: read the actual config (normally ~/.config/boxyard/config.toml ) and use path . References preserve detailed examples and rationale; historical counts are not a current fleet inventory.