Pattern
- Store shared files in a versioned file system.
- Publish updates from outside the sandbox with
tl fs push. - Mount the file system into agents as a read-only directory.
- Follow the file system for automatic distribution, or pin a permanent snapshot for fixed releases.
Create an Asset File System
- CLI
- Python
- TypeScript
/opt/agent-assets/manuals/operator.md, /opt/agent-assets/skills/research/SKILL.md, or /opt/agent-assets/bin/validator.
Publish From Outside a Sandbox
The producer does not need a sandbox, and it does not need a mount. Push a directory and create a permanent snapshot for the release:-m on the changed push that should create a permanent snapshot; without it, the push creates an ephemeral autosave checkpoint. A push with no changes is a quiet no-op.
Pushes honor .gitignore, preserve symlinks, and preserve executable bits on regular files. A file system has no special .git handling: only .gitignore governs what is excluded.
Mount Into Agents
Mount the file system read-only at a predictable path with the sandbox mount API’s per-mountread_only option (see Mount Filesystems):
- CLI
- Python
- TypeScript
Version Releases
Use a permanent snapshot when a run must be reproducible. The-m push above already created one; find its id under Snapshots in tl fs history agent-assets and pin the mount to it:
ro and never follows the file system: agent-assets keeps advancing for the following fleet while every pinned run keeps serving exactly the release snapshot. Recent autosave IDs cannot be pinned — only permanent snapshots can — so a release anchor never expires. Deleting a release snapshot while sandboxes still pin it is refused with a 409 naming the pin count.
Pins work at creation, on warm-pool claims, and on runtime attach, in every SDK — see Pinned mounts for the Python, TypeScript, and HTTP forms.
If a release needs its own file-system name — one you might promote or edit later — fork the file system at the release snapshot instead. A fork is metadata-only, sharing the immutable content, and stays fixed as long as nothing writes to it:
stable, canary) that you advance deliberately, back the assets with a Git repository and use branches as channels. That’s the surface built for explicit publication.
Binary Tools
Put tools under a stable directory such asbin/ with the executable bit set, and push:
Choose a Mount
Next Steps
Read-only Mounts
Choose between following the file system and pinning a permanent snapshot.
File System Mounts
Give agents a separate place to write outputs.