/projects/rewind   //   local-first version control

development history without the Git ceremony.

A version control system built around the development process itself: continuous checkpoints, clean finished history, provenance, integrity, and recovery when the experiment goes sideways.

REWIND // SESSION 0042
$ rewind note "parser working"
recorded revision r:8f31
$ rewind note "diagnostics cleaned up"
recorded revision r:8f32
$ rewind finish "parser diagnostics"
finished f:19 // 2 revisions
$ rewind trace src/parser.rs
history found. provenance preserved.

Commits preserve milestones.
Rewind preserves development.

Between two clean commits may be dozens of meaningful states: experiments, partial implementations, debugging attempts, refactors, generated changes, AI-assisted edits, mistakes, and working versions you later wish you had kept.

Rewind treats those intermediate states as useful history without forcing every checkpoint to pretend it is a finished unit of work.

“Make history follow the work instead of making the work follow the history.”

Two levels of history.
One small vocabulary.

Notes preserve the detailed trail. Finishes describe what was ultimately accomplished. You get readable project history without throwing away how you got there.

01 // NOTErewind note "validation works"

Capture the current project state while the work is still evolving.

02 // FINISHrewind finish "add validation"

Close the work as a completed piece while retaining its revisions underneath.

03 // REWINDrewind recover <id>

Return to recorded history when the path you took is no longer the path you want.

$ rewind log
f:19   parser diagnostics
f:18   lexer cleanup
f:17   source spans

$ rewind log --revisions
f:19
  ├─ r:8f31  parser working
  └─ r:8f32  diagnostics cleaned up

Built around history,
not around an inherited format.

Chronicle is Rewind's purpose-built storage direction. Durable history records are the source of truth; indexes and acceleration structures are rebuildable. Optimization can change without changing what the repository means.

The format direction uses a Rewind-owned binary wire representation rather than making JSON or a language-specific serializer authoritative. That leaves compatibility, validation, deterministic representation, migration, and future evolution under Rewind's control.

SOURCE OF TRUTH

Chronicle frames preserve the history that actually happened.

REBUILDABLE STATE

Anchors, indexes, and acceleration data can be reconstructed from authoritative history.

Don't just keep history.
Know where code came from.

rewind trace <file> follows provenance through current and historical line attribution, revision-level history, and rename-following. The goal is to answer not only what changed, but where a piece of code originated and how it survived.

$ rewind trace src/parser.rs
42 │ r:8f31 │ parser working
43 │ r:8f32 │ diagnostics cleaned up
44 │ f:19   │ parser diagnostics

rewind undo handles the immediate working state. rewind recover <id> handles recorded history. Current mistakes and historical recovery are deliberately different operations.

Checking history should
never rewrite history.

rewind check performs read-only reachable-history integrity verification. Full verification can additionally inspect unreachable loose objects, inactive packs, and garbage without treating valid unreachable data as corruption.

Integrity checking does not silently repair, migrate, prune, sync, or upgrade the repository. A verification command should be trustworthy precisely because it does not change the thing it is verifying.

Rewind remembers how.
Git can publish what mattered.

REWIND // DEVELOPMENT

Continuous checkpoints, experiments, detailed revisions, provenance, recovery, and local development history.

GIT // COLLABORATION

Clean commits, remotes, pull requests, collaboration, releases, and public project history.

Rewind does not need to recreate every Git command to be useful. Its core question is narrower: what should version control look like when development history itself is the primary object?

Every command needs
a reason to exist.

rewind newstart
rewind statuscurrent state
rewind diffwhat changed
rewind notecapture progress
rewind finishcomplete work
rewind loghistory
rewind undoundo current changes
rewind recoverrecover history
rewind traceprovenance
rewind checkintegrity
rewind helphelp
rewind versionversion

Less ceremony.
More useful history.

01

Lean architecture

Converge the internals around the final Rewind model and remove transitional machinery that no longer earns its place.

02

History experience

Make movement between finished work, detailed revisions, provenance, and recovery increasingly natural.

03

Parallel work

Explore a Rewind-native model for simultaneous lines of development without blindly reproducing conventional branch semantics.

04

Terminal presentation

Keep history, diffs, trace output, recovery information, and errors readable as repositories grow.

/end_of_history

AND WHEN SOMETHING GOES WRONG — REWIND.