Free · Rust · Tauri · v0.1 Alpha

Stop branching.
Start weaving.
Deja las ramas.
Empieza a tejer.

A version control system for the age of AI agents. Patches, not snapshots. Deterministic merges. N agents in parallel — no conflicts, no stash, no branch hell. Un sistema de control de versiones para la era de los agentes IA. Patches, no snapshots. Merges determinísticos. N agentes en paralelo — sin conflictos, sin stash, sin infierno de ramas.

Download for free — native app Descarga gratis — app nativa
Free to useGratis ~14 MB macOS 12+ · Win 10+ · Ubuntu 20+
gitweave — ~/projects/api-hercules
gw init
Initialized patch store in .gw/
 
gw slot --name feature-auth --agent claude-1
WorkSlot id=a3f7c2 agent=claude-1
gw slot --name bugfix-routes --agent claude-2
WorkSlot id=b8e1d4 agent=claude-2
 
gw merge a3f7c2 b8e1d4
Hunk intersection: — merged instantly 14ms
 
gw release v1.2.0 && gw push origin
Patch set frozen → git export → pushed

The problem with GitEl problema de Git

Git tracks states.
It should track changes.
Git guarda estados.
Debería guardar cambios.

Git's branch model made sense in 2005 — one developer, working in series. Today you have teams, CI bots, and AI agents all touching the same codebase in parallel. GitFlow is bureaucracy masquerading as process. El modelo de ramas de Git tenía sentido en 2005 — un desarrollador trabajando en serie. Hoy tienes equipos, bots de CI y agentes IA tocando el mismo codebase en paralelo. GitFlow es burocracia disfrazada de proceso.

Git + GitFlow

The branch/merge ceremonyLa ceremonia de ramas

  • Branch from develop — immediately divergesRama desde develop — diverge de inmediato
  • Work for days, merge conflicts pile upTrabajas días, los conflictos se acumulan
  • Stash, rebase, cherry-pick hellStash, rebase, infierno de cherry-pick
  • Merge freeze before every releaseFreeze antes de cada release
  • AI agents need human supervisionLos agentes IA necesitan supervisión humana
GitWeave

The patch modelEl modelo de patches

  • WorkSlots — isolated, no branch creationWorkSlots — aislados, sin crear ramas
  • Patches with explicit dependenciesPatches con dependencias explícitas
  • Deterministic merge: hunks either intersect or don'tMerge determinístico: los hunks se tocan o no
  • Release = curated patch set, reproducibleRelease = patch set curado, reproducible
  • Agents operate via gRPC — no human neededAgentes operan via gRPC — sin intervención

Core primitivesPrimitivas core

Three ideas that change everything Tres ideas que cambian todo

Immutable patchesPatches inmutables

Every change is content-addressed via blake3. Permanent, verifiable, composable. No history rewriting, ever.Cada cambio está identificado por blake3. Permanente, verificable, composable. Sin reescritura de historial.

Algebraic mergesMerges algebraicos

Two patches conflict only when their hunks intersect — mathematically. No 3-way merge heuristics. No "ours vs theirs".Dos patches conflictúan solo cuando sus hunks se intersectan — matemáticamente. Sin heurísticas de merge.

Agent-native APIAPI nativa para agentes

gRPC endpoints built for Claude, Cursor, or any autonomous process. Open a WorkSlot, write patches, merge — without humans.Endpoints gRPC para Claude, Cursor o cualquier proceso autónomo. WorkSlot, patches, merge — sin humanos.

WorkSlots

N developers or agents work in isolated slots simultaneously. No locking, no blocking. Ephemeral workspaces — create, fill, merge, done.N desarrolladores o agentes en slots aislados en paralelo. Sin locks ni bloqueos. Espacios de trabajo efímeros.

Git bridgePuente Git

Push to GitHub as normal commits. GitWeave is the source of truth; Git is the export format. Zero lock-in.Push a GitHub como commits normales. GitWeave es la fuente de verdad; Git es el formato de exportación.

Native desktop appApp de escritorio nativa

Built with Tauri — ~14MB for Mac, Windows & Linux. Rust backend, modern web UI. No Electron, no Chrome bundled inside.Construido con Tauri — ~14MB para Mac, Windows y Linux. Backend Rust, UI web moderna. Sin Electron.


Under the hoodBajo el capó

The types are the architectureLos tipos son la arquitectura

A Patch knows its hash, its deps, and its hunks. The ConflictEngine asks one question: do hunks intersect? No heuristics.Un Patch conoce su hash, sus deps y sus hunks. El ConflictEngine hace una pregunta: ¿se intersectan los hunks? Sin heurísticas.

Written in Rust. No unsafe, no unwrap in production code. Built for correctness.Escrito en Rust. Sin unsafe ni unwrap en producción. Construido para ser correcto.

