Workspace

Bundled tools and build recipes

Every Ultron shell image ships with the same baseline principles doc, binaries, runtimes, and assets — the agent CLI can rely on them being present without re-installing per session. Separately, on shell turns, the model can also pull in build recipes: vetted procedures it reads and follows itself, not a bundled skill. This page is the inventory: what is in the image, what each piece does, where it lives in the file system, and how recipes differ from the skill system documented elsewhere.

Updated today

Overview

At a glance
Image base
Debian-based, multi-stage
Image size
~3.7 GB
Principles doc location
/home/ultron/.claude/skills/
Tools location
/tools-bin/
Agent CLI
/app/cc/dist/cli.js
Working dir
/work

Recipes vs. skills

Two distinct mechanisms live near each other in the file tree. Do not conflate them.

The image mounts a baseline operating-principles document at /home/ultron/.claude/skills/ULTRON_OPERATING_PRINCIPLES.md. The agent CLI reads it on boot, and it loads into the system prompt for every agent invocation, regardless of what the session is doing.

That is not the same thing as a build recipe. A recipe is a vetted, on-demand build/deploy procedure — steps and gotchas for a known integration — that the model reads and follows itself while it works. Recipes surface only on shell turns, when a repo is bound and shell access is live: a small, relevance-gated index of available recipes is appended to the system prompt, and the model loads the full text of a specific recipe on demand, only when the turn actually needs it. Zero always-on cost beyond that index.

The distinction that matters, in one line: a skill runs on its own and hands back a result; a recipe is a procedure the model follows itself while building. A recipe is not a sub-agent — it has no model tier, tool list, or turn budget of its own.

Note
See /docs/skills/anatomy for the shape of a skill file and /docs/skills/catalog for the actual skill system: delegated sub-agents, each with its own model tier and scoped tools, that run independently and return a finished deliverable for business/GTM work. Recipes are a different mechanism, scoped to build and deploy work in a bound shell.

Bundled binaries

BinaryPurpose
ultron-screenshotTake screenshots of arbitrary URLs or running localhost. Writes PNGs to /work.
brave-searchWeb search via the configured external provider. Returns clean structured rows.
ultron-deployDeploy a built directory to a hosted preview URL. Returns the URL.
ultron-renderTrigger the carousel renderer for a brief. Returns the rendered asset URL.
lookup-design-dnaSearch the 71 brand DNA docs in the design-assets storage bucket. Returns relevant excerpts.

Language runtimes

RuntimeVersion policyWhen used
Node.jsActive LTSMost agent CLI work, all JS/TS scripts.
BunLatest stableFast script runner, used by ultron-deploy and the build helpers.
Python3.12+Data tasks, scrape parsers, ML inference helpers.
DenoOptional, install on demandUsed when an agent script needs Deno-only modules.

Browser stack

ComponentPurpose
PlaywrightBrowser automation library; the only browser driver in the image.
ChromiumBundled with Playwright. Used by ultron-screenshot and by agent-driven browser sessions.
Firefox + Camoufox buildOptional. Installed in scraper-class images that need anti-fingerprint browsing.
Note
The shell image does not ship Camoufox by default; only the scraper actors that need it carry it. This keeps the standard shell image smaller and faster to boot.

Deploy tooling

CLIWhat it does
wranglerDeploys to the edge runtime. Used by ultron-deploy when the target is a Pages project or a Worker.
flyctlDeploys to Fly when the artefact needs a long-running process.
ghRepo CLI for repo work the agent does autonomously: clone, branch, push, open PR.
docker (optional)Available when an agent needs to build a container itself. Disabled in the default image; opt-in via image tag.

Design DNA assets

71 docs mounted via the lookup binary.

The design DNA pack lives in the ultron-design-assets storage bucket, not in the image itself. The lookup-design-dna binary queries the bucket on demand. Used to break the agent CLI out of training-data-average aesthetics when it is generating UI: the lookup binary surfaces relevant reference material (typography, palette, component inventory) per brief.

Image surface

/
app
cc
dist/cli.jsvendored agent CLI
package.json
home/ultron
.claude
skills
ULTRON_OPERATING_PRINCIPLES.md
config.json
.bashrc
.gitconfig
tools-bin
ultron-screenshot
brave-search
ultron-deploy
ultron-render
lookup-design-dna
work
(empty on cold start, restored from durable-storage snapshot)