12 KiB
⚠️ DEPRECATED — REDUNDANT IMPLEMENTATION
This document is kept for historical reference only. It was the first draft of the taupocket design, generated by Perplexity and constrained by a heavy-handed prompt to "eliminate Hermes / Debian / Nix / QEMU / filesystem snapshots / duplicate substrates" — most of which were never on the table, and several of which (
smolvm hermes start,smolvm sandbox snapshot …) are first-class smolvm features.Superseded by
TUTORIAL.md, which:
- Uses
smolvm sandbox {create, exec, snapshot, file, port, shell, …}directly instead of designing a custom snapshot model on top of smolvm's own snapshot primitives.- Documents how to import
/teacher-modeand a custom~/.tauinto a sandbox (file upload+ tarball, or--mount+--writable-mounts).- Leaves the door open to Pi and other bundled agents (
smolvm pi start,smolvm hermes start, …) instead of single-vendor-locking on Tau.- Covers the three export tiers honestly: snapshot-tree copy, workspace tarball, and
smolvm pack(the last only on builds that ship it — this host's build does not).If you're landing here from a search result, read
TUTORIAL.mdinstead. The recipe in its §8 is the whole project.
eliminate hermes from the picture, debian is also a non-portable option. The agentic framework is tau, so eliminate all burden and duplicate options that suppose more time / space /resouces / overburden / non-portability. Eliminate also all mentions to discarded / legacy / non-viable options
Here’s a streamlined, portable‑only version that centers Tau and smolVM, drops Hermes/Debian/Nix/QEMU/filesystem snapshots, and avoids duplicate substrate options.12345
Portable Tau Sandboxes with smolVM
Overview
This project defines a portable snapshot sandbox for Hugging Face’s Tau coding agent using smolVM as the only runtime substrate.251
The goal is to keep the design minimal: one agentic framework (Tau), one portable machine format (.smolmachine), and a small Git + changelog overlay for learning history.345
Key properties:
- Tau is a minimalist terminal coding agent that reads files, edits code, runs commands, and maintains durable session history.463
- smolVM packs a Linux VM into a single portable file (
.smolmachine) with sub‑200ms cold boot and hardware isolation per workload.7812 - Snapshots are just
.smolmachinefiles (and optional Git commits) that can be copied, versioned, and restored on any supported host, with no dependency on host filesystem features.8512
No other substrates, OS assumptions, or host‑specific snapshot mechanisms are part of this design.
Core Design
Single Agentic Framework: Tau
Tau is a small, layered coding agent:634
tau_ai: provider‑neutral event stream from any supported language model endpoint.346tau_agent: portable agent “brain” (messages, tools, events, loop, harness, sessions).463tau_coding: terminal application (CLI/TUI) with file/shell tools, skills, prompts, and on‑disk sessions.934
This project treats Tau as:
- The only agentic framework.
- Both a working coding assistant and an educational blueprint for agent architecture.9634
Single Runtime Substrate: smolVM
smolVM is a CLI tool to build and run portable, lightweight, self‑contained VMs:1278
- Sub‑second (often <200ms) cold boot times.2781
- Each workload gets its own kernel boundary, not just container namespaces.7812
- A stateful VM can be packed into one
.smolmachinefile that runs anywhere the architecture matches.108127
This project uses smolVM as the only sandbox substrate:
- No containers, no other hypervisors, no filesystem snapshots.5
Portable Snapshot Model
Snapshot as a .smolmachine File
A snapshot is a single portable artifact:
- A
.smolmachinefile containing:
Creation flow (coarse‑grained snapshot):
- Run Tau inside a smolVM machine until a learning milestone or stable state is reached.
- Stop the machine (or flush state to disk).
- Pack or copy the VM as a
.smolmachineusing smolVM’spackormachinecommands.1012 - Save the artifact under a meaningful name, e.g.
tau-sandbox-m1.smolmachine.5
Restoration flow:
- On any supported host, run smolVM against the chosen
.smolmachine. - Tau starts inside the VM, seeing exactly the same environment and
/workspacestate as at snapshot time.812 - A restore event is logged in the changelog (see below).
No host‑specific snapshot APIs or OS assumptions are needed; the .smolmachine file is the snapshot.
Optional Git Overlay (Fine-Grained History)
Inside /workspace, a Git repo captures fine‑grained project history:345
- Tau skills (Markdown), prompts, and teacher‑mode scripts.
- Exercises, curriculum materials, and documentation.
- Code created or modified during sessions.
Typical pattern:
- After a session, the agent or supervising process identifies “promotable” changes (e.g. new skill, refactor).
- These changes are committed inside the VM, resulting in a Git history that lives inside
/workspaceand travels with the.smolmachine.1135
Git is optional but strongly recommended:
- It provides fine‑grained diffs and branches inside a snapshot.
- It is substrate‑agnostic and works entirely within the VM.
Teacher Mode & Learning Timeline
Although this design removes references to specific host assistants, it still assumes teacher‑mode behavior inside Tau:
- Teacher skills (stored as Markdown in
/workspace/skills) describe educational flows: - Tau’s TUI/CLI and skill system are used to implement:
Changelog for Snapshots
In addition to Git, a simple changelog file (e.g. changelog.jsonl or CHANGELOG.md in /workspace) records:
- For each snapshot creation:
- Timestamp.
- Snapshot ID (
.smolmachinefilename and hash). - Current Git commit (if present).
- Short summary of the learning milestone (e.g. “Added basic Git teacher skills”).5
- For each snapshot restore:
- Timestamp.
- Snapshot ID restored.
- Reason (“Replay intro module”, “Roll back broken experiment”).5
This keeps mechanical state (snapshot file) and conceptual state (why we care about it) aligned without any external framework.
Operational Flow (Single-Substrate, Minimal-Overhead)
1. Build the Base Machine
On a host with smolVM installed:128
- Use
smolvm machine runorsmolvm pack createto derive a base environment from a standard image (e.g.python:3.12-alpine).28101 - Inside the VM, install Tau via
uv tool install tau-ai.634 - Create
/workspaceand initialize a Git repo if desired. - Save this as
tau-sandbox-base.smolmachine.
From now on, every sandbox session runs inside clones or derivatives of this base machine.
2. Run Tau Sessions
For each learning session:
- Start a smolVM machine from
tau-sandbox-base.smolmachineor a derived snapshot (e.g.tau-sandbox-m1.smolmachine).8125 - Run Tau from
/workspace, connecting it to a language model provider via Tau’s/loginmechanism.349 - Use Tau’s tools and skills to explore, edit, and run code; logs and session exports remain inside the VM.463
3. Create a Snapshot
When a meaningful state is reached:
- Ensure
/workspaceis consistent (optional: run tests, lint). - Stop the machine or persist state.
- Use smolVM to pack or copy the VM into
tau-sandbox-mN.smolmachine.10128 - Inside
/workspace:- Commit any promoted changes to Git.
- Append a changelog entry describing the snapshot.5
4. Restore a Snapshot
To revisit a previous milestone:
- Pick the desired
.smolmachinefile. - Start a new machine from that artifact.
- Run Tau; it sees the restored
/workspaceand Git state. - Append a restore event to the changelog to keep the timeline coherent.5
Roadmap (Minimal Version)
Phase 1 – Base Tau Machine
Phase 2 – Snapshot & Changelog Wiring
- Define a naming convention for snapshots (e.g.
tau-sandbox-m1,m2, …). - Implement scripts or simple commands to:
- Create new
.smolmachinesnapshots. - Compute checksums for integrity.
- Create new
- Add a
changelogfile inside/workspacewith entries for snapshot create/restore.5
Phase 3 – Teacher Skills & Curriculum
- Create Tau skills for:
- Run sessions inside the smolVM sandbox using these skills; snapshot after each module.
Phase 4 – Self-Modifying Tau Experiments
- Let Tau propose changes to skills and curriculum files under guided prompts.
- Use Git commits +
.smolmachinesnapshots as guardrails:- Each experiment is attached to a specific snapshot tag.
- Revert to previous tags when experiments fail.
This version keeps only Tau + smolVM + Git/changelog, with snapshots as .smolmachine files. There are no references to Hermes, Debian, Nix, QEMU, filesystem‑dependent snapshotting, or alternative substrates, so overhead and non‑portability are minimized while preserving a clear agentic/educational story.21345
121314151617
-
https://daniliants.com/insights/github-smol-machines-smolvm-portable-lightweight-vms/ ↩︎
-
Decision-Summary_-Portable-Snapshot-Sandboxes-for.md ↩︎
-
https://techbytes.app/posts/huggingface-released-tau-a-coding-agent-2/ ↩︎
-
https://byteiota.com/smolvm-portable-vms-boot-in-200ms-solve-works-on-my-machine/ ↩︎
-
https://github.com/smol-machines/smolvm/blob/main/AGENTS.md ↩︎
-
https://deepwiki.com/huggingface/tau/7-cli-and-print-mode ↩︎
-
https://deepwiki.com/huggingface/tau/2.3-tau_coding:-coding-agent-application ↩︎
-
https://daily.dev/posts/github---smol-machines-smolvm-tool-to-build-run-portable-lightweight-self-contained-virtual-mac-ypwlwu4wm ↩︎
-
https://orply.com/articles/hugging-face/tau-crash-course-the-python-port-of-pi-2c258178 ↩︎