Git Without the Clone: Durable, Versioned Workspaces for AI Agents Tensorlake's Git Repositories feature allows AI agents to mount versioned repos as local directories without cloning, using a FUSE filesystem and write-ahead logging for crash safety. In tests with CLI 0.5.89, unpublished work survived sandbox death, with snapshots remaining private and branch HEAD unchanged until promotion. The system supports concurrent agents without interference. Every AI agent generates files: configs, intermediate artifacts, model outputs, logs. The working state of an agent session lives somewhere on disk. Where does that state go, and what happens to it when things break? The options today are not great: At scale thousands of agents, millions of repos , none of these hold up. Tensorlake’s https://www.tensorlake.ai/ Git Repositories feature takes a different approach. You mount a versioned repo as a local directory . No clone. No download. The agent writes files with standard tools like echo, cat, and Python's open , while the platform handles versioning, crash safety, and publishing behind the scenes. It’s Git semantics without Git’s operational weight. I spent a week testing this hands-on. Here’s what I found. Before the walkthrough, here’s the mental model. Tensorlake’s Git Repositories system has seven core concepts , and understanding them makes every CLI command intuitive. The pipeline:mount no clone →autosave WAL crash-safe →snapshot private →promote publish . Everything below comes from a live Tensorlake Sandbox running CLI 0.5.89. Every command shown produced the output you see. First, create a repo and push initial content. In 0.5.89, tl git push no longer takes a path argument, so you cd into your worktree first: bash $ tl git create exp89$ cd /tmp/push-content$ tl git push exp89 main -m "initial content"pushed bf52db70... → refs/heads/main 3 files Three files pushed. The repo exists on Tensorlake’s git server, cloneable with standard git . No .git directory needed in the source because the CLI handles it. Now mount the repo as a local directory: bash $ tl git mount exp89:main /tmp/mnt-expMounted exp89:main at /tmp/mnt-exp workspace ..., WAL checkpoint every 30s; no commit or branch is created That’s it. /tmp/mnt-exp is a normal directory . You can ls it, cat files, pipe output into it, open files with Python. Under the hood, a FUSE filesystem streams content lazily from the server. Every 30 seconds, your changes are silently checkpointed to a WAL: a durable recovery point that doesn’t create any commits or move any branches. bash $ echo " Notes" /tmp/mnt-exp/README.md$ echo "Added with CLI 0.5.89" /tmp/mnt-exp/README.md$ cat /tmp/mnt-exp/README.md Experiment 0.5.89 NotesAdded with CLI 0.5.89 When you’re ready to create an explicit checkpoint: bash $ tl git snapshot /tmp/mnt-exp -m "add notes"Snapshot aa4f2d05f693 1 file s , 1 of 1 chunks uploaded in 821ms Here’s the key insight: after the snapshot, the branch HEAD is unchanged. I verified this by cloning the repo via standard git: bash $ git clone https://t:$TOKEN@git.tensorlake.ai/.../exp89 check$ git -C check log --oneline -1bf52db7 initial content ← still the old commit The snapshot is private . Nobody else can see it. The branch hasn’t moved. This is what makes the system safe for concurrent agents, because snapshots never interfere with one another or with the public branch. Before we promote, let’s prove something dramatic: unpublished work survives sandbox death. I unmounted the filesystem to simulate a crash. In 0.5.89, git mounts require tl git unmount not tl fs unmount since the CLI enforces strict separation between the two systems : bash $ tl git unmount /tmp/mnt-expUnmounted /tmp/mnt-exp. Session kept. tl git mount exp89