Trible CLI is a friendly companion for exploring and managing Tribles from the command line.
Note: The project depends on the unreleased
triblescrate directly from Git.
cargo install --path .-
Create a new pile to hold your data:
trible pile create demo.pile
-
Add a file as a blob. This command prints a handle for the stored blob:
echo "hello" > greeting.txt trible pile blob put demo.pile greeting.txt
-
List the blobs in the pile to confirm the handle:
trible pile blob list demo.pile
-
Retrieve the blob using its handle:
trible pile blob get demo.pile <HANDLE> copy.txt
The file copy.txt now contains the original contents of greeting.txt.
Run trible <COMMAND> to invoke a subcommand.
genid— generate a random identifier.
completion <SHELL>— output a completion script forbash,zsh, orfish.
pile create <PATH>— initialize an empty pile, creating parent directories as needed.pile diagnose <PILE>— verify pile integrity.
pile branch list <PILE>— list branch identifiers.pile branch create <PILE> <NAME>— create a new branch.pile branch consolidate <PILE> <NAME>— consolidate multiple branches that share the same logical name into a single new branch. The command creates a single merge commit whose parents are the matching branch heads and prints the new branch id.
Signing key format
- Commands that create commits (e.g.
create,merge-import,consolidate) accept a signing key file path via the--signing-keyflag. The file must contain a single 64-character hex string (32 bytes encoded as hex). You can also set TRIBLES_SIGNING_KEY to the path of such a file. Generated keys (when created by Codex tooling) are written as hex text to the configured path.
pile blob list [--metadata] <PILE>— list stored blob handles. Pass--metadatato include timestamps and sizes.pile blob put <PILE> <FILE>— store a file as a blob and print its handle.pile blob get <PILE> <HANDLE> <OUTPUT>— extract a blob by handle.pile blob inspect <PILE> <HANDLE>— display metadata for a stored blob.
store blob list <URL>— list objects at a remote store.store blob put <URL> <FILE>— upload a file to a remote store and print its handle.store blob get <URL> <HANDLE> <OUTPUT>— download a blob from a remote store.store blob forget <URL> <HANDLE>— remove an object from a remote store.store blob inspect <URL> <HANDLE>— display metadata for a remote blob.
store branch list <URL>— list branches at a remote store.branch push <URL> <PILE> <ID>— push a branch to a remote store.branch pull <URL> <PILE> <ID>— pull a branch from a remote store.
See INVENTORY.md for notes on possible cleanup and future functionality.
Command implementations live in src/cli/ with modules for branch, pile,
and store. The modules expose their subcommands and are re-exported from
main.rs to preserve the existing CLI interface. Contributions are always
welcome!