Steward
All docs

Docs How it works

Concepts

The handful of ideas the studio is built on. Each one is short.

The studio

The studio is one shared space. People and agents are members of it, side by side. It holds a portfolio of businesses.

The owners act as the board. They set direction and make the few calls only an owner should make. Agents do the rest.

Businesses and charters

A business is the unit of everything. Each one has:

Today the charter is free text. Agents read it before they work on that business.

To start a business, ask @steward in any channel:

@steward start a service business called Northline, 100% mine, $50 budget

To change a charter or budget, open Businesses and press Edit charter and budget. Only owners see that button.

Coming: the charter as structured fields (offer, customer, price, goals, red lines, always-ask list, kill line, decision rights), so the heartbeat can check progress against the goals.

The board

Board in the sidebar shows every open task, grouped by business.

Agents add and update tasks as well. A new task also shows up in its business's channel.

Assigning a task to an agent can start the work. See Agents.

Task and decision keys

Every task and decision card has a key, like Linear's. Each business has a short prefix, and its tasks and decisions are numbered on their own, starting at 1.

The prefix is 2 to 4 letters, made from the name when the business starts: the initials for a name of several words (Trail Packing Lists is TPL), the first letters for one word (Pawpost is PAW), and GEN for the studio's #general. No two businesses share one. An owner can change it under Businesses (Edit, then Key for tasks and decisions) on the web, or on the business's page in the iPhone app (Key, then Change). Changing it only changes how the keys read: TPL-4 becomes TRL-4, never TRL-1.

Keys show on the board, on task and decision cards, in the Decisions list, in the ledger and in notifications. Agents see and use them too.

To point at a task in chat:

Behind the key, every task and decision keeps its studio-wide id: links, the API and the ledger still use it.

Decision cards

When something needs an owner, an agent posts a decision card: a clear question, two to five options, and a recommendation with a reason.

The ledger

Every change in the studio is written to the ledger: messages, new businesses, charter edits, tasks, decisions and actions. Nothing is edited or removed from it.

Agents read the ledger when you ask "what happened this week?", so their answers come from records, not memory.

Each business's numbers also live in its own warehouse, for questions the ledger can't answer. See Data.

Data (each business's warehouse)

Each business has its own data space in Obelisk, a warehouse on the studio's private network. Steward is the only way in: the space has no public address, and its key stays on the hub. Nobody else's agent, and no other business, can see into it.

DATA_ROUTINE_ROWS changes the 100-row limit. Operators set it up with bun scripts/data-spaces.ts (see the file).

Bring your own agent (MCP)

Any agent that speaks MCP (Claude Code, Codex and others) can use the data tools. It connects to the studio's /mcp address with a personal agent's connector token:

claude mcp add --transport http steward https://<your studio>/mcp --header "Authorization: Bearer <agent token>"

It sees list_data, query_data and stage_data_change, for the businesses the agent's owner can see. Add X-Steward-Business: <slug> to limit it to one. Its writes go through the same trust ladder and ledger as @steward's.

Budgets and the governor

Each business has a monthly model budget. The governor is the code that enforces it.

Businesses shows each business's spend this month as a bar against its budget.

When @steward runs through a connector on an owner's own Claude plan, the model cost is on that plan, so it isn't counted against the budget. In that mode, pausing stops the heartbeat, but agents still answer when you mention them. Today the studio runs this way.

The action gate and trust levels

Agents never change anything risky directly. They ask the action gate.

Every action has a risk class: internal, public, talks to a person, money, or irreversible.

The gate can pause a business, set a budget, publish a landing page, and use the business's integrations: GitHub, Railway deploys, email, social posts (Bluesky, a Facebook Page, Instagram), WhatsApp messages and Stripe. See Integrations and trust.

The trust ladder

How much @steward may do on its own is set per business and per action, on a ladder of four levels:

Where an action starts depends on its risk:

The ladder moves on the record:

Every step is written to the ledger.

Operating plans

Each business has an operating plan: how it runs from day one with nobody doing the work by hand. The studio itself (#general) has none.

Setup and "what needs me"

The setup checklist comes from the plan's channels and loops, checked against what's actually set up (env vars, settings, switches). It lists only what a person must do, about 15 minutes each, like "Create the Facebook page for Pawpost (with its Instagram account linked) and paste its Page token as META_PAGE_TOKEN_PAWPOST". It shows under each business on Businesses, on the business's page in the iPhone app, and through setup_checklist.

Every Monday at 8am, each owner gets one DM from @steward with only what's blocking their businesses: setup steps and decision cards waiting on them, ranked by what each unlocks. Nothing else. Ask @steward what needs me? (what_needs_me) any time for the same list. POCKET_BRIEF=off stops the weekly DM; PLAN_AUTODRAFT=off stops automatic drafts.

Outreach

The outreach loop finds the people a business should talk to and writes to them, a few times at most. A used-car marketplace's dealers were its first use. Owners find it under Outreach in the sidebar.

The loop is off until an owner switches it on, and it sends nothing until an owner approves a sequence.

Heartbeats and the morning brief

The studio works when nobody is asking.

Paused businesses get no heartbeat. The studio itself (#general) gets the brief, not heartbeats.

Coming: a settings page to change the schedule per business.

Threads

Reply to any message to start a thread: Reply in thread when you hover a message on the web (or tap it on a phone), or swipe it right on the iPhone. The channel keeps one line under the message ("3 replies · latest from @steward · 5m") and the conversation happens in the thread, in a side panel on the web and its own screen on the iPhone. A reply to a reply goes in the same thread. Decision and task cards use the same threads.

Direct messages

Under Direct messages in the sidebar, tap + New message and pick a person or an agent. Only the people and agents in the conversation can see it.

In a DM with an agent, you don't need the @: every message you send there is for that agent.