Artifact retention systemCLI / Studio / stdio MCP

Not in Git.Not in chat.Not gone.

Keep the files your agents create between commits. file.cheap gives screenshots, logs, reports, traces, and temporary folders a local ID, searchable context, and a verified way back.

install / macOSbrew install --cask --no-quarantine abdul-hamid-achik/tap/fcheap
authority
Local manifest + original bytes
retrieval
BM25, semantic, or hybrid
recovery
SHA-256 verified restore
account
Not required
the files between commits
screenshotslogsreportstracesrepro foldersgenerated bundles
01 / lifecycle

One command in.
The same bytes out.

Temporary output becomes an addressable artifact without turning your machine into a cloud client or hiding the recovery contract.

  1. 01intake

    Give the mess an ID

    Snapshot the complete directory. The manifest records where it came from, what produced it, every file hash, and likely secret findings.

    $ fcheap save ./checkout-repro --tool agentstash 8f3a91c2 / 38 files
  2. 02index

    Index the readable parts

    Build a local retrieval index only when you want one. The saved bytes and manifest remain authoritative if the index disappears.

    $ fcheap analyze 8f3a91c2BM25 ready / vectors optional
  3. 03locate

    Find the useful fragment

    Search every indexed stash, then follow the result back to its source, producing tool, path, tags, and complete artifact.

    $ fcheap search "checkout timeout"14 leads / provenance intact
  4. 04prove

    Get the exact bytes back

    Recover into a clean directory. file.cheap verifies every restored file against the hashes captured at intake.

    $ fcheap restore 8f3a91c2 --to ./recovered38 / 38 hashes match
02 / retrieval versus recovery

Search gets you close.
Restore gets you the truth.

query

checkout timeout

14 leads
  1. 0.91
    reports/summary.md

    ...request timed out after checkout session confirmation...

  2. 0.84
    logs/browser.jsonl

    ...payment iframe did not settle before navigation...

  3. 0.77
    trace/timeline.json

    ...event=timeout source=checkout duration_ms=30001...

Results are bounded leads into the saved artifact, not a claim that the snippet is complete evidence.

verified restore

./recovered/

PASS
38/ 38 hashes matched
manifest ID
8f3a91c2
files written
38
mismatches
0
source stash
retained
fcheap restore 8f3a91c2 --to ./recovered
03 / ArtifactRefV1

Move the pointer.
Not the bytes.

A credential-free reference lets tools acknowledge one artifact without inventing a sync service or copying its payload into every system that mentions it.

{  "version": "v1",  "transport": "fcheap-local",  "artifact_id": "8f3a91c2",  "producer": "cairntrace",  "native_run_id": "run_0142"}reference only / zero artifact bytes
  1. 01
    Cairntrace or Glyphrun

    Finish the native evidence pack before it is saved.

  2. 02
    file.cheap

    Snapshot the complete pack and keep its bytes local.

  3. 03
    ArtifactRefV1

    Emit a versioned reference with no embedded credential.

  4. 04
    Optional Chalupa path

    Attach it only when the matching Cairn run ID exists.

04 / surfaces

One vault. Two operators.

people / CLI + Studio

Inspect first. Decide second.

Browse manifests, compare a stash with current files, and choose exactly when an operation may write or delete.

  • Local SQLite and search indexes
  • Streaming compression and verified restore
  • Explicit retention and cleanup decisions
agents / stdio MCP

A filing system with typed boundaries.

Tools, resources, prompts, and a version-matched guide let compatible MCP clients preserve and retrieve evidence safely.

  • Fifteen typed local tools
  • Queryable manifests and bounded search results
  • Safety guidance available inside the protocol
return address for temporary work

Give the next investigation somewhere to look.

Make the first stash

Local-first core / open source / no account required