dais

◆ 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.

1 /

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.

2 /

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.

3 /

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 status — live board, captured while this page was being built
═════════ 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.

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.

dais top — captured live while dai-4 was fixing this very page
 DAIS ▸ eigen-software-llc   ● 1 running · ◆ 6 NEED YOU   watch 300s x2 · 6 proj · all projects  15:57:55                                                                                                        
  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:

the task trail behind this page
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.

quick start
$ 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.