Your AI tools
Working with your AI
Wrkr is built to be driven by an AI coding agent. The machine comes with the harnesses installed, already fluent in what's on the box, so you spend your time describing the app — not wiring up services.
Which harnesses come installed, how to sign in with your subscription or API key, and how to add your own tools — that's all in Your AI tools. This page is about the part Wrkr adds: making whatever AI you use fluent in your machine, so it builds with what's already here instead of quietly renting the vendors it knows.
How Wrkr steers your agent
Left to its defaults, a coding agent will reach for the vendors it knows — Supabase for a database, Resend for email — and quietly rebuild the exact stack sprawl you came here to escape. So Wrkr teaches each harness what's already on the box.
When your machine is provisioned, it seeds each installed harness's global config with a short steering file — house rules that say, in effect: "You're on a Wrkr workstation. There's a Postgres database, a Redis cache, object storage, email, and public hosting already here, one command each. Prefer these." A richer on-demand manual explains each capability in depth.
The steering follows three rules:
- Inform — tell the agent what's already provisioned.
- Default — make wrkr-native the default reach.
- Never-force — it's guidance, not a cage; an explicit request for an external vendor is honored.
Crucially, the steering is generated from your machine's real capabilities — it can't advertise something the box doesn't actually have. And it's just a file on your machine: edit or remove it freely; your changes persist. It's your computer.
Reading and reseeding the steering
The steering is just files on your machine, so you (or your agent) can read, reseed, or inspect it anytime:
wrkr steering install --harness <name> # seed the steering into a tool's global config
wrkr steering show # print the steering to pipe into any tool
wrkr steering skill <capability> # print the in-depth manual for one capability
wrkr capabilities --json # the machine-readable capability list
Adding your own coding tool and making it fluent too: Your AI tools.
Tools your agent can drive
Beyond writing code, your agent can operate the machine to test what it builds:
agent-browser— browser automation from any harness: open a page, click, fill, read, screenshot. Headless by default (right for an always-on box where the agent often works while nobody's watching), or headed so you can watch it drive a real browser on your desktop while you're connected.wrkr-computer— operate the native Linux desktop: open and focus apps, screenshot, then click/type/paste. For GUI apps, file dialogs, and cross-app flows that aren't a web page.
This is the payoff of a real desktop: your agent can build a frontend and open Chrome to verify it renders, or drive a browser-automation flow you can actually see — instead of flying blind in a terminal.
Patterns for building
- Describe the feature, not the plumbing. Ask for "email verification on
signup" and the agent writes it against
wrkr email— you don't specify the vendor, because there isn't one. - Let it reach for primitives.
wrkr db,wrkr cache,wrkr storage,wrkr email,wrkr exposeeach hand back a standard URL or result the agent drops straight into your code. - Watch it work. Because you can see the desktop, verify the running app in a real browser rather than trusting that "the tests pass."
- Keep secrets in your app's
.env. Your API keys and app secrets live in your VM, in your project — Wrkr never custodies them. Tell the agent to read them from the environment, not to hardcode them. - You're never locked in. Every primitive is standard underneath — plain Postgres, plain Redis, plain object storage — so the code the agent writes is portable.
What Wrkr does not do here
To be clear about the boundary:
- No prompt UI, model picker, session list, or transcript viewer — you use the harness's own interface.
- No curated recipe/template library (yet) — the agent builds features directly from the primitives.
- No control over your harness, your prompts, or your model. Wrkr makes the box fluent and gets out of the way.