Rift: A Better Alternative to Git Worktrees with Instant Copy-on-Write Snapshots

Rift is a command-line tool and JavaScript FFI library that replaces Git worktrees with instant, copy-on-write snapshots. On Linux, it uses btrfs subvolumes and snapshots; on macOS, APFS clonefile. A 10GB workspace snapshot takes under 0.1 seconds.
Installation
npm install -g rift-snapshot
# or
bun add -g rift-snapshotRelease archives are available on GitHub.
Supported Platforms
- Linux x64: Writable btrfs snapshots.
rift initconverts an ordinary directory into a btrfs subvolume. - macOS arm64 / x64: APFS clonefile.
rift initregisters the source directory. - Windows x64: Package published but workspace creation not yet implemented.
CLI Usage
Initialize in your project root:
cd ~/code/app
rift initrift init picks the nearest Git root. Use --here to force the exact directory. On Linux, it converts to a btrfs subvolume with reflink import.
Create a workspace snapshot:
rift create --name parser-fix
rift create --into /fast/riftsThe new workspace has detached HEAD in a Git repo, preserving index and working tree.
List and manage:
rift list
rift ancestors
rift remove
rift gcrift remove moves the workspace to an adjacent .trash folder. rift gc physically deletes trashed data.
Shell Integration
eval "$(rift shell-init zsh)"
# or bashThis changes directory automatically after init, create, or remove.
Storage Layout
~/code/app/ # source workspace
~/code/.rifts/app/parser-fix/ # created workspace
~/code/.rifts/app/.trash/ # removed workspaceEach managed workspace has a .rift marker; an SQLite registry tracks paths and parents.
JavaScript API
Supports Bun and Node.js (requires Node 26.1+ with --experimental-ffi).
import { create, list, remove, gc } from 'rift-snapshot';
const workspace = create({ from: process.cwd(), name: 'schema-work' });
console.log(list({ of: process.cwd() }));
remove({ at: workspace });
gc();
Functions: init, create, remove, list, ancestors, gc. Options include at, name, into, database.
Rift is experimental — APIs may change. Works on Linux and macOS only for now.
📖 Read the full source: HN LLM Tools
👀 See Also

Flash-MOE Benchmark on M5 Max: 12.99 tok/s with Qwen3.5-397B
A benchmark of the 397-billion-parameter Qwen3.5 model running locally on a MacBook Pro M5 Max with 128GB RAM achieved 12.99 tokens per second using 4-bit quantization and cache-io-split 4, three times faster than the original 48GB benchmark.

Offline-web-search: A Local Google Search Alternative for AI Agents
A developer built offline-web-search to address poor offline search capabilities in AI agents, creating a drop-in replacement that mimics Claude's web tools with BM25 ranking, SQLite FTS5 indexing, and support for ZIM archives and custom crawlers.

Claude Code Karma: Local Observability Dashboard for Claude Code Sessions
Claude Code Karma is an open-source local dashboard that parses JSONL files from ~/.claude/ to visualize Claude Code session data, track tool usage, and monitor silent failures. Built with FastAPI, Svelte-Kit 2, Svelte 5, and SQLite, it provides full session timelines and live tracking.

Four Free Claude Code Skills for Prompt Clarity, Tutorials, and Bug Hunting
Four Apache 2.0, no-paid-tier Claude Code skills: prompter (prompt rewriting), tutorial-creator (annotated code walkthroughs), bug-echo (post-fix anti-pattern sweep), and bug-prospector (pre-release audit with 7 analysis lenses).