patch modelRust
// Every change is this struct pub struct Patch { pub id: PatchId, // blake3 pub deps: Vec<PatchId>, // explicit pub hunks: Vec<Hunk>, // line diffs pub author: AgentId, pub meta: PatchMeta, } impl ConflictEngine { pub fn can_merge( a: &Patch, b: &Patch ) -> bool { // One question. No heuristics. a.hunks .intersection(&b.hunks) .is_empty() } }

How it worksCómo funciona

Zero to merge
in five commands
De cero a merge
en cinco comandos

01

Initialize the storeInicializar el store

Creates .gw/ with the local PatchStore. Works on existing Git repos too.Crea .gw/ con el PatchStore local. Compatible con repos Git existentes.

gw init
02

Open a WorkSlotAbrir un WorkSlot

Each developer or agent gets an isolated slot. No branch creation, no checkout, no switching.Cada desarrollador o agente obtiene un slot aislado. Sin crear ramas, sin checkout, sin switching.

gw slot --name my-feature
03

Write patchesEscribir patches

Edit files normally. GitWeave tracks changes as immutable patches with explicit dependencies.Edita archivos normalmente. GitWeave registra cambios como patches inmutables con dependencias explícitas.

gw patch "fix auth middleware"
04

Merge deterministicallyMerge determinístico

No conflicts unless hunks truly intersect. If they don't — instantaneous. If they do — GitWeave tells you exactly which lines collide.Sin conflictos a menos que los hunks se toquen. Si no — instantáneo. Si sí — GitWeave te dice exactamente qué líneas.

gw merge slot-a slot-b
05

Release and pushRelease y push

Freeze a curated patch set as a release. Export to Git commits for GitHub. Your CI/CD pipeline sees nothing different.Congela un patch set curado como release. Exporta a commits Git para GitHub. Tu CI/CD no nota diferencia.

gw release v1.0.0 && gw push origin

New in 0.1Nuevo en 0.1

Code review,
built into the patch model
Code review
integrado en el modelo de patches

Approve, request changes, or comment on any patch — from the desktop app, the CLI, or the gRPC API. Reviews are structural: they live on the patch, not on a PR. Aprueba, solicita cambios o comenta en cualquier patch — desde la app de escritorio, el CLI o la API gRPC. Los reviews son estructurales: viven en el patch, no en un PR.

Patch reviewsReviews de patches

Approve, request changes, or comment on individual patches. Verdict is computed automatically: approved, changes_requested, or pending. Aprueba, solicita cambios o comenta en patches individuales. El veredicto se calcula automáticamente: approved, changes_requested o pending.

Activity feedFeed de actividad

A unified timeline of patches and review status across all slots. See what happened, who reviewed what, and what still needs attention — at a glance. Timeline unificado de patches y estado de review en todos los slots. Ve qué pasó, quién revisó qué y qué necesita atención — de un vistazo.

Dependency stacksStacks de dependencia

Like Graphite's stacked PRs, but native to the patch model. gw stack shows the full dependency chain from root to tip, with review status on each. Como los stacked PRs de Graphite, pero nativos al modelo de patches. gw stack muestra la cadena completa de dependencias de raíz a tip, con estado de review en cada uno.

File selectionSelección de archivos

Stage individual files before recording a patch. Select all, deselect specific files, or record only a subset of your changes — just like git add -p but visual. Selecciona archivos individuales antes de grabar un patch. Selecciona todos, deselecciona archivos específicos, o graba solo un subconjunto — como git add -p pero visual.

.gwignore

Exclude files from tracking with glob patterns. Like .gitignore, but for the GitWeave model. Built-in defaults for target/, node_modules/, dist/. Excluye archivos del tracking con patrones glob. Como .gitignore, pero para el modelo GitWeave. Defaults integrados para target/, node_modules/, dist/.

Rich CLICLI completo

gw stack · gw review approve · gw review show — manage reviews and visualize stacks from the terminal. Full gRPC client SDK for building custom agents. gw stack · gw review approve · gw review show — gestiona reviews y visualiza stacks desde la terminal. SDK gRPC completo para construir agentes custom.

gw syncgw sync

Verify that a slot has no conflicts with the rest of the repository. Like Aviator's av sync, but without rebasing — patches are immutable, so sync just checks compatibility. Verifica que un slot no tiene conflictos con el resto del repositorio. Como av sync de Aviator, pero sin rebase — los patches son inmutables, sync solo verifica compatibilidad.

gw submitgw submit

Mark a slot as ready for review. Runs sync first — if there are conflicts, submit is blocked. Transitions the slot from active to submitted. Marca un slot como listo para review. Ejecuta sync primero — si hay conflictos, el submit se bloquea. Transiciona el slot de active a submitted.

Stacked slotsSlots apilados

Create a slot on top of another with gw slot create --on parent. Child slots inherit the parent's context. Sync checks conflicts against the parent too. Like stacked PRs, but for patches. Crea un slot encima de otro con gw slot create --on parent. Los slots hijos heredan el contexto del padre. Sync verifica conflictos contra el padre también. Como stacked PRs, pero para patches.

