Rift : Une meilleure alternative aux worktrees Git avec des instantanés instantanés par copie sur écriture

Rift est un outil en ligne de commande et une bibliothèque FFI JavaScript qui remplace les worktrees Git par des snapshots instantanés en copy-on-write. Sous Linux, il utilise les sous-volumes et snapshots btrfs ; sous macOS, clonefile APFS. Un snapshot d'espace de travail de 10 Go prend moins de 0,1 seconde.
Installation
npm install -g rift-snapshot
# ou
bun add -g rift-snapshotLes archives de version sont disponibles sur GitHub.
Plateformes supportées
- Linux x64 : snapshots btrfs accessibles en écriture.
rift initconvertit un répertoire ordinaire en sous-volume btrfs. - macOS arm64 / x64 : clonefile APFS.
rift initenregistre le répertoire source. - Windows x64 : paquet publié mais la création d'espace de travail n'est pas encore implémentée.
Utilisation en CLI
Initialisez dans la racine de votre projet :
cd ~/code/app
rift initrift init choisit la racine Git la plus proche. Utilisez --here pour forcer le répertoire exact. Sous Linux, il le convertit en sous-volume btrfs avec import reflink.
Créez un snapshot d'espace de travail :
rift create --name parser-fix
rift create --into /fast/riftsLe nouvel espace de travail a un HEAD détaché dans un dépôt Git, préservant l'index et l'arbre de travail.
Listez et gérez :
rift list
rift ancestors
rift remove
rift gcrift remove déplace l'espace de travail vers un dossier .trash adjacent. rift gc supprime physiquement les données mises à la corbeille.
Intégration shell
eval "$(rift shell-init zsh)"
# ou bashCela change automatiquement de répertoire après init, create ou remove.
Structure de stockage
~/code/app/ # espace de travail source
~/code/.rifts/app/parser-fix/ # espace de travail créé
~/code/.rifts/app/.trash/ # espace de travail suppriméChaque espace de travail géré a un marqueur .rift ; une base SQLite enregistre les chemins et les parents.
API JavaScript
Support de Bun et Node.js (nécessite Node 26.1+ avec --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();
Fonctions : init, create, remove, list, ancestors, gc. Options incluent at, name, into, database.
Rift est expérimental — les API peuvent changer. Fonctionne seulement sur Linux et macOS pour l'instant.
📖 Lire la source complète : HN LLM Tools
👀 See Also

Couche de Routage Contextuel Réduit l'Utilisation de Tokens de Code de Claude en Suivant les Fichiers Accédés
Un développeur a économisé environ 80 $ par mois sur l'utilisation de Claude Code en ajoutant une couche de routage contextuel qui empêche l'IA de relire les mêmes fichiers du dépôt lors des tours suivants. L'outil suit les fichiers déjà consultés pour réduire la consommation redondante de tokens.

Recherche sémantique locale pour conversations IA avec fastembed et LanceDB
Un développeur a indexé localement 368 000 messages de conversation IA en utilisant fastembed pour les embeddings basés sur CPU et LanceDB comme base de données vectorielle serverless, obtenant une latence de recherche p50 de 12 ms sans clés API.

Phaselock : Un système de contrôle d'agent IA inspiré des techniques parentales
Phaselock est une compétence d'agent open-source qui implémente quatre mécanismes de contrôle pour les agents d'IA de codage : des portes explicites avant l'action, un retour immédiat sur les erreurs, des choix contraints et l'application mécanique de règles. Il fonctionne avec Claude Code, Cursor, Windsurf et tout outil prenant en charge les hooks.

PromoClock : Suiveur de fuseaux horaires pour les heures creuses 2x de Claude, développé avec Claude 4.6
Un développeur a créé PromoClock.co, un outil gratuit qui convertit automatiquement les heures promotionnelles hors pointe de Claude « 5-11h PT / 12-18h GMT » en heure locale, utilisant Claude 4.6 pour la logique des fuseaux horaires, une configuration Next.js 15 et la conception de l'interface utilisateur.