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.
Overview
- 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.
/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
| Binary | Purpose |
|---|---|
| ultron-screenshot | Take screenshots of arbitrary URLs or running localhost. Writes PNGs to /work. |
| brave-search | Web search via the configured external provider. Returns clean structured rows. |
| ultron-deploy | Deploy a built directory to a hosted preview URL. Returns the URL. |
| ultron-render | Trigger the carousel renderer for a brief. Returns the rendered asset URL. |
| lookup-design-dna | Search the 71 brand DNA docs in the design-assets storage bucket. Returns relevant excerpts. |
Language runtimes
| Runtime | Version policy | When used |
|---|---|---|
| Node.js | Active LTS | Most agent CLI work, all JS/TS scripts. |
| Bun | Latest stable | Fast script runner, used by ultron-deploy and the build helpers. |
| Python | 3.12+ | Data tasks, scrape parsers, ML inference helpers. |
| Deno | Optional, install on demand | Used when an agent script needs Deno-only modules. |
Browser stack
| Component | Purpose |
|---|---|
| Playwright | Browser automation library; the only browser driver in the image. |
| Chromium | Bundled with Playwright. Used by ultron-screenshot and by agent-driven browser sessions. |
| Firefox + Camoufox build | Optional. Installed in scraper-class images that need anti-fingerprint browsing. |
Deploy tooling
| CLI | What it does |
|---|---|
| wrangler | Deploys to the edge runtime. Used by ultron-deploy when the target is a Pages project or a Worker. |
| flyctl | Deploys to Fly when the artefact needs a long-running process. |
| gh | Repo 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.