Skip to content

Commit 040a07e

Browse files
committed
demo cleanup: drop obsolete scripted demos; the real Claude Code GIF is the hero
Removes the shell-scripted demos and headless recorders that the real Claude Code self-rollback GIF (docs/claude-rewind.gif) now supersedes: examples/demo/ (killer-demo + self-rollback-demo + README) scripts/make-demo-gif.sh, scripts/make-claude-gif.sh, scripts/_claude-gif-inner.sh, scripts/rewindable-claude.sh docs/demo.{cast,gif}, docs/self-rollback.{cast,gif} Makefile 'demo' target Updates README/CHANGELOG/docs/README/Makefile to point at the new GIF and the TUI recorder (scripts/record-claude-tui.sh).
1 parent bd68a04 commit 040a07e

19 files changed

Lines changed: 634 additions & 527 deletions

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,27 @@ All notable changes to this project are documented here. The format is based on
44
[Keep a Changelog](https://keepachangelog.com/), and the project aims to follow
55
[Semantic Versioning](https://semver.org/).
66

7+
## [Unreleased]
8+
9+
### Added
10+
- New README hero GIF: real Claude Code, running inside `rewindable-claude`,
11+
deletes its own binary then calls `agentenv__checkout` MCP tool to roll the
12+
whole environment back — the binary is restored, the Claude session keeps
13+
running. The one demo `git` can't reproduce.
14+
- `scripts/record-claude-tui.sh` + `scripts/fetch-recording-tools.sh` +
15+
`scripts/Dockerfile.recorder`: apt-free recording pipeline (static
16+
`asciinema` v3 + `agg` + a bundled monospace TTF; `agg --font-dir` covers
17+
Claude TUI's box-drawing glyphs via a DejaVu fallback). Recorder image is a
18+
pure `COPY` over `rewindable-claude` — seconds to build.
19+
20+
### Removed
21+
- Obsolete shell-scripted demos and recorders that the real Claude Code GIF
22+
supersedes: `examples/demo/` (killer-demo + self-rollback-demo + README),
23+
`scripts/make-demo-gif.sh`, `scripts/make-claude-gif.sh`,
24+
`scripts/_claude-gif-inner.sh`, `scripts/rewindable-claude.sh`,
25+
`docs/demo.{cast,gif}`, `docs/self-rollback.{cast,gif}`,
26+
Makefile `demo` target.
27+
728
## [0.2.0] - 2026-06-16
829

930
The "agent rolls back itself" release: an agent can now explore, undo, and

Makefile

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88
# make vet gofmt check + go vet
99
# make verify-rootless end-to-end rootless E2E (Docker on macOS)
1010
# make verify-btrfs end-to-end privileged btrfs E2E (Docker, --privileged)
11-
# make demo record and re-render the README GIF
1211
# make dev-shell drop into a persistent dev container (fast inner loop)
1312
# make clean remove built artifacts
1413

1514
GOOS_LINUX ?= linux
1615
GOARCH ?= $(shell uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/;s/arm64/arm64/')
1716
GOPROXY ?= $(shell go env GOPROXY)
1817

19-
.PHONY: help build test vet verify-rootless verify-btrfs verify-supervise verify-mcp verify-rollback demo dev-shell dev-shell-stop clean
18+
.PHONY: help build test vet verify-rootless verify-btrfs verify-supervise verify-mcp verify-rollback dev-shell dev-shell-stop clean
2019

2120
help:
2221
@awk 'BEGIN{FS=":.*##"; printf "Targets:\n"} /^[a-zA-Z_-]+:.*##/ { printf " %-22s %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
@@ -67,9 +66,6 @@ verify-rollback: ## MCP-driven end-to-end rollback (asserts files actually rever
6766
--security-opt seccomp=unconfined --security-opt apparmor=unconfined \
6867
agentenv-rollback-smoke
6968

70-
demo: ## record and re-render docs/demo.gif (the README GIF)
71-
bash scripts/make-demo-gif.sh
72-
7369
# --- Persistent dev container: fast inner loop on macOS -----------------------
7470
# `make dev-shell` starts (or reattaches to) a long-running container with the
7571
# source bind-mounted; rebuilds and verifies inside are seconds (no setup tax).

README.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ The environment versions itself automatically (zero agent intrusion), can roll
1010
back to **any node**, and can **branch** so an agent explores several approaches in
1111
parallel branches and keeps the winner.
1212

13-
![agentenv demo: whole-environment rollback + branch exploration](./docs/demo.gif)
13+
![Claude Code deletes its own binary, then rolls the environment back via MCP and recovers it](./docs/claude-rewind.gif)
1414

15-
> The agent deletes `/usr/local/bin/greet`, corrupts `/etc/motd`, and `rm -rf`s the
16-
> project — one `agentenv checkout` brings *all of it* back. Then three candidate
17-
> branches are explored from the same base; the one that passes is kept.
18-
> Recorded as **uid 1001, no `--privileged`** (the restricted-pod case).
15+
> Real Claude Code, running inside agentenv: it deletes `/usr/local/bin/claude`
16+
> (its own binary, system-wide — `git` cannot undo this), then calls the
17+
> `agentenv__checkout` MCP tool to roll the WHOLE environment back, and the
18+
> binary is restored. The Claude session itself keeps running throughout.
19+
> Reproducible from [`examples/claude-code/`](./examples/claude-code/); re-record
20+
> the GIF with [`scripts/record-claude-tui.sh`](./scripts/record-claude-tui.sh).
1921
20-
See [`DESIGN.md`](./DESIGN.md) for the architecture, and
21-
[`examples/demo/`](./examples/demo/) for the demo (one command).
22-
Re-record the GIF with [`scripts/make-demo-gif.sh`](./scripts/make-demo-gif.sh).
22+
See [`DESIGN.md`](./DESIGN.md) for the architecture.
2323

2424
## Install
2525

@@ -234,7 +234,6 @@ The core E2E suite (auto-capture, rollback, branch tournament) is in
234234
make verify-rootless # rootless E2E: uid 1001, no --privileged
235235
make verify-supervise # supervise + out-of-band ctl rollback
236236
make verify-btrfs # privileged btrfs path (-tags btrfs)
237-
bash examples/demo/killer-demo.sh # narrated branch-exploration demo
238237
```
239238

240239
The MCP path has its own dedicated harness under `verify/docker/`:
@@ -280,9 +279,10 @@ internal/image seed-from-dir / extract-tarball, portable
280279
internal/watch inotify recursive watcher
281280
internal/btrfs btrfs SDK wrapper (cgo, -tags btrfs only)
282281
scripts/ verify-rootless.sh, verify.sh, verify-supervise.sh,
283-
make-demo-gif.sh, agentenv-entrypoint.sh
282+
agentenv-entrypoint.sh; record-claude-tui.sh +
283+
fetch-recording-tools.sh + Dockerfile.recorder (GIF tooling)
284284
verify/docker/ mcp-smoke.sh, rollback-smoke.sh, claude-shell-*
285-
examples/ demo/, k8s/, branch_explore.py, goclient/, Client.java
285+
examples/ claude-code/, k8s/, branch_explore.py, goclient/, Client.java
286286
```
287287

288288
## Developing on macOS / Windows
@@ -309,7 +309,6 @@ make vet # gofmt check + go vet
309309
make verify-rootless # full E2E: rootless / uid 1001 / no --privileged
310310
make verify-btrfs # full E2E: privileged btrfs path (-tags btrfs)
311311
make verify-supervise # supervise + ctl rollback end-to-end
312-
make demo # re-record + re-render docs/demo.gif
313312
make dev-shell # drop into a persistent Linux dev container (fast iteration)
314313
```
315314

docs/README.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
# docs/
22

3-
Shareable assets — these are reproducible from the source:
3+
Shareable assets:
44

5-
- `demo.cast` — asciinema recording of `examples/demo/killer-demo.sh`
6-
- `demo.gif` — same cast rendered to GIF (embedded at the top of the main README)
5+
- `claude-rewind.cast` — asciinema recording of a real Claude Code session
6+
(running inside the `rewindable-claude` image) deleting its own binary,
7+
then calling the `agentenv__checkout` MCP tool to roll the WHOLE environment
8+
back, and the binary returns.
9+
- `claude-rewind.gif` — same cast rendered to GIF, embedded at the top of the
10+
main README.
711

8-
To re-record both, run:
12+
Recording requires a real terminal (the interactive Claude Code TUI does not
13+
render without a TTY). To re-record:
914

1015
```sh
11-
bash scripts/make-demo-gif.sh
16+
bash scripts/fetch-recording-tools.sh # one-time
17+
docker build --platform=linux/$(uname -m) -f scripts/Dockerfile.recorder \
18+
-t rewindable-claude-rec scripts/ # one-time
19+
ANTHROPIC_API_KEY=... [ANTHROPIC_BASE_URL=...] [ANTHROPIC_MODEL=...] \
20+
bash scripts/record-claude-tui.sh # each time
1221
```
1322

14-
The script does everything inside Docker (installs asciinema + downloads agg,
15-
builds agentenv, runs the demo as **uid 1001 with no `--privileged`** to mirror a
16-
restricted Kubernetes pod, then renders the cast to a GIF).
23+
See `scripts/record-claude-tui.sh` for the prompt suggestions.

0 commit comments

Comments
 (0)