Guide

From idea to a running team.

A visual walkthrough of building a real project with Usta. Ten steps, real screenshots, no marketing fluff.

Step 1

Welcome — pick how you start.

When you launch Usta you get two entry paths. Both lead to the same workspace experience — they differ only in how the PM agent learns what you're building.

Usta welcome screen
Step 2

Settings — paste your API keys.

Click the gear icon (top-right). You can mix and match providers — different roles can use different LLMs.

The daemon log lives at ~/Library/Logs/Usta/ustad.log. The Show Log / Tail Log buttons open it instantly. When you hit Done, the daemon restarts with the new keys.

Settings sheet — Daemon and Anthropic and Gemini and Ollama
Step 3

Describe what you want to build.

One field, 1–3 sentences. The clearer your description, the better the team. Pick the provider + model used to plan (defaults to anthropic / claude-sonnet-4-6). Hit Propose Team.

Tip: Describe the product, not the stack. The PM is good at picking tech — leave it free to. Mention constraints (e.g. "no payment gateway", "must run offline") because those drive what gets scoped out.
New Project — describe the idea
Step 4

PM proposes a team.

The PM picks a name (ShopHub in this case), drafts a one-paragraph project summary, picks a stack — Next.js 14 + React 18 + TypeScript + Tailwind, Node.js + Express backend, PostgreSQL + Prisma, NextAuth v5, Zod, Jest + Playwright — and lays out first steps in plain English: who does what, in what order, what they hand off.

PM proposal — ShopHub team and stack and first steps
Step 5

Review and edit the team.

The proposal is editable. Scroll down to see every role with its provider/model picker, tools, and skills:

Team roles — product-manager, dba, backend, frontend, ui-ux, design-system, qa, security, devops, docs
Add Role sheet — name and emoji and provider and tools and skills and publishes and subscribes

Name + emoji + why this role + provider/model + tools + skills + which events it publishes + which events it subscribes to + optional custom CLI command + system prompt.

Step 6 (optional)

Grill — sharpen the plan before code.

If you'd rather the PM ask sharper clarifying questions before writing any code, hit Refine with Grill. You get a focused Q&A like:

Your answers go straight into each role's brief. When you're happy with the plan, hit Create Project…. Usta scaffolds the repo, writes the role YAMLs, and drops you into the workspace.

Grill — clarification questions before scaffolding
Step 7

The workspace — your team, working.

Each card is one specialist running its own real PTY (Claude Code, Gemini, or Ollama). The blue banner at the top is the Next Action — the PM tells you which role should act next and gives you a one-click generated prompt.

Usta workspace — full team running in parallel

Top toolbar (zoom):

Top toolbar — All chip, API counter, Run App, Refresh, Start Team, Hide Activity, Add Role, Apply Team, Grill More
Step 8

Focus a single role.

Click the maximize button on any pane to focus one specialist full-screen. The terminal is a real PTY — keyboard shortcuts, scrollback, everything. The blue banner above shows the scoped task the PM gave this role.

Single role maximized

Skills row (zoom) — pre-loaded skills you can invoke with one click:

Skills — caveman memory grill tdd diagnose

The role's YAML decides which skills are active by default; click any chip to invoke it manually.

Step 9

Watch the event bus.

The right-side Team Activity panel is the source of truth. Every event published on the bus appears here in order. When a role announces api.added, every subscriber to that topic wakes up automatically — no manual hand-off.

If a role goes idle without publishing anything, the idle watcher tails the PTY output, infers what was announced, and publishes it on your behalf.

Team Activity — events flowing
Step 10

Ship a new feature.

Type any request in the "Describe the new feature or change…" bar at the top. PM re-plans which roles need to act for just that change, publishes scoped tasks, and only those roles wake up. Roles that were already done stay done.

Pick a target role from the dropdown (default: → @product-manager) or let the PM decide who handles it.

Feature input bar
That's the whole loop. You stop being the project manager. You ship the feature. The team ships the diff.

Ready to try it?