◆ this page shipped through the very board it describes
A control panel for running an agent company on your Claude subscription.
Dais gives your agents an authored state machine to move work through, puts founder gates in front of everything that leaves the building, and runs the whole thing on the Claude subscription you already pay for. You author the machine. Agents fire the edges. Nothing ships without you.
01 · the insight
Unsupervised agents drift. Supervising them yourself doesn't scale.
Give an agent a repo and a loop and it will do something — merge its own PRs, invent priorities, ship whatever it convinced itself was next. The failure mode isn't capability. It's governance.
Dais is the middle path: work moves across a board whose states and transitions you author. An agent can only advance a task by firing a declared edge — dais fire dai-2 claim — never by poking a status. And the edges that matter — new direction in, releases out — ◆ route through you. Everything between the gates runs on its own.
02 · how it works
Three parts. All boring on purpose.
Authored state machines
Each project runs a task machine you wrote down — proposed → ready → doing → qa_review → approved → release. Tasks advance only when a role fires a declared edge, with guards (--confirm, --attest) where the machine demands proof. No agent ever sets a status.
Founder gates
Two diamonds frame the loop: proposal_review — the front door, nothing new gets built until you approve the direction — and the release greenlight — the back door, nothing deploys until you fire it. Draft-and-propose in between is fully autonomous.
Runs on your subscription
Agents run headless on the Claude subscription you already pay for — no per-token API bill. The real budget is the subscription's rolling window, so the scheduler runs one well-scoped unit of work per tick and stops. Frugality is in the machine, not in a memo.
═════════ DAIS · eigen-software-llc ═════════ ▌ dais-site Ship dais.sh v1 — a landing page that makes a technical founder want to try Dais. ▶ RUNNING NOW engineer (1:28 · since 15:36) doing: dai-2 ← the task that built this page ✅ done: 1 ▌ lyrello Lyrello is LIVE on the App Store (1.0.x). Stage = post-launch growth toward PMF —… ▶ idle ◆ proposal review: lyr-51 approved: lyr-47, lyr-52, lyr-49 ◆ release review: lyr-53 ✅ done: 39 · cancelled: 4 ▌ winterbraid Web is LIVE at winterbraid.com with OPEN signup (2026-06-26). The active push is… ▶ RUNNING NOW designer (1:41 · since 15:36) proposed: win-105, win-146, win-55 approved: win-153, win-150, win-151 ◆ release review: win-155 ✅ done: 102 · cancelled: 34 recent runs (newest first · time · agent · result · dur · what it did) 15:36 dais-site/engineer running ·· (building the page you're reading) 15:36 winterbraid/designer running ·· (running) 15:19 winterbraid/qa succeeded 5m win-153 → approved 15:14 winterbraid/engineer succeeded 4m win-155 → release_review
Real output, lightly trimmed for width. One subscription, six projects, two agents mid-run — and every ◆ is a decision waiting for a human, not an agent.
front door back door proposed ──▶ ◆ proposal_review ──▶ ready ─▶ doing ─▶ qa_review ─▶ approved ──▶ ◆ greenlight ──▶ done you approve agents draft · build · review · park you ship
03 · proof
This page is its own demo.
This is dais top — the live cockpit — captured at 15:57 while this page was under review. Read the inspector pane on the right: the one running task, dai-4, is this page's own review-fix pass, and its live log is editing index.html. The page you're reading is in the frame.
● 1 running◆ 6 NEED YOU PROJECTS INSPECTOR run you que wait done dai-4 dais-site/engineer · running 2:57 counsel-os · 2 1 · 21 "PR #1 review fixes: nav centering + soften…" ● dais-site 1 1 · 1 1 model claude-fable-5 · effort high eigen-legal · · · · 21 notes: lyrello · 2 · 8 43 Founder visual+copy review 2026-07-02 of PR #1 (feat/landing-v1). THREE fixes, one pass, push to the puttflow · · 1 · 3 EXISTING feat/landing-v1 branch (PR #1 — do not branch off main; main doesn't have the page yet), winterbraid · 1 4 4 136 then complete → QA. (1) NAV CENTERING: 'how it works / proof / try it' sit high relative to the » ALL 1 6 6 13 225 github ↗ pill. Root cause: .statusbar nav (index.html:68) is display:flex with NO align-items — links stretch while .gh's padding+border sets a taller box. Add align-items: center (sanity-check ▶ WORK .statusbar .wrap too). (2) COPY — founder decision: don't push '$0-metered' so hard; just say it ▌ RUNNING · 1 runs on your Claude subscription. Sweep every occurrence: meta description + og:description (lines RUN dai-4 dais-site engineer 7, 9), the hero sub (line 241 — drop the '$0-metered' bold, keep 'on the Claude subscription you already pay for'), and card 3 (lines 279-281 — retitle away from '$0-metered agents', e.g. 'Runs on ▌ NEEDS YOU · 6 your subscription'; the $0 tick glyph too; body keeps the no-per-token-bill point but leads with the HIGH cou-12 counsel-os Reddit launch: shortlist best-fit subreddits (+ rules/fit) and draft the subscription). (3) BRAND WORDMARK — founder wants the 'ai' letters inside 'dais' in a different HIGH cou-5b counsel-os LinkedIn maker-note post draft (counsel-os launch) color to highlight the AI: statusbar brand (index.html:225) becomes d<span>ai</span>s with an accent HIGH dai-3 dais-site Release: dais-site — 1 approved task(s) color (the existing green/amber palette — pick what reads, keep it subtle enough to stay a wordmark HIGH lyr-53 lyrello Release: lyrello — 3 approved task(s) not a gimmick). If the wordmark appears anywhere else (footer, og image alt), match it. Keep the HIGH win-155 winterbraid Release: winterbraid — 2 approved task(s) voice concrete, no hype. Land before the dai-3 release assembles so it ships in the same release. MED lyr-51 lyrello Capture the actual 1.0.4 App Store screenshots via the lyr-47 pipeline (l ─ live log ─ ↳ The file /Users/jackwang/Desktop/dais-site/index.html has been updated successfully. (file state ▌ QUEUED · 6 is current in your cont… MED win-154 winterbraid ⛓ Design review: mobile app end-to-end 🔧 Edit /Users/jackwang/Desktop/dais-site/index.html LOW cou-8 counsel-os Ecosystem placement + Reddit standing-presence plan ↳ The file /Users/jackwang/Desktop/dais-site/index.html has been updated successfully. (file state LOW put-4 puttflow Export join: filter out null measured_distance_m in fetchExportRows is current in your cont… LOW win-105 winterbraid Enable Supabase Auth leaked-password protection (HaveIBeenPwned) — founde 💬 All edits applied. Let me verify there are no leftover "$0-metered" mentions and visually check the LOW win-146 winterbraid Edit-time-extraction tests make real LLM calls when ANTHROPIC_API_KEY is nav fix with the headless browser before pushing. LOW win-55 winterbraid OAuth funnel: null-waitlist-angle user can be backfilled by a later angle 🔧 Bash grep -n -i 'metered\|\$0' index.html; echo "exit: $?" ↳ exit: 1 ▌ WAITING · 13 🔧 Skill CRIT win-153 winterbraid [impl] Mobile: Home = digest + timeline (web parity); Capture as prominen ↳ Launching skill: browse HIGH lyr-26 lyrello Story Studio: user-generated stories read in a chosen voice (SCOPE, then 💬 Running the browse skill preamble and setup check: MED dai-2 dais-site [impl] dais.sh landing page v1 🔧 Bash mkdir -p ~/.gstack/sessions && touch ~/.gstack/sessions/"$PPID" _BRANCH=$(git branch MED lyr-47 lyrello [impl] Refresh App Store screenshots (current shots are 1.0.0-era) --show-current 2>/dev/null || echo "unknown") echo "BRANCH: $_BRANCH" _SESS… MED lyr-48 lyrello Docs: refresh RELEASE_PLAN.md + APP_STORE.md Release History (stale — end ↳ BRANCH: feat/landing-v1 SESSION_KIND: interactive TELEMETRY: off READY: MED lyr-50 lyrello Screenshot/demo seed mode for deterministic ASC captures /Users/jackwang/.claude/skills/gstack/browse/dis… MED lyr-52 lyrello [fix] Docs: refresh RELEASE_PLAN.md + APP_STORE.md Release History (stale 🔧 Bash B="$HOME/.claude/skills/gstack/browse/dist/browse" $B viewport 1280x800 && $B goto MED win-150 winterbraid Mobile: phantom top inset on first open — all 7 refreshable screens "file:///Users/jackwang/Desktop/dais-site/index.html" && $B screenshot /tmp/d… MED win-151 winterbraid Mobile: back button on pushed screens reads '(tabs)' ↳ Viewport set to 1280x800 Navigated to file:///Users/jackwang/Desktop/dais-site/index.html (200) MED win-66 winterbraid Enable Google OAuth provider in prod Supabase Auth Screenshot saved (clip 0… LOW lyr-10 lyrello [ROADMAP-PARKED] Multi-language support 🔧 Read /tmp/dais-statusbar.png LOW lyr-12 lyrello [ROADMAP-PARKED] Story Studio v1.1 hardening 💬 Nav links are now vertically centered with the github pill, and the "ai" in the wordmark renders LOW lyr-49 lyrello Fix version drift in asc_metadata.py + CLAUDE.md (still say 1.0.3/build7 green. Let me also verify the retitled card 3 and the footer wordmark. 🔧 Bash B="$HOME/.claude/skills/gstack/browse/dist/browse" $B screenshot /tmp/dais-pillars.png ▌ ARCHIVE · 225 --selector .pillars && $B screenshot /tmp/dais-footer.png --selector foot… CRIT dai-1 dais-site dais.sh landing page v1 ↳ Screenshot saved (element): /tmp/dais-pillars.png Screenshot saved (element): /tmp/dais-footer.pn HIGH win-149 winterbraid Release: winterbraid — 1 approved task(s) 🔧 Read /tmp/dais-pillars.png MED win-148 winterbraid [impl] Sweep mobile client onto /api/moments (finish win-101); defer drop 🔧 Read /tmp/dais-footer.png FEED 15:54 dais-site/engineer running · 15:50 dais-site/engineer succeeded · 15:43 dais-site/qa succeeded · 15:36 dais-site/engineer succeeded · 15:36 winterbraid/designer interrupted · 15:28 couns x cancel-run · +/- priority · ↵ actions · n new · w watch · R run · t tick · tab · / filter · g expand · L logs · r runs · ? help · q quit
A real frame, ANSI-to-text — select it, it's not a screenshot. The full frame is wider than this column: scroll → inside the panel. Every ◆ under NEEDS YOU is a decision parked for the founder.
And dais.sh wasn't pushed to main by a person. It moved across that board, edge by edge — here is the actual trail, straight from the run log:
2026-07-02 14:49 lead files dai-1 — "dais.sh landing page v1" (WHAT · WHY NOW · IMPACT · SCOPE) 2026-07-02 14:50 lead fires submit dai-1 → ◆ proposal_review 2026-07-02 15:34 founder fires approve direction greenlit → spawns dai-2 [impl] 2026-07-02 15:37 engineer fires claim dai-2 → doing ← this run wrote this page 2026-07-02 … engineer fires complete dai-2 → qa_review, PR open then qa fires pass dai-2 → approved then founder fires greenlight release → merge == deploy → dais.sh
If you can read this, the gates worked. On this project a merge to main is the deploy — and the only path to a merge runs through the founder's greenlight. The page being live is the receipt.
04 · try it
Open source. Your machine, your machines.
Dais is a CLI plus a SQLite board — no server, no SaaS, no telemetry. Point it at a workspace, scaffold a project from a workflow template (or author your own machine), and let the loop tick.
$ git clone https://github.com/eigensoftware/dais && cd dais $ dais init ~/mycompany # workspace: dais.yaml + CONTEXT.md + board $ dais scaffold myapp --template coding # roles + a task state machine to make your own $ dais watch # the loop: run the most valuable task, stop, repeat $ dais top # lean back. watch your company run.