Running c4 on any path produces a c4m file and stores the content:
$ c4 ./projects/HERO/
drwxr-xr-x 2026-03-20T14:30:00Z 12058624 renders/
-rw-r--r-- 2026-03-20T14:30:00Z 4718 scripts/render_setup.py c45xZe...
drwxr-xr-x assets/
Every file gets a C4 ID — an SMPTE-standardized identifier derived from content, not name or location. Same content, same ID, always. A 2 MB c4m file can describe an 8 TB project. For these commands content is stored locally at ~/.c4/store by default, configurable to any path or S3-compatible endpoint. c4 id does identification without storing. The store is just files (or objects) keyed by C4 ID — no database, no daemon, automatic deduplication.C4 solves a general problem in distributed computing, inspired by digital media production — where projects span millions of files across terabytes of content, bulk transfers move on shuttle drives, and work is distributed across organizations and data centers. File paths are unreliable identification in this environment. C4 IDs remove the dependency on location — any system that can return content given an ID becomes a valid source: object storage, production SANs, shuttle drives, another workstation.
Because the c4m travels independently of content, you can do a remarkable amount of work before a single byte arrives. Pre-organize an incoming delivery into your pipeline's directory structure. Diff two project states to plan what needs to transfer. Deduplicate across vendors to skip terabytes you already have. Merge deliveries from multiple sources into a unified view. The content catches up later from whatever source is fastest — the c4m already tells it where to go.
c4sh adds shell utilities that make c4m files behave like mounted filesystems in your existing terminal. cd project.c4m and you're inside — ls, mv, rm, cat all work on the description. cp ./footage/ project.c4m: captures files in; cp project.c4m:shots/ ./workspace/ extracts them out. pool bundles a c4m with its content for transport; ingest absorbs it on the other end.
c4: https://github.com/Avalanche-io/c4 c4sh: https://github.com/Avalanche-io/c4sh Also: Python, TypeScript, C, Swift implementations Install: brew install mrjoshuak/tap/c4 — or — pip install c4py — or — npm install @avalanche-io/c4
All Apache 2.0. Solo developer. Happy to answer questions.
Lambicday•1h ago