Funktionen

Jeder Agent in seiner eigenen Kopie, sofort

Was du davon hast

Jeder Agent arbeitet in einem eigenen Workspace mit deinem aktuellen Stand: geänderte, gestagte und neue Dateien eingeschlossen. Dein Checkout, dein HEAD und dein Git-Index bleiben unberührt. Viele Agenten arbeiten parallel am selben Repository. Jeder liefert einen Commit, den du prüfst und übernimmst.

Vorher und nachher

Du arbeitest an serde und hast drei geänderte Dateien und eine neue Datei PLAN.md, nichts davon committet. Die Aufgabe: Ein zweiter Agent soll mit genau diesem Stand arbeiten, ohne dir in den Checkout zu schreiben.

Ohne greppy

Mit Git baust du die Kopie von Hand: Worktree anlegen, Änderungen übertragen, neue Dateien finden und kopieren.

$ git worktree add --detach ../agent-1
Preparing worktree (detached HEAD 7fc3b4c)
HEAD is now at 7fc3b4c Release 1.0.229
$ git diff HEAD | git -C ../agent-1 apply && git -C ../agent-1 status --short
 M README.md
 M serde/src/lib.rs
 M serde_core/src/private/size_hint.rs
$ git ls-files --others --exclude-standard
PLAN.md
$ cp PLAN.md ../agent-1/ && git -C ../agent-1 status --short
 M README.md
 M serde/src/lib.rs
 M serde_core/src/private/size_hint.rs
?? PLAN.md

Du brauchst vier Befehle pro Agent, bevor er anfängt. Sein Ergebnis landet als Branch in diesem Worktree, den du selbst zusammenführst und aufräumst.

Mit greppy

greppy -p "AUFGABE" legt den Workspace selbst an. Denselben Workspace legt greppy index --agent-worktree vorab an und wärmt seinen Index, so siehst du, was der Agent bekommt.

$ greppy index --agent-worktree
…
store mode: overlay (Base 61d1f6b54eac, reused)
…
indexed Delta generation 1: 4 changed/deleted paths, 9 private nodes (project: serde)
$ greppy workspace status
agent workspace ready (ordinary backend; provider inactive); 0 workspace(s), 378 chunks, 1575696 physical bytes

Der Workspace enthält alle vier offenen Pfade und übernimmt den geteilten Index; neu indiziert werden nur diese vier.

ohne greppy mit greppy
Befehle, bis die Kopie steht 4 0, greppy -p legt sie an
Offene Pfade in der Kopie 4 von 4, von Hand übertragen 4 von 4, automatisch
Index der Kopie keiner geteilte Base, 4 Pfade im eigenen Delta
Ergebnis Branch im Worktree Commit unter refs/greppy/agent/<run-id>

So funktioniert es

greppy hält den Stand deines Repositorys in einem Blockspeicher: Dateien in Blöcken bis 1 MiB, adressiert über ihren BLAKE3-Hash, die Verwaltung in SQLite im WAL-Modus. Jeder Workspace bekommt deinen Commit plus alles, was du geändert, gestagt oder neu angelegt hast; ignorierte Dateien bleiben draußen. Gespeichert wird nur, was neu ist: Ein weiterer Workspace mit demselben Stand legte 0 neue Blöcke an, einer mit einer zusätzlich geänderten Datei 6 neue Blöcke mit zusammen 54.340 Byte. Git-Objekte liest der Workspace gemeinsam mit deinem Repository; Index, Refs und neue Commits bleiben privat. Mit aktivem Provider (FSKit auf macOS, FUSE3 auf Linux, eingerichtet mit greppy workspace setup) bindet greppy den Workspace per Copy-on-Write ein. Ohne Provider legt es private Verzeichnisse an, mit demselben Ablauf und demselben Ergebnis. Am Ende steht ein Commit unter refs/greppy/agent/<run-id>. Sein Elternteil ist dein Stand samt offener Änderungen, der Commit enthält also genau die Arbeit des Agenten. Ist er gespeichert, räumt greppy den Workspace weg.

Die Befehle

Befehl was er tut
greppy -p "AUFGABE" startet den Agenten in einem eigenen Workspace mit deinem Stand; das Ergebnis ist ein Commit unter refs/greppy/agent/<run-id>
greppy index --agent-worktree legt den Workspace des Agenten vorab an und wärmt seinen Index
greppy workspace status Workspaces, Blockspeicher und Provider auf einen Blick
greppy workspace setup richtet den Copy-on-Write-Provider ein
git show refs/greppy/agent/<run-id> den Commit des Agenten prüfen
greppy agent apply REF übernimmt genau die Änderungen des Agenten; dein Git-Index bleibt byte-gleich
git cherry-pick -n REF übernehmen mit reinem Git

Mehr in der Doku