You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: rework README as a marketing page, move agent setup to docs (#63)
* docs: rework README as a marketing page, move agent setup to docs
Simplify the README to focus on the value for a human running sideshow:
why it helps (see what the agent means, cheaper than hand-writing HTML,
comment instead of re-prompting), a tight quick start, and the surface
gallery. Move the agent-facing integration commands (CLI, MCP, Pi, plain
HTTP, Claude Code skill/plugin) into docs/connecting-agents.md and the
Cloudflare instructions into docs/deploying.md, linked from a Docs section.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: note the viewer's in-app agent setup / connect links in quick start
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: condense the token-efficiency benefit
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: lead the token-efficiency point with the HTML surface
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs: reword the efficiency benefit in plainer terms
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
<imgalt="The sideshow viewer: agent sessions in a sidebar, a published JWT-flow diagram with a comment thread between the user and claude-code, and an interactive backoff explainer below"src="docs/sideshow-light.png">
16
17
</picture>
17
18
18
-
An agent sketched a sequence diagram during an auth refactor; the user asked a
19
-
question under it, and the agent replied and revised.
19
+

20
20
21
-
The loop — publish, render, comment, revise:
21
+
## Why
22
22
23
-

23
+
-**See what your agent means.** An architecture it's proposing, a flow it's
24
+
tracing, a UI it's about to build — shown, not described in a paragraph you
25
+
have to picture in your head.
26
+
-**Faster, and fewer tokens.** sideshow surfaces are optimized for LLMs, so the
27
+
agent produces higher-fidelity diagrams and visualizations faster and using
28
+
fewer tokens.
29
+
-**Comment instead of re-prompting.** Click a card, leave a note. The agent
30
+
reads it and revises — no copy-pasting screenshots or re-describing what you
31
+
meant.
32
+
-**Works with the agent you already use.** Any agent with a shell can drive it
33
+
over `curl`; richer tiers exist for CLI, MCP, Pi, and Claude Code.
24
34
25
35
## Quick start
26
36
@@ -31,107 +41,36 @@ npm install
31
41
npx sideshow serve --open # viewer on http://localhost:4242
32
42
```
33
43
34
-
Then point your agent at the surface:
44
+
Then point your agent at the surface — paste the setup block into its
45
+
instructions:
35
46
36
47
```sh
37
48
curl -s http://localhost:4242/setup >> AGENTS.md
38
49
```
39
50
40
-
That block teaches any agent with a shell (pi, opencode, amp, codex, Claude
41
-
Code) to publish surfaces and poll for comments over curl.
42
-
43
-
No agent handy? `npx sideshow demo` seeds two example sessions to look around.
44
-
45
-
## Connecting agents
46
-
47
-
Pick whichever tier the agent supports — each one covers the full loop.
48
-
49
-
**Shell.** The `sideshow` CLI has no dependencies and groups sessions for you:
The running viewer has the same handoff built in: its sidebar footer carries an
56
+
**agent setup** link (the block above) and a **Connect Claude Code** button, so
57
+
you can grab it without leaving the browser.
85
58
86
-
### Claude Code plugin
59
+
No agent handy? `npx sideshow demo` seeds two example sessions to look around.
87
60
88
-
Claude Code users can install a plugin that bundles all three at once — the
89
-
MCP server, the skill, and a **background monitor** that streams your browser
90
-
comments to the agent as notifications, so feedback arrives without pasting or
91
-
re-arming a watcher:
61
+
**Going further:** richer integration tiers (CLI, MCP, the Pi extension, and the
62
+
Claude Code skill + plugin) are in **[docs/connecting-agents.md](docs/connecting-agents.md)**.
92
63
93
-
```text
94
-
/plugin marketplace add modem-dev/sideshow
95
-
/plugin install sideshow@sideshow
96
-
```
64
+
## What your agent can show
97
65
98
-
On install it asks for your **Sideshow URL** (default `http://localhost:4242`,
99
-
or your deployed instance) and an optional token. The monitor runs
100
-
`sideshow watch` against your board; comments are delivered to the agent
101
-
exactly once. Requires Claude Code ≥ 2.1.105. The viewer's "connect Claude
102
-
Code" link (sidebar footer) shows the same steps. The plugin lives in
103
-
[`plugin/`](plugin/).
104
-
105
-
## Concepts
106
-
107
-
-**Session** — one agent conversation. Sessions appear in the viewer sidebar;
108
-
click a title to rename, hover to delete.
109
-
-**Surface** — one published card, built from an ordered list of **parts**.
110
-
Each part has a kind: `html`, `markdown`, `diff`, `terminal`, or `image`.
111
-
Combine them — e.g. a markdown rationale above a diff. `html` parts
112
-
render in a sandboxed iframe (`sandbox="allow-scripts"`, no same-origin) under
113
-
a CSP that limits external resources to a short CDN allowlist; the other kinds
114
-
are data the trusted viewer renders natively. Updating a surface creates a new
115
-
version; old versions stay viewable. A _snippet_ is sugar for a single `html`
116
-
part.
117
-
-**Comment thread** — every surface has one. You write in the browser; agents
118
-
read via long-poll (`sideshow wait` or `wait_for_feedback`) and reply. An
119
-
`html` part can also call `sendPrompt('...')` to post to its own thread.
120
-
121
-
The design contract at `/guide` tells agents how to write surfaces that fit the
122
-
viewer: fragment-only HTML, theme CSS variables, dark mode rules, and when to
123
-
reach for each part kind.
124
-
125
-
## Surface kinds
126
-
127
-
Every card below is real — published over the same API and captured straight
128
-
from the viewer. Regenerate them with `node scripts/shoot-surfaces.mjs`.
66
+
Every card below is real — published over the API and captured straight from the
67
+
viewer. A surface is an ordered list of **parts**; one card can carry several.
129
68
130
69
<table>
131
70
<tr>
132
71
<td width="50%" valign="top">
133
72
<img src="docs/surfaces/01-html.png" width="100%" alt="html part — an interactive diagram you author">
134
-
<p><b><code>html</code></b> — markup you author, rendered sandboxed. Shapes and buttons call <code>sendPrompt()</code> to post back to the thread.</p>
73
+
<p><b><code>html</code></b> — markup the agent authors, rendered sandboxed. Shapes and buttons can call <code>sendPrompt()</code> to post back to the thread.</p>
135
74
</td>
136
75
<td width="50%" valign="top">
137
76
<img src="docs/surfaces/02-markdown.png" width="100%" alt="markdown part — prose, tables and code, rendered">
@@ -170,62 +109,21 @@ from the viewer. Regenerate them with `node scripts/shoot-surfaces.mjs`.
170
109
</tr>
171
110
</table>
172
111
173
-
## Architecture
174
-
175
-
-`server/app.ts` — runtime-agnostic Hono app: REST API, SSE live feed,
0 commit comments