Skip to main content

awgit — Aither World-Graph git

Git was built for human commit speed. It has no world model — it doesn't know what a function is, only which lines moved. At agent scale — a fleet of agents committing to one shared tree every few minutes — that becomes the bottleneck.

awgit rides on top of git (git stays the byte-truth, the transport, the history) and adds the layer git was missing: a world model as the database, semantic edit-ops as transactions, verified identity, a ledger, and differential sync that teleports deltas instead of copying trees.

The idea: the world model IS the database

Every commit becomes an EditOp — which functions/classes/methods changed, the old and new bodies by git-blob content address, the actor, the parent chain. Ops key on stable node ids — a content-independent UUID per (name, path) that survives renames and moves. The op-log is a differential index: only what changed, never the snapshot.

  • Merge — at node granularity, not line granularity. Disjoint node sets merge clean by construction; shared nodes that genuinely collide escalate to a human naming the exact function.
  • Leases — heartbeat-renewed TTL. A vanished agent's leases free their targets on their own; two agents with leases never collide.
  • Verified identity — every op records the actor plus the box's VERIFIED GitHub login (via gh), resolved automatically and cached. The op-log doesn't take anyone's word for who did what.
  • Attribution — every op records who changed what under a verified GitHub identity, with a deterministic ledger_ref; awgit ledger is the read-only attribution view.
  • Content-addressed bodies — op bodies materialize into a deduped store, so any op reconstructs any node body without the original git blobs. Content addressing is dedupe: identical bodies across commits, branches and worktrees collapse to one blob, and awgit dedupe quantifies + reclaims the disk duplication.
  • Differential syncawgit sync export emits the ops a peer is missing (parent-first) plus the bodies they reference; awgit sync import applies idempotently, so a bundle applied twice converges. A caught-up peer gets a tiny delta; a fresh endpoint gets the full clone.

Install

pip install awgit
# or from source:
git clone https://github.com/aitherium/awgit && cd awgit
pip install -e .

Needs Python 3.10+ and git. The post-commit hook needs gh on PATH to resolve a verified GitHub identity (best-effort — capture never depends on it).

Set up

awgit init        # verify the actor: gh auth, resolve the verified GitHub login
awgit hooks install     # chained post-commit capture — preserves your existing hooks
awgit hooks uninstall   # remove the chain, restore the original hooks

Every commit from now on is captured as a semantic edit-op. See:

awgit status              # op-log status: how many ops, bodies, coverage
awgit diff <sha> <sha>    # node-level diff between two commits
awgit ledger --sha <sha>                 # attribution for one commit
awgit sync export --known <ids> -o delta.json   # teleport deltas to a peer
awgit sync import delta.json                    # idempotent convergence
awgit dedupe --scan <trees...>                  # quantify disk duplication
awgit dedupe --reclaim <trees...> --apply       # hard-link identical files

The durable store lives outside the git tree at ~/.aither/awgit/data (override with VCS_DATA_ROOT), so the op-log and body store never pollute your repository or your clones.

CLI

awgit capture --sha <sha>     # capture one commit as an EditOp (hooks do this)
awgit merge-preview <a> <b>   # node-level merge preview of two shas
awgit merge-conflicts         # list escalated conflicts awaiting a human
awgit lease acquire <targets...> / heartbeat / release / list / sweep

Using with Claude Code / an agent

Install the hooks, then commit as normal — capture is automatic. After a commit:

awgit status      # what changed, and who (verified GitHub identity)
awgit ledger --sha <sha>      # attribution: who changed what on this commit
awgit sync export -o delta.json   # hand the delta to a peer node

See the awgit-claude-code skill for the full workflow.

Tests

cd awgit && python -m pytest tests/ -q

License

Apache-2.0. Built by Aitherium — the git that scales to agents.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awgit-0.2.0.tar.gz (49.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awgit-0.2.0-py3-none-any.whl (55.3 kB view details)

Uploaded Python 3

File details

Details for the file awgit-0.2.0.tar.gz.

File metadata

  • Download URL: awgit-0.2.0.tar.gz
  • Upload date:
  • Size: 49.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for awgit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 29c8b70417fcf6f20b0fc51e1e7406421594312d3d13cb931cd4afef5aa67133
MD5 a96e0d1c84d0ae0e686613e22ca74b3d
BLAKE2b-256 f902dafaac0745781d910c8717e994254082379d9b7c0373ab640d7140ac925c

See more details on using hashes here.

Provenance

The following attestation bundles were made for awgit-0.2.0.tar.gz:

Publisher: pypi-publish.yml on Aitherium/awgit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file awgit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: awgit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 55.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for awgit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd295816ad36dfd169d3a80cf179b153b3e00d8fba74c8c986d907f39231855d
MD5 2c2a5198ed6b74496b4355aa34100cdd
BLAKE2b-256 f1f42f928ed0a1207befef04b1e164b4953436a2f8220a1a7f431481b563e510

See more details on using hashes here.

Provenance

The following attestation bundles were made for awgit-0.2.0-py3-none-any.whl:

Publisher: pypi-publish.yml on Aitherium/awgit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page