Undo mergeUndo merge

Made a bad merge? gw undo-merge restores both slots to their pre-merge state. One command, full rollback — no history rewriting needed because patches are immutable. Hiciste un merge malo? gw undo-merge restaura ambos slots a su estado pre-merge. Un comando, rollback completo — sin reescritura de historial porque los patches son inmutables.

Conflict resolutionResolución de conflictos

When patches collide, the desktop app shows exactly which hunks intersect — side by side, file by file. No guessing, no "ours vs theirs" — you see the precise lines that conflict. Cuando los patches colisionan, la app de escritorio muestra exactamente qué hunks se intersectan — lado a lado, archivo por archivo. Sin adivinar, sin "ours vs theirs" — ves las líneas exactas en conflicto.

File watchingFile watching

Native OS file watcher (fsnotify) detects changes instantly — no polling. The UI updates the moment you save a file. 500ms debounce, zero CPU waste. File watcher nativo del OS (fsnotify) detecta cambios al instante — sin polling. La UI se actualiza en el momento que guardas un archivo. Debounce de 500ms, cero desperdicio de CPU.

gw push & pullgw push y pull

Push patches directly to GitHub, GitLab, or Bitbucket — no intermediate step. gw remote add origin <url>, then gw push. Pull works the same way. Your CI/CD sees normal Git commits. Push patches directo a GitHub, GitLab o Bitbucket — sin paso intermedio. gw remote add origin <url>, luego gw push. Pull funciona igual. Tu CI/CD ve commits Git normales.

Named remotesRemotes nombrados

Manage remotes like Git: gw remote add / remove / list. Stored per-repo in .gw/remotes.json. Push and pull resolve by name — just gw push uses "origin" by default. Gestiona remotes como Git: gw remote add / remove / list. Almacenados por repo en .gw/remotes.json. Push y pull resuelven por nombre — gw push usa "origin" por defecto.

64

TestedTesteado

64 tests: 48 unit tests covering the core engine, 13 end-to-end CLI tests running the full workflow (init → record → slot → merge → undo → review → export), and integration tests for the Git bridge. 64 tests: 48 tests unitarios cubriendo el motor core, 13 tests E2E del CLI ejecutando el flujo completo (init → record → slot → merge → undo → review → export), y tests de integración para el puente Git.


Go deeperProfundizar

Read the theory behind
the patch model
Lee la teoría detrás
del modelo de patches

The full documentation explains why Git's snapshot model breaks down under concurrent, multi-agent editing, how the hunk-intersection algorithm works, and how WorkSlots replace every piece of GitFlow with something simpler and more correct. La documentación completa explica por qué el modelo de snapshots de Git se rompe bajo edición concurrente multi-agente, cómo funciona el algoritmo de intersección de hunks, y cómo los WorkSlots reemplazan cada pieza de GitFlow con algo más simple y más correcto.

1

The problem with GitEl problema de Git

Why snapshot-based VCS breaks down in the age of AI agents and parallel development.Por qué el VCS basado en snapshots se rompe en la era de agentes IA y desarrollo paralelo.

2

What it replacesQué reemplaza

Side-by-side mapping from every GitFlow concept to its GitWeave equivalent — feature branches, stash, cherry-pick, all of it.Mapeo 1 a 1 de cada concepto de GitFlow a su equivalente en GitWeave — feature branches, stash, cherry-pick, todo.

3

Core conceptsConceptos core

Patches, Hunks, DAG, WorkSlots, ConflictEngine — the five primitives that make everything work.Patches, Hunks, DAG, WorkSlots, ConflictEngine — las cinco primitivas que hacen que todo funcione.

Parallel AI agentsAgentes IA paralelos

How N autonomous agents work on the same codebase without conflict, lock, or human supervision via the gRPC daemon.Cómo N agentes autónomos trabajan en el mismo codebase sin conflicto, lock, ni supervisión humana vía el daemon gRPC.

The Git bridgeEl puente Git

How GitWeave exports to regular Git commits so your GitHub, GitLab, and CI/CD pipelines keep working.Cómo GitWeave exporta a commits Git regulares para que tu GitHub, GitLab y CI/CD sigan funcionando.

CLI referenceReferencia CLI

Every gw command, what it does, and how it maps to the desktop app.Cada comando gw, qué hace, y cómo se mapea a la app de escritorio.

Read the full documentation →Leer la documentación completa →

Start weaving todayEmpieza a tejer hoy

GitWeave is free and built for teams that move fast. Native desktop app for Mac, Windows and Linux — download and run, no setup required. GitWeave es gratis y construido para equipos que se mueven rápido. App de escritorio nativa para Mac, Windows y Linux — descarga y ejecuta, sin configuración.

Free to use · Rust + Tauri · Built by rvielma for the community Gratis · Rust + Tauri · Desarrollado por rvielma para la comunidad