Skip to content

CLI reference

The fcheap binary manages a local vault of file and directory snapshots. It prints human-readable output by default and stable JSON where --json is supported.

Usage

bash
fcheap [global flags] <command> [arguments] [flags]

Run fcheap <command> --help for the flags accepted by the installed version. Run fcheap agent for the embedded agent operating guide.

Commands by job

Save and inspect

CommandPurpose
saveSnapshot a file or directory with provenance, hashes, and secret scanning
artifact-refEmit versioned metadata that points to an existing local stash
publishPublish one bounded local file to the private artifact service
pullDownload one private cloud artifact and verify its recorded SHA-256
listBrowse and filter stash summaries
infoRead one complete stash manifest
restoreMaterialize a stash and verify its hashes
dropPermanently delete one stash with explicit confirmation

Search and compare

CommandPurpose
analyzeIndex one stash for per-file search
searchSearch indexed stashes with keyword, semantic, or hybrid retrieval
diffCompare a saved tree with a corresponding current directory
connectUse optional vecgrep to rank source code related to saved evidence

Storage lifecycle

CommandPurpose
compressArchive a stash with zstd, gzip, or uncompressed tar
ttlSet, update, or clear expiry metadata
sweepPreview or apply removal of expired stashes
cleanupScore or categorize cleanup candidates
vacuumRemove orphaned derived entries and compact SQLite
ecosystem-statusSummarize storage and cleanup estimates by producing tool

Configuration and interfaces

CommandPurpose
configInspect and update configuration
doctorCheck paths, indexes, and optional dependencies
studioOpen the interactive terminal interface
authPair, inspect, refresh, or remove the private console device session
mcpStart the stdio MCP server
docsRead embedded documentation or manage the docs site from a checkout
agentPrint the version-matched agent operating guide; add --json for its structured form
completionGenerate shell completion scripts
versionPrint version, commit, and build date

Global flags

Global flags can appear before or after the command:

FlagDefaultDescription
--jsonfalsePrint structured JSON when the command supports it
--quietfalseSuppress non-error human output
--no-colorfalseDisable color; file.cheap also honors NO_COLOR
--stash-dir <path>configured valueOverride the stash vault for this invocation
--log-level <level>configured valueSet debug, info, warn, or error logging on stderr
--helpShow command help
--versionPrint the root command version string

A complete first workflow

Saving and indexing are separate unless you request both:

bash
fcheap save ./evidence --tag bug-123 --tool manual --index
fcheap search "checkout stopped" --mode keyword
fcheap info <stash-id>
fcheap restore <stash-id>

Copy <stash-id> from the save result. The restore command creates a fresh temporary directory when --to is omitted and reports whether every file matched its manifest hash.

Automation contract

Use --json rather than parsing colored tables. Operational logs and debug traces go to stderr, while command results go to stdout.

Some commands can complete their primary operation and still report a partial failure. For example, a snapshot can be saved even if requested indexing fails, and a payload can be deleted even if derived-index cleanup fails. Inspect status and failed fields as well as the process exit code.

An empty search result or missing vecgrep index can be valid data rather than a runtime error. The relevant command pages document those cases.

Local and remote boundaries

The vault, manifest database, and BM25 index stay on the machine. A configured OpenAI or non-loopback Ollama embedder receives text during semantic/hybrid indexing and search. connect executes the separately installed vecgrep binary.

publish is opt-in and transfers one bounded local file to the private artifact service. It never uploads a local stash automatically and never evicts local source bytes.

pull is also opt-in. It uses the paired device credential to request a short-lived direct transfer, verifies the recorded size and SHA-256, and refuses to overwrite or extract the destination.

artifact-ref lets another tool store a pointer to a local stash. The pointer does not move bytes and resolves only where the referenced vault is available. See Local artifact references for agent tools.

More help

Local-first. Open source. Released under the MIT License.