frizz 0.7.4 → 0.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -15
- package/dist/dev-child.js +376 -306
- package/dist/frizz.js +12908 -6474
- package/package.json +5 -3
- package/runtime/cc-worker/DECISIONS.md +11 -0
- package/web-dist/assets/{TerminalPane-Cyao7kTi.js → TerminalPane-Cb8jOFP9.js} +1 -1
- package/web-dist/assets/{abnfDiagram-VRR7QNED-D1U0Q_zY.js → abnfDiagram-VRR7QNED-Dtbg2eZ0.js} +1 -1
- package/web-dist/assets/architecture-TIHT7OUA-CTxVpl9_.js +1 -0
- package/web-dist/assets/{architectureDiagram-ZJ3FMSHR-CtUBwBcU.js → architectureDiagram-ZJ3FMSHR-DzQjWW7u.js} +1 -1
- package/web-dist/assets/{blockDiagram-677ZJIJ3-OzqrN18g.js → blockDiagram-677ZJIJ3-BJnpkLMt.js} +1 -1
- package/web-dist/assets/{c4Diagram-LMCZKHZV-DgYAtD7L.js → c4Diagram-LMCZKHZV-COdatsYu.js} +1 -1
- package/web-dist/assets/channel-COS0Ygbp.js +1 -0
- package/web-dist/assets/{chunk-32BRIVSS-CKwBruPa.js → chunk-32BRIVSS-CORMw4Vm.js} +1 -1
- package/web-dist/assets/{chunk-52WLFC77-gvoNW_ar.js → chunk-52WLFC77-C7lEadTg.js} +1 -1
- package/web-dist/assets/{chunk-C7G6YPKG-EJ5BdmRQ.js → chunk-C7G6YPKG-DZy4F97l.js} +1 -1
- package/web-dist/assets/{chunk-EX3LRPZG-DJQF-VwN.js → chunk-EX3LRPZG-HynlfV9p.js} +1 -1
- package/web-dist/assets/{chunk-FWX5IMBZ-CXBLvjvR.js → chunk-FWX5IMBZ-BbwKNhKm.js} +2 -2
- package/web-dist/assets/{chunk-HOUHSVGY-De3ULdBq.js → chunk-HOUHSVGY-lIhOZSmL.js} +1 -1
- package/web-dist/assets/{chunk-ICXQ74PX-aUbMdGsl.js → chunk-ICXQ74PX-WGxaMO8c.js} +1 -1
- package/web-dist/assets/{chunk-MOJQB5TN-BLK44SUW.js → chunk-MOJQB5TN-B-cx0f3u.js} +1 -1
- package/web-dist/assets/{chunk-OGEWGWER-CQZ3zQ2q.js → chunk-OGEWGWER-DJceVwZH.js} +1 -1
- package/web-dist/assets/{chunk-PUDLZKDR-DcdN44K2.js → chunk-PUDLZKDR-CGwHZns8.js} +1 -1
- package/web-dist/assets/{chunk-Q4XR5HBZ-Db2ge7fW.js → chunk-Q4XR5HBZ-PTSWtmk1.js} +1 -1
- package/web-dist/assets/{chunk-V7JOEXUC-D80jxcmB.js → chunk-V7JOEXUC-VNxHZPcf.js} +1 -1
- package/web-dist/assets/{chunk-VAUOI2AC-nDGsXZZE.js → chunk-VAUOI2AC-ZXYCz_Aw.js} +1 -1
- package/web-dist/assets/{chunk-VR4S4FIN-BGXgLAsD.js → chunk-VR4S4FIN-9WCtmFJp.js} +1 -1
- package/web-dist/assets/{chunk-WYO6CB5R-BbGEK50o.js → chunk-WYO6CB5R-V4EBjpmt.js} +1 -1
- package/web-dist/assets/{chunk-ZGVPDNZ5-CjEI23Vu.js → chunk-ZGVPDNZ5-CPW0Z0ae.js} +1 -1
- package/web-dist/assets/classDiagram-OUVF2IWQ-Df5TLnrN.js +1 -0
- package/web-dist/assets/classDiagram-v2-EOCWNBFH-Df5TLnrN.js +1 -0
- package/web-dist/assets/{cynefin-VYW2F7L2-CR69iDgw.js → cynefin-VYW2F7L2-E7PklfJD.js} +1 -1
- package/web-dist/assets/{cynefinDiagram-TSTJHNR4-Le_FSC65.js → cynefinDiagram-TSTJHNR4-JIXAPjDf.js} +1 -1
- package/web-dist/assets/{dagre-VKFMJZFB-CxAlFDI9.js → dagre-VKFMJZFB-DjXrdcNx.js} +1 -1
- package/web-dist/assets/{diagram-FQU43EPY-BFMwv6Pj.js → diagram-FQU43EPY--i9i0qhm.js} +1 -1
- package/web-dist/assets/{diagram-G47NLZAW-mWAc5hJ0.js → diagram-G47NLZAW-DxgcENZ_.js} +1 -1
- package/web-dist/assets/{diagram-NH7WQ7WH-CC-QXuir.js → diagram-NH7WQ7WH-CUy9Nr90.js} +1 -1
- package/web-dist/assets/{diagram-OA4YK3LP-Cqs5o39q.js → diagram-OA4YK3LP-DbTbUaCb.js} +1 -1
- package/web-dist/assets/{diagram-WEI45ONY-B9PF6IpG.js → diagram-WEI45ONY-2gk6xhOq.js} +1 -1
- package/web-dist/assets/{ebnfDiagram-CCIWWBDH-C1DkTGUE.js → ebnfDiagram-CCIWWBDH-uE2iDETg.js} +1 -1
- package/web-dist/assets/{erDiagram-Q63AITRT-CbCG5w3K.js → erDiagram-Q63AITRT-dztd4MUw.js} +1 -1
- package/web-dist/assets/eventmodeling-45OFAUF4-DPVPOEaJ.js +1 -0
- package/web-dist/assets/flowDiagram-23GEKE2U-BMIMgVYd.js +1 -0
- package/web-dist/assets/{ganttDiagram-NO4QXBWP-CaywKz56.js → ganttDiagram-NO4QXBWP-DAds6Aht.js} +1 -1
- package/web-dist/assets/{gitGraph-TEB2WS4Q-DhbijOBs.js → gitGraph-TEB2WS4Q-Ci0XVvIa.js} +1 -1
- package/web-dist/assets/{gitGraphDiagram-IHSO6WYX-DHngf1QZ.js → gitGraphDiagram-IHSO6WYX-C6FULyt8.js} +1 -1
- package/web-dist/assets/{index-CxwWndgM.js → index-CNy5uOpI.js} +116 -111
- package/web-dist/assets/{index-C-3lsl4q.css → index-D6LsViUY.css} +1 -1
- package/web-dist/assets/{info-DKCQHKI2-D2uo8Yq_.js → info-DKCQHKI2-9N77dOiw.js} +1 -1
- package/web-dist/assets/{infoDiagram-FWYZ7A6U-Bixn1mvJ.js → infoDiagram-FWYZ7A6U-BymP3PgG.js} +1 -1
- package/web-dist/assets/{ishikawaDiagram-FXEZZL3T-DG48ASOp.js → ishikawaDiagram-FXEZZL3T-CU_kQBz1.js} +1 -1
- package/web-dist/assets/{journeyDiagram-5HDEW3XC-DpQOwYAS.js → journeyDiagram-5HDEW3XC-DZN15HSd.js} +1 -1
- package/web-dist/assets/{kanban-definition-HUTT4EX6-Dph0AMZo.js → kanban-definition-HUTT4EX6-J4wR5g_3.js} +1 -1
- package/web-dist/assets/{line-hnYRfUMr.js → line-SRzGpiDr.js} +1 -1
- package/web-dist/assets/{mermaid-parser.core-DdD3ClpS.js → mermaid-parser.core-CGBscNGo.js} +3 -3
- package/web-dist/assets/{mermaid.core-C2DMq9ss.js → mermaid.core-xNdwXb1r.js} +3 -3
- package/web-dist/assets/{mindmap-definition-LN4V7U3C-CirJBG-x.js → mindmap-definition-LN4V7U3C-gR2dbzrj.js} +1 -1
- package/web-dist/assets/{packet-7NZHBO7P-kD-OtFAF.js → packet-7NZHBO7P-DrR4W6I3.js} +1 -1
- package/web-dist/assets/{pegDiagram-2B236MQR-DGmi8fl-.js → pegDiagram-2B236MQR-DN7R-_t4.js} +1 -1
- package/web-dist/assets/{pie-RZYD4A2V-DpKplj-N.js → pie-RZYD4A2V-C8VjQAFZ.js} +1 -1
- package/web-dist/assets/{pieDiagram-ENE6RG2P-CW-zVLyR.js → pieDiagram-ENE6RG2P-5w64zdD1.js} +1 -1
- package/web-dist/assets/{quadrantDiagram-ABIIQ3AL-fxSaIvo2.js → quadrantDiagram-ABIIQ3AL-B4rbezq_.js} +1 -1
- package/web-dist/assets/{radar-I7S5WNFK-BPu7ClHP.js → radar-I7S5WNFK-CTbbPB8m.js} +1 -1
- package/web-dist/assets/{railroad-3IZDKUUU-CoQXFYm6.js → railroad-3IZDKUUU-CY1er15b.js} +1 -1
- package/web-dist/assets/railroad-abnf-AHOZXSZD-DfEpkrtJ.js +1 -0
- package/web-dist/assets/railroad-ebnf-EBAXGLYW-Csunejgu.js +1 -0
- package/web-dist/assets/railroad-peg-LSFZ7HO6-BgRslbM_.js +1 -0
- package/web-dist/assets/{railroadDiagram-RFXS5EU6-Bqnz_3Bc.js → railroadDiagram-RFXS5EU6-Bx2HJ3yT.js} +1 -1
- package/web-dist/assets/{requirementDiagram-TGXJPOKE-DJHMdBhh.js → requirementDiagram-TGXJPOKE-BLK-Y2rx.js} +1 -1
- package/web-dist/assets/{sankeyDiagram-HTMAVEWB-BlxzmT-W.js → sankeyDiagram-HTMAVEWB-Dk-8Miv-.js} +1 -1
- package/web-dist/assets/{sequenceDiagram-DBY2YBRQ-BT7Rn1Uo.js → sequenceDiagram-DBY2YBRQ-DL2alfR-.js} +1 -1
- package/web-dist/assets/{stateDiagram-2N3HPSRC-CDoiFcke.js → stateDiagram-2N3HPSRC-Bka44wf1.js} +1 -1
- package/web-dist/assets/stateDiagram-v2-6OUMAXLB-6KcScVPX.js +1 -0
- package/web-dist/assets/{swimlanes-5IMT3BWC-DtzTgSSP.js → swimlanes-5IMT3BWC-e0GbMwIr.js} +1 -1
- package/web-dist/assets/swimlanesDiagram-G3AALYLV-jaJhlDbE.js +8 -0
- package/web-dist/assets/{timeline-definition-FHXFAJF6-Dn63VmSO.js → timeline-definition-FHXFAJF6-CT3GFq89.js} +1 -1
- package/web-dist/assets/{treeView-QDETBFTQ-DIfJIc9R.js → treeView-QDETBFTQ-BJauJ0bm.js} +1 -1
- package/web-dist/assets/{treemap-6X3UGDF4-n9Fwqngl.js → treemap-6X3UGDF4-DCX7A-nx.js} +1 -1
- package/web-dist/assets/{vennDiagram-L72KCM5P-C1thEMxE.js → vennDiagram-L72KCM5P-D4dm2iTR.js} +1 -1
- package/web-dist/assets/{wardley-OPB4EBWU-Dl6RiScD.js → wardley-OPB4EBWU-DklTDSId.js} +1 -1
- package/web-dist/assets/{wardleyDiagram-EHGQE667-DBelgTwB.js → wardleyDiagram-EHGQE667-CikP5hBd.js} +1 -1
- package/web-dist/assets/{xychartDiagram-FW5EYKEG-DFGVnPLj.js → xychartDiagram-FW5EYKEG-FXuOAFpz.js} +1 -1
- package/web-dist/index.html +2 -2
- package/web-dist/assets/architecture-TIHT7OUA-BS8x9TQa.js +0 -1
- package/web-dist/assets/channel-DHZV3ADN.js +0 -1
- package/web-dist/assets/classDiagram-OUVF2IWQ-Dcx3TDdU.js +0 -1
- package/web-dist/assets/classDiagram-v2-EOCWNBFH-Dcx3TDdU.js +0 -1
- package/web-dist/assets/eventmodeling-45OFAUF4-DAhP7KCX.js +0 -1
- package/web-dist/assets/flowDiagram-23GEKE2U-Be2iuqwq.js +0 -1
- package/web-dist/assets/railroad-abnf-AHOZXSZD-BiqkuXNr.js +0 -1
- package/web-dist/assets/railroad-ebnf-EBAXGLYW-CDaukY4Z.js +0 -1
- package/web-dist/assets/railroad-peg-LSFZ7HO6-CsUPdvVL.js +0 -1
- package/web-dist/assets/stateDiagram-v2-6OUMAXLB-DiLnjG8k.js +0 -1
- package/web-dist/assets/swimlanesDiagram-G3AALYLV-BqvWOcR2.js +0 -8
package/README.md
CHANGED
|
@@ -42,10 +42,10 @@ $ npx frizz
|
|
|
42
42
|
press ctrl-c to stop · run with --debug for the full event feed
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
A browser tab opens
|
|
45
|
+
A browser tab opens at `http://127.0.0.1:9393/project/acme/`. Frizz always listens on port 9393 (19393 if something else holds it), and one server serves every project on the machine. Each directory you run it in becomes a **project** with its own board at `/project/<name>`, so running `npx frizz` in a second repo registers that project and opens its board in the server already running rather than starting another. Runs on macOS, Linux, and Windows.
|
|
46
46
|
|
|
47
47
|
<p align="center">
|
|
48
|
-
<img src="assets/board.png" alt="Frizz
|
|
48
|
+
<img src="assets/board.png" alt="The Frizz board: the project rail down the left, the composer and the queue of threads beside it, and on the right a card where an agent is asking an answerable question with lettered options, above Snooze and Mark as done." width="100%">
|
|
49
49
|
</p>
|
|
50
50
|
|
|
51
51
|
<br/>
|
|
@@ -55,15 +55,26 @@ A browser tab opens on localhost — a dedicated workspace for this directory. *
|
|
|
55
55
|
Frizz is a browser tab, a queue, and the agent CLIs you already pay for. It brings no model of its own, automates none of your workflow, and keeps every opinion it does have in a text file you can edit.
|
|
56
56
|
|
|
57
57
|
- 🗂️ **A task queue, not a sidebar.** Every agent that comes to rest needing you becomes a card. Work the queue top to bottom instead of polling ten terminals.
|
|
58
|
+
- 📁 **Projects.** Every directory you run it in gets its own board, all on one server. The home page lists them, and the project rail switches between them with each queue's count on its icon.
|
|
58
59
|
- 🔌 **Headless.** Every thread's agent runs in its own detached background process. Close the tab, quit the browser, ctrl-c the server, reboot — your threads are all still there when you come back, and Frizz reconnects to the ones still running rather than replaying them from disk.
|
|
59
60
|
- 🤖 **Claude Code *and* Codex.** Pick the backend per thread and run both against the same repo at once. Frizz supports Claude Code and Codex subscriptions — the CLIs you already have installed and signed in.
|
|
60
61
|
- 😴 **Snooze.** Not everything needs an answer now. Park a card for an hour, until tomorrow morning, or until a date you pick — optionally with a follow-up prompt attached, so the thread wakes up already working on what you told it to do next.
|
|
61
|
-
-
|
|
62
|
+
- 🎯 **Goals.** Give a thread a standing goal that Frizz re-sends as a prompt — every time it comes to rest, on a clock you set in minutes, or both. Good for "keep going until CI is green" without you re-asking. A scheduled one reaches the agent even mid-turn, so it can nudge a thread that never stops. Switch it off whenever, or let the agent say it's finished.
|
|
62
63
|
- 🐙 **GitHub integration.** Browse your repo's issues and pull requests without leaving the composer, and turn a selection of them into threads. Workers can read issues, diffs, and CI on their own.
|
|
63
64
|
- 👀 **Built-in CI and PR watchers.** A worker waiting on a build or a review doesn't hand the thread back to you to be told "keep going." It watches, and picks the work back up when the run goes green or a review lands.
|
|
64
65
|
- 📝 **No magic.** A thread behaves like a Claude Code session you started yourself. Frizz adds no worktrees, no branches, no dev server, no build integration, no workflow engine to fight with.
|
|
65
66
|
- 🔒 **Local only.** No cloud, no account, no telemetry. The server binds `127.0.0.1` by default and its state lives in your user directory, never in your checkout. To reach a board from a phone, put your own tunnel or proxy in front of it — see [Remote access](docs/remote-access.md).
|
|
66
67
|
|
|
68
|
+
### Projects
|
|
69
|
+
|
|
70
|
+
Every directory you run `npx frizz` in becomes a project with its own board, all served by the one Frizz on your machine. The home page at `http://127.0.0.1:9393/` lists them.
|
|
71
|
+
|
|
72
|
+
<p align="center">
|
|
73
|
+
<img src="assets/projects.png" alt="The Frizz home page: a rail of project icons down the left, and four project cards — design-system, acme-web, acme-api, frizz — each with its home-relative path and when it was last opened, plus an Add a project card." width="100%">
|
|
74
|
+
</p>
|
|
75
|
+
|
|
76
|
+
The project rail keeps every project one click away, with each queue's count on its icon. It is off by default; switch it on under **Settings → Project sidebar**.
|
|
77
|
+
|
|
67
78
|
### The queue
|
|
68
79
|
|
|
69
80
|
A sidebar of sessions makes every agent something you have to remember to go check. Frizz gives you one queue instead.
|
|
@@ -104,12 +115,12 @@ Park a card for an hour, until tomorrow morning, or until a date you pick. Attac
|
|
|
104
115
|
<img src="assets/snooze.png" alt="The snooze menu open on a queue card, offering 1 hour, tomorrow at 9am, 1 day, 3 days, 1 week, and a custom time and prompt." width="100%">
|
|
105
116
|
</p>
|
|
106
117
|
|
|
107
|
-
###
|
|
118
|
+
### Goal
|
|
108
119
|
|
|
109
|
-
Give a thread a
|
|
120
|
+
Give a thread a standing goal. Frizz sends it as a prompt every time the agent comes to rest, on a clock you set in minutes, or both — a scheduled send reaches the agent even mid-turn, without cutting off work in progress.
|
|
110
121
|
|
|
111
122
|
<p align="center">
|
|
112
|
-
<img src="assets/
|
|
123
|
+
<img src="assets/goal.png" alt="The goal panel open on a thread card: a goal saying to keep going until the test suite is green, sent at every rest and every 30 minutes." width="100%">
|
|
113
124
|
</p>
|
|
114
125
|
|
|
115
126
|
<br/>
|
|
@@ -121,7 +132,11 @@ $ npx frizz --help
|
|
|
121
132
|
|
|
122
133
|
Frizz production launcher
|
|
123
134
|
|
|
124
|
-
Usage: npx frizz [options]
|
|
135
|
+
Usage: npx frizz [up] [options]
|
|
136
|
+
|
|
137
|
+
Commands:
|
|
138
|
+
up serve at the saved public hostname and run its tunnel; asked once,
|
|
139
|
+
then remembered
|
|
125
140
|
|
|
126
141
|
Run it in the directory you want to work in. One server serves EVERY project on this machine,
|
|
127
142
|
each at its own /project/<name> URL, so a second run joins the one already going. Runs the
|
|
@@ -129,14 +144,12 @@ npm-resolved immutable Frizz package, then opens it in your default browser. Use
|
|
|
129
144
|
for a source checkout.
|
|
130
145
|
|
|
131
146
|
Options:
|
|
132
|
-
--app use the legacy dedicated app window instead of a browser tab
|
|
133
147
|
--no-app print the URL without opening a browser
|
|
134
148
|
--port <port> request a fixed port for a new workspace server
|
|
135
149
|
--host [address] serve on a network address instead of loopback (bare --host means 0.0.0.0)
|
|
136
150
|
--allowed-host <name> with --host, also accept this DNS name as the board's address (repeatable)
|
|
137
151
|
--public-origin <url> serve behind a proxy/tunnel reachable at this exact origin
|
|
138
|
-
--cloud
|
|
139
|
-
process; asked once, then remembered
|
|
152
|
+
--cloud alias of up, for saved commands
|
|
140
153
|
--link print a fresh single-use access link for the running board
|
|
141
154
|
--debug stream the full event feed to the terminal instead of the compact readout
|
|
142
155
|
-h, --help show this help
|
|
@@ -145,7 +158,6 @@ Environment:
|
|
|
145
158
|
FRIZZ_HOST same as --host
|
|
146
159
|
FRIZZ_ALLOWED_HOSTS same as --allowed-host, comma separated
|
|
147
160
|
FRIZZ_PUBLIC_ORIGIN same as --public-origin
|
|
148
|
-
FRIZZ_PUBLIC_TOKEN standing secret for HEADLESS boxes that cannot show a QR
|
|
149
161
|
|
|
150
162
|
--host puts a board that can run shell commands as you on the network, and Frizz has no login: anyone
|
|
151
163
|
who reaches the port controls it. Only do this on a network you trust. An IP address and this
|
|
@@ -200,7 +212,7 @@ trades the code for a session cookie, so the link itself stops working the momen
|
|
|
200
212
|
<details>
|
|
201
213
|
<summary><b>Can I run it on several repos at once?</b></summary>
|
|
202
214
|
|
|
203
|
-
> Yes. One Frizz server serves every project on your machine — you don't start one per repo. Run `frizz` in any of them and switch projects from the board; each project's threads, settings and state stay separate.
|
|
215
|
+
> Yes. One Frizz server serves every project on your machine — you don't start one per repo. Run `npx frizz` in any of them and switch projects from the board; each project's threads, settings and state stay separate.
|
|
204
216
|
|
|
205
217
|
</details>
|
|
206
218
|
|
|
@@ -216,7 +228,7 @@ trades the code for a session cookie, so the link itself stops working the momen
|
|
|
216
228
|
>
|
|
217
229
|
> Frizz prints the addresses to use and warns you as it starts. Reaching it by IP or by the machine's own hostname (`http://pupper:9393/`, `http://pupper.local:9393/`) works as-is; any other name you have to say so — `--host --allowed-host frizz.home.arpa` — because an unlisted name is how DNS rebinding gets a browser to treat an attacker's page as same-origin with your board, and the machine's own name is the one nobody off your network can point elsewhere. `FRIZZ_HOST` and `FRIZZ_ALLOWED_HOSTS` do the same thing when the launch command lives in an image or a unit file.
|
|
218
230
|
>
|
|
219
|
-
> Understand what you're turning on. Frizz has no login: reaching the port *is* the authorization, and the board runs shell commands as you. Only do this on a network you trust, and prefer a tunnel (`ssh -L 9393:127.0.0.1:9393 you@box`,
|
|
231
|
+
> Understand what you're turning on. Frizz has no login: reaching the port *is* the authorization, and the board runs shell commands as you. Only do this on a network you trust, and prefer a tunnel (`ssh -L 9393:127.0.0.1:9393 you@box`, Frizz's port, the same on both ends) if you just want your own board from your own laptop — that needs no flag at all.
|
|
220
232
|
|
|
221
233
|
</details>
|
|
222
234
|
|
|
@@ -227,7 +239,7 @@ trades the code for a session cookie, so the link itself stops working the momen
|
|
|
227
239
|
>
|
|
228
240
|
> ```sh
|
|
229
241
|
> npx frizz --public-origin https://frizz.example.com
|
|
230
|
-
> cloudflared tunnel --url http://127.0.0.1:9393 #
|
|
242
|
+
> cloudflared tunnel --url http://127.0.0.1:9393 # Frizz's port
|
|
231
243
|
> ```
|
|
232
244
|
>
|
|
233
245
|
> Frizz stays bound to `127.0.0.1` — `--public-origin` is not `--host` and does not put anything on your LAN. The tunnel runs on the same machine and dials the loopback port, so the only way in is through the tunnel. That is also what makes this the *good* remote option rather than merely a working one: the tunnel terminates TLS, so the board is a real `https://` origin and therefore a secure context, which plain `--host` over a LAN IP is not. Copy buttons and desktop notifications work again, and it works on a phone.
|
|
@@ -262,13 +274,14 @@ Frizz has its own small vocabulary. Most of it names a feature, so this doubles
|
|
|
262
274
|
|
|
263
275
|
| Term | What it means |
|
|
264
276
|
| --- | --- |
|
|
277
|
+
| **Project** | A directory you ran Frizz in. Each has its own board at `/project/<name>`; one server holds all of them. |
|
|
265
278
|
| **Thread** | One effort, start to finish. Not a chat tab and not a branch. The session *is* the thread — there's no sidecar document to keep in sync, and dispatching doesn't write a file into your repo. |
|
|
266
279
|
| **Worker** | The agent driving a thread: a real Claude Code or Codex process, running as *you*, with your credentials and your CLI config. |
|
|
267
280
|
| **Sub-agent** | A helper a worker dispatches for an independent prong of its own task. Frizz binds each one back to its parent, so the fan-out is visible under the parent's card. |
|
|
268
281
|
| **Rested** | An agent that has ended its turn and is waiting on a human. A rested thread isn't idle, it's *your move*. |
|
|
269
282
|
| **The queue** | The single list of threads that need you. A thread only earns a card when it genuinely wants a human. |
|
|
270
283
|
| **Snooze** | Hide a card until later — an hour, tomorrow morning, or a date you pick — optionally with a follow-up prompt attached. |
|
|
271
|
-
| **
|
|
284
|
+
| **Goal** | A standing prompt a thread receives on its own — every time it rests, on a clock, or both — until you switch it off or the agent says it's done. |
|
|
272
285
|
| **Scratchpad** | A thread's durable working memory, readable under its **Doc** tab. Where a worker keeps what a summary would otherwise lose: the approach, the alternatives it rejected, the decisions you made and reversed. |
|
|
273
286
|
| **`FRIZZ.md`** | An optional file at your repo root whose contents are injected into every thread, for when you want agents to follow your repo's own norms. |
|
|
274
287
|
|