A product factory in your pocketan LLM coding agent on your own server, driven from a phone

The Hub is a private PWA that turns one small server into a studio: chat with an agent, open a real terminal, watch the box — and ship products end to end. Provider-agnostic: any CLI coding agent slots in.

  • everything below is the real interface, redrawn with example data
  • tap the tabs — chat, terminal, dashboard, night shift
  • then scroll: watch it ship a product in one command
  • and read the loop it runs — research → plan → spec → build, judged at every stage

interactive mock · no login, nothing is sent anywhere

hub· harbor ◷ 22:41
Ship a landing page for daybook — waitlist form, deploy when it's green.
agent · streaming
Scaffolded daybook/landing: hero, waitlist form wired to the database, thanks page. Build is green — preview deployed. Want me to attach the domain?
edit ×4bash ×2deploy ✓
Yes — and queue a night task: onboarding copy.
agent
Domain attached, TLS issued. Night shift queued for 23:30 — it runs in an isolated worktree and gets judged on the diff before you see it.
session $0.42cap $5.00
ask anything — or hold to speak🎙
harbor:~$ agent "make the failing daybook test pass" ▸ reading test output… ✗ waitlist.test.ts — expected 201, got 500 ▸ cause: missing DB binding in the preview env ✎ wrangler config +3 −1 ✓ 12 tests passing harbor:~$
session 1 · this2 · idle3 · idlesurvives disconnects

harbor · local

services

webdbciwatchdog

projects · pipeline

harvestspec running
idearesearchplanspecbuild
◉ goal loop · cycle 2/8 · checker: not met yet
daybookshipped
idearesearchplanspecbuild

products · lifecycle

daybooklive · keep
lark22 visits · watch
tidepoolkilled · day 9

backups

nightly AES-256 · 7 copies · last ✓ 03:12 · restore needs only openssl

queued · runs 23:30

daybook: onboarding copy + empty-state
spec → build · isolated git worktree · judged at every stage

last night

daybook: dark theme pass
✓ done · judge: criteria met ($0.001) · 2 commits on night/daybook-theme
lark: flaky email test
↻ retry · judge: partial — one criterion open

morning briefing · 07:30

2 night tasks finished. daybook theme ready to merge — accept, continue or discard from here; lark retries tonight. Watchdog: quiet. Backups: ✓. lark hit 22 visitors — lifecycle says decide by Friday.
night shift done — 2 commits ready to reviewpush · 07:30

02 · The factory

Watch it ship a product

A replay of a real run, with example names — one command provisions everything, the agent builds, and by morning the night shift has already worked a shift of its own.

harbor — factory replay
replayed from a real session · names generalized · timings compressed

03 · The loop

You don't prompt it — you design the loop

The Hub is built as a loop-engineering system: the maker stops being the person who prompts the agent and becomes the person who designs the loop that does. Verification stays human.

ideaIDEA.md
researchRESEARCH.md
planPLAN.md
specSPEC.md
buildcode + tests

every arrow is a gate: a separate judge model reads the stage's report against the real git evidence, and the chain stops at the first stage that doesn't pass. every stage commits its artifact into the repo — the model forgets everything between runs; the repo doesn't.

and then it closesThe goal loop

The pipeline is one pass; the goal loop is the recursion. State a goal once — it's committed as GOAL.md, so the agent re-reads it every cycle — and the Hub goes round on its own. Three models, three jobs: a checker grades the project against the goal and names the one next step, the worker runs it, the judge grades the attempt. Nobody grades their own work.

a loop that cannot stop is a bill, not a feature — it ends on: goal met · cycle cap · judge blocked · an empty cycle · night's end · you pressing stop

GOAL.md · "onboarding works end to end" ┌─▶ check — grade the project vs the goal │ met → stop · tell the operator │ not met → name ONE next stepworker runs itjudge grades the attempt └── round again · cycle 2/8

01State lives on disk

IDEA.md → RESEARCH.md → PLAN.md → SPEC.md, committed where the code lives. Any run — tonight's or next month's — picks up exactly where the last one stopped, instead of starting from zero.

02Every job is visible from minute one

The moment work starts it exists as a folder and a dashboard card with its pipeline track — not when it's finished. Open a session in that folder and grind on by hand, any time.

03The writer is never the judge

Each stage is checked by a separate, cheaper model that sees only the structured report and the actual diff. The agent that wrote the work never grades its own homework.

04The human stays the verifier

Run a stage now while you watch, or queue the chain for the night — with the model picked per task. In the morning the verdict is yours: accept, continue with a different stage or model, or discard.

04 · Everything it does

One small server, a whole studio

private network only + its own auth 0 third parties in the path audio never leaves the box encrypted nightly backups