Pitch
opencode parity. `/share` exports the current session as a static HTML page:
- Uploads to a configurable static-file backend (S3 / Cloudflare R2 / GitHub Gist via gh CLI).
- Returns a public URL the user can paste into Slack / GitHub / Twitter.
- Default redaction: strips API keys, env vars, file contents above N KB, anything that looks like a secret.
- Permanent option: keep until explicit `/share revoke `. Default: 7-day TTL.
Why we want this: the strongest case for any coding agent is "look at what it just did". A clickable URL beats a screenshot every time.
Implementation sketch
- New `crates/tui/src/share.rs`. Renders the session as static HTML using the same transcript renderer (existing wrapping / styling).
- Backends behind a trait so users can plug in their own.
- Default backend: GitHub gist via `gh gist create` (we already require gh CLI for the github_* tools).
- Settings: `[share] backend = "gist"`, `redact = ["api_key", "DEEPSEEK_API_KEY"]`.
Acceptance
Pitch
opencode parity. `/share` exports the current session as a static HTML page:
Why we want this: the strongest case for any coding agent is "look at what it just did". A clickable URL beats a screenshot every time.
Implementation sketch
Acceptance