Skip to content

Install

zoetrope runs two ways: a terminal app you install, or the same portable core compiled to WebAssembly and running in your browser. The browser app needs no install at all.

The fastest way to try zoetrope is the browser app: it loads a demo session on open, and from there you can browse your own sessions or drop in a transcript.

It runs entirely on your machine (it’s WebAssembly served as a static page); your transcripts are never uploaded. See Usage & keys for the controls, which are identical to the native app.

crates.io gets one crate, zoetrope, and it installs one command, zoe:

Terminal window
cargo install zoetrope

Or build from source:

Terminal window
git clone https://github.com/furkankly/zoetrope zoetrope
cd zoetrope
cargo build --release
# binary at ./target/release/zoe
  • A recent stable Rust toolchain (rustup recommended).
  • A terminal that supports truecolor and mouse events (most modern terminals do).

The browser frontend isn’t part of the published crate — it’s a separate, unpublished crate, zoetrope-web, that only builds for wasm32, so it’s excluded from the root workspace and no root cargo command touches it. It lives with this site under web/ (the crate itself in web/wasm/), and is compiled to wasm by trunk and served through Astro:

Terminal window
cd web
pnpm install
pnpm build # builds the wasm, then the static site → web/dist/
pnpm dev # or: run the dev server at http://localhost:4321

You’ll need the wasm32-unknown-unknown target (rustup target add wasm32-unknown-unknown) and trunk (cargo install trunk). pnpm build:wasm (that is, bash scripts/build-wasm.sh) builds only the wasm; lint it from the repo root with cd web/wasm && cargo clippy — that crate’s .cargo/config.toml defaults the target to wasm32, so no flags are needed.

Early and pre-release. It’s usable for dogfooding your own sessions, but the keys, CLI, and the on-disk format it reads may still shift. If something looks wrong, please open an issue.