# Perfect waterfall

The product people buy. Not a second Grok CLI. A modular board that
autoroutes work to the cheapest model that can do the job, and lets you
flip projects without opening another terminal.

Price today: **$30 one-time** founding license.
Buy: https://buy.stripe.com/4gM14n0wy7cFbIAecVaMU1J

This file is the working spec. Ship toward it. Do not add a feature that
fights it.

## Why someone pays

1. **Beautiful modular interface.** One window. Project rail. Open chats
   as tabs. Switch as fast as Claude Desktop.
2. **Cascade.** Classify the prompt. Send the routine part to the
   cheapest capable OpenRouter model. Only the hard remainder hits the
   expensive brain (Claude, Grok, Codex).
3. **Least dollars for the job.** Savings are visible, not a footnote.
   Your own keys. Waterfall does not markup tokens.

If a change does not make (1), (2), or (3) truer, it waits.

## Form factor

```
waterfall.sh (this site)
        │  storefront, license, downloads
        ▼
installer on THEIR machine
        │
        ▼
THEIR board on 127.0.0.1
their folders, their grok / claude / OpenRouter key
        │
        ▼
optional license ping
```

The public site is never tunneled to one person's localhost.
The agent host stays local (or later, a VM the buyer owns).

Downloads: Mac, Windows, Linux. Until native packages exist, the
honest download is the one-line installer plus `waterfall remote open`.
Do not fake a .dmg that is not built.

## Done when Adam stops opening `grok` in a new terminal

The board has to beat the CLI on:

- click or key a project, land in that cwd
- flip to another cooking chat without killing the first
- see which chats are running
- stay in one window

### Keys (ship these)

| Key | Action |
|-----|--------|
| `/` or `Ctrl+K` | focus project filter |
| `Enter` on a project | spawn / focus that cwd |
| `Ctrl+Tab` | next open chat |
| `Ctrl+Shift+Tab` | previous open chat |
| `Ctrl+1` ... `Ctrl+9` | jump to that open chat |
| `Ctrl+N` | new chat in current project |
| `Esc` | close drawer / clear filter |

## Feature set

Status: **now** is shipped enough to dogfood. **next** is the current
build. **later** waits until the now/next row is real.

### Interface

| Item | Status | Note |
|------|--------|------|
| Deep-water brand, W mark, `waterfall.sh` wordmark | now | Board + site |
| Full project rail (not +N more) | now | Filter in place |
| Open chats as tabs, flip without kill | now | Ctrl+Tab / Ctrl+1-9 |
| Named project = that folder as cwd | now | |
| `/resume` last grok session | now | Default brain grok. `/cascade` sets the sequence. |
| Inline next-step chips (CYOA) | now | After each turn, click to continue |
| Status: running / idle / error | now | |
| Permission Allow / Deny cards | later | Steal Mausbot pattern |
| Cascade chip in the chrome (model, cents) | now | Topbar chip |
| File tree + git diff pane | later | Claude Desktop parity |
| Native Mac / Windows / Linux packages | later | Tauri shell exists; not the SKU yet |
| Always-on after the laptop sleeps | later | Needs a buyer VM. Do not claim 24/7 |

### Cascade (the reason this is not Grok Bot)

| Item | Status | Note |
|------|--------|------|
| Local classify, zero API | now | `waterfall classify` |
| Route routine work to cheapest capable model | now | `waterfall route` |
| Fallback if a rung fails | now | |
| Ledger of tokens / dollars kept off Claude | now | `waterfall stats` |
| Visible in the board, not only the CLI | now | Cascade on Send |
| Per-chat model override, cascade still default | later | Modular brains |
| Buyer brings OpenRouter + grok/claude logins | now | BYO, no proxy markup |

### License and delivery

| Item | Status | Note |
|------|--------|------|
| Live $30 Stripe payment link | now | Product name `waterfall` |
| Site Buy button hits that link | next | |
| After pay: thanks page + install | next | |
| `waterfall license paid` writes local license | next | Honor system until webhook |
| Founder license on this machine | next | So Adam can dogfood |
| Stripe webhook issues a real key | later | After first stranger pays |
| Hard-lock the board without a license | later | Soft banner first |

### What we refuse

- Pointing vercel.app at Adam's `:7910`
- Nesting grok TUI inside another TUI
- Cloning Grok Bot's cloud computer or Buzz's Slack room
- Selling "access to Adam's Aether catalog"
- Fake download buttons for binaries that do not exist

## Borrow, do not become

| Source | Steal | Leave |
|--------|-------|-------|
| Grok Bot | Downloadable app. Named roles. Paid gate on the site. | Cloud computer, iMessage-of-bots, 24/7 claim |
| OpenMausBot | BYO CLIs. Local harness. Allow/Deny cards. | Electron mac-only desktop as the product |
| Buzz | Agents as members *if* a second human appears | Nostr Slack clone for a solo coder |
| Claude Desktop | One-click project flip | Rebuilding their agent brain |

## Build order

1. Spec (this file) + $30 on the site + thanks + local license
2. Board keys so tab-switch beats `grok` in a new terminal
3. Cascade numbers in the board chrome
4. Permission cards
5. Real OS packages + Stripe webhook

Revisit this list when a feature ships. Honest zeros only.
