Skip to main content
The hosted service is at https://api.rewind.codes, with its dashboard at app.rewind.codes. Rewind is also one binary, rewind, that you can run yourself. It holds the server, the CLI, the dashboard and the TypeScript checker. Rewind is licensed under the FSL-1.1-ALv2: any use is allowed except offering it as a competing commercial service, and each version becomes Apache 2.0 two years after its release.

One server for development

1

Build the binary

You need a Rust toolchain, Node 22.12 or later and pnpm 10: the build embeds the dashboard.
2

Start the server

The master key encrypts the secrets the server stores (credentials, webhook secrets): generate it once and keep it. The admin key is the first API key, with the operator role.
The server listens on 127.0.0.1:8080, runs both roles (API and workers) in one process, and keeps everything in rewind.db and the files next to it.
3

Point the SDK at it

The dashboard is served by the same server at http://127.0.0.1:8080. Without WorkOS configured, it asks for an API key.

Options

Every option of rewind server also reads an environment variable. rewind server --help lists them all. The sandbox requires TZ=UTC: the server refuses to start otherwise.

Production

The repository’s deploy/ directory is a production-shaped deployment on one Docker host, small enough to read in one sitting: copy it and change what your platform does differently.
Workers are stateless: add more to scale. The workers can run under gVisor (the gvisor Compose profile). The deployment’s README covers configuration, upgrades across determinism epochs, backups and load tests.

The embedded server

The rewind CLI also starts a server of its own for local work, on demand, in a .rewind/ directory: Turso and local files, its API on a unix socket, no key. rewind run script.ts uses it when no --url is given. It stops after 10 minutes without work; a sleeping run resumes at the next command. See the CLI.