Pointbreak Review publishes prebuilt pointbreak binaries for macOS, Linux, and Windows. The install
scripts select the archive for the current platform and verify it against the release's
checksums.txt before writing the binary.
Install the latest release into ~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/withpointbreak/pointbreak/main/scripts/install.sh | shIf ~/.local/bin is not already in PATH, the installer prints a command for your current shell and
names the appropriate zsh or bash configuration file for a permanent change. Run the command, then
verify the result:
pointbreak --versionThe script also supports wget when run from a local checkout.
Pass installer options after sh -s --:
curl -fsSL https://raw.githubusercontent.com/withpointbreak/pointbreak/main/scripts/install.sh \
| sh -s -- --version=v0.7.0 --prefix="$HOME/bin"--version accepts a release with or without its leading v. The default is the latest published,
non-prerelease GitHub release. --prefix names the directory that will contain pointbreak.
Install the latest release into %LOCALAPPDATA%\Pointbreak\bin:
irm https://raw.githubusercontent.com/withpointbreak/pointbreak/main/scripts/install.ps1 | iexThe installer adds that directory to your user PATH when necessary. Restart the terminal before
running:
pointbreak --versionTo pin a version, choose another install directory, or leave PATH unchanged, invoke the downloaded
script as a script block:
$Install = [scriptblock]::Create((irm https://raw.githubusercontent.com/withpointbreak/pointbreak/main/scripts/install.ps1))
& $Install -Version v0.7.0 -InstallDir "$HOME\bin" -NoModifyPathOnce pointbreak --version reports the installed release, go straight to a first useful Review:
make a real change to a tracked file in one of your repositories, capture it with a useful summary,
and open Review:
pointbreak capture --summary "<what changed>"
pointbreak inspect --openGetting started continues from here through the complete paired author/reviewer loop. The sections below cover installer options, checksum verification, supported platforms, and manual downloads; return to them when you need them.
Current Pointbreak builds enable the private sqlite-wal-bodyless-v1 derived-access profile when
POINTBREAK_DERIVED_ACCESS is unset. Loose Journal and ContentStore bytes remain the sole authority; the
SQLite state is bodyless, disposable, and rebuildable. Set POINTBREAK_DERIVED_ACCESS=off for immediate,
artifact-free rollback before starting Pointbreak. This is also the safe runtime posture before temporarily
using an older binary that does not understand the current derived layout.
The stable derived/ container lives directly beneath the exact resolved authoritative store root. A
clone-local, ephemeral, or user-level family store therefore owns its corresponding sidecar. An existing
legacy .pointbreak-derived/ namespace remains readable and is moved to the stable namespace only when its
generation and sibling lock/lease state can transition safely; the move does not replay or rewrite truth.
Use the lifecycle commands against the repository whose store you intend to inspect:
pointbreak store derived status --repo <path>
pointbreak store derived build --repo <path>
pointbreak store derived rebuild --repo <path>status is read-only. build synchronously creates or repairs a generation only when needed, while
rebuild always stages and publishes a replacement generation. Build and rebuild may scan the complete
event history, so they can take substantial time on a large store; cancellation or failure preserves loose
truth and any previously valid generation.
If both derived/ and the legacy namespace exist, text status identifies both local paths. Inspect them,
retain one disposable copy and move the other aside, then retry. Pointbreak never chooses, merges, deletes,
or labels either copy authoritative. If derived state is absent or unavailable, bounded CLI reads fall back
to loose truth with one actionable hint, writes still publish loose truth, and Inspector can build in the
background.
The rollout and lifecycle have native qualification on macOS/APFS and Windows/NTFS. Linux remains covered by the normal compile and CI lanes; retained-scale Linux behavior has not been separately measured.
On Windows, derived acceleration needs an active NTFS USN change journal on the volume that holds the
store. The journal is how Pointbreak proves that nothing changed its authoritative events/ directory
since the derived generation last caught up. System volumes such as C: normally have a journal.
Secondary, removable, and ephemeral volumes may not, for example a cloud VM's temporary disk.
What Pointbreak reads, and only reads:
- It makes two read-only control calls,
FSCTL_QUERY_USN_JOURNALfor the journal's identity and position andFSCTL_READ_UNPRIVILEGED_USN_JOURNALfor the records since its saved position. - Both go through a read-only handle to the volume's root directory opened with backup semantics, not raw volume access. Neither call needs administrator rights.
- Each check reads at most 1 MiB of records. A longer interval is reported as unproven, and the generation is rechecked instead of trusted.
- The unprivileged read strips file names, so Pointbreak never learns the names of other files on the
volume. It matches parent-directory references against its own
events/directory only. - Pointbreak never creates, deletes, resizes, or configures a journal.
When the volume has no active journal, derived access is unavailable and every read uses the
authoritative path instead. It is not retried, because it lasts until an administrator acts.
pointbreak store derived status reports it as "availability": "unavailable" with
"reason": "journal_unavailable", and its detail names the volume and both remedies.
To keep acceleration, an administrator creates a journal on that volume. The maximum size and allocation
delta are in bytes. Copying the values fsutil usn queryjournal C: reports for the system volume is a
reasonable default.
# Elevated PowerShell or Command Prompt
fsutil usn queryjournal D:
fsutil usn createjournal m=<size> a=<delta> D:Once the journal exists, pointbreak store derived status stops reporting journal_unavailable, even in
a process that was already running. Reads keep using the authoritative path until a generation is built,
so run pointbreak store derived build to resume acceleration.
To run without the journal instead, turn derived access off:
$env:POINTBREAK_DERIVED_ACCESS = "off"With derived access off, Pointbreak makes no journal reads at all. Every read uses the authoritative journal and content store, which is slower on large stores but always correct.
Verification is on by default and fails closed. The installer stops without replacing pointbreak if:
checksums.txtcannot be downloaded;- the selected archive has no valid entry;
- SHA-256 tooling is unavailable on macOS or Linux; or
- the downloaded archive's checksum does not match.
You can bypass verification explicitly with --no-verify on macOS or Linux, or -NoVerify on
Windows. This is intended for exceptional situations where you have verified the archive another
way.
To inspect a script before running it:
curl -fsSL -o install.sh https://raw.githubusercontent.com/withpointbreak/pointbreak/main/scripts/install.sh
less install.sh
sh install.shOn Windows:
irm https://raw.githubusercontent.com/withpointbreak/pointbreak/main/scripts/install.ps1 -OutFile install.ps1
Get-Content .\install.ps1
.\install.ps1The published crate is named pointbreak and installs the pointbreak command:
cargo install pointbreak
pointbreak --versionThis path builds from source and requires a current Rust toolchain. The release installers do not.
Release 0.7.0 is a one-release hard cutover. Before its first use:
-
Stop every process that can write Review state.
-
Move owner-controlled state and config offline, preserving the directory contents:
pre- 0.7.0operational location0.7.0location<repo>/.shore/<repo>/.pointbreak/<git-common-dir>/shore/<git-common-dir>/pointbreak/<git-common-dir>/shore.link.json<git-common-dir>/pointbreak.link.json$XDG_DATA_HOME/shore$XDG_DATA_HOME/pointbreak$HOME/.shore$HOME/.pointbreak%APPDATA%\shore%APPDATA%\pointbreakMove a linked clone's shared common-directory store once, not once per worktree. If you set an explicit user home, move that directory to the location now selected by
POINTBREAK_HOME. -
Update environment and configuration references to the canonical
POINTBREAK_*names and Pointbreak paths. -
Run
pointbreak store paths --repo <path> --format jsonto confirm the canonical repository, common-directory, binding, home, and key locations, then verify readback with commands such aspointbreak revision listandpointbreak history.
Rollback is the inverse filesystem move performed while writers remain stopped. Pointbreak provides
no runtime fallback, compatibility alias, automatic migration, migration CLI, or dual read/write
window. The reserved pointbreak store migrate syntax describes an older Pointbreak store-topology
change; it does not perform this 0.7.0 namespace cutover and is fail-closed while exact Change
store transfer is unavailable.
| Target | Operating system | Architecture | Archive |
|---|---|---|---|
darwin-x64 |
macOS | Intel 64-bit | .tar.gz |
darwin-arm64 |
macOS | Apple silicon | .tar.gz |
linux-x64 |
Linux (glibc) | x86-64 | .tar.gz |
linux-arm64 |
Linux (glibc) | ARM64 | .tar.gz |
alpine-x64 |
Linux (musl/Alpine) | x86-64 | .tar.gz |
alpine-arm64 |
Linux (musl/Alpine) | ARM64 | .tar.gz |
win32-x64 |
Windows | x86-64 | .zip |
win32-arm64 |
Windows | ARM64 | .zip |
The macOS/Linux installer requires tar, plus either curl or wget, and either sha256sum or
the macOS-provided shasum. The Windows installer uses built-in PowerShell archive and hashing
commands.
Download the archive for your target and checksums.txt from the
GitHub releases page. For example, on Apple
silicon macOS:
VERSION=0.7.0
TARGET=darwin-arm64
ARCHIVE="pointbreak-${VERSION}-${TARGET}.tar.gz"
BASE="https://github.com/withpointbreak/pointbreak/releases/download/v${VERSION}"
curl -fsSLO "${BASE}/${ARCHIVE}"
curl -fsSLO "${BASE}/checksums.txt"
grep " ${ARCHIVE}$" checksums.txt | shasum -a 256 -c -
tar -xzf "$ARCHIVE"
install -m 0755 pointbreak "$HOME/.local/bin/pointbreak"On Linux, replace shasum -a 256 with sha256sum. Windows archives contain pointbreak.exe and can be
verified with Get-FileHash -Algorithm SHA256 before using Expand-Archive.
Archives downloaded with curl on macOS normally need no quarantine adjustment. If a browser adds
the quarantine attribute, remove it from the extracted binary with:
xattr -d com.apple.quarantine ./pointbreak