DGIT

Serverless zero-registration git forge! pull, push, clone and collaborate without any servers!

DGIT

Created At

Open Agents

Project Description

dgit is a serverless Git forge. It lets users host repositories locally while still allowing others to pull them in the usual way.

For example, you can set your remote like this:

git remote set-url origin http://127.0.0.1:8090/[email protected]

and then push as usual.

Later, anyone can use that same remote. Even though it points to a local endpoint, it still works seamlessly—thanks to AXL, others can pull the repository just like they would from any standard Git server.

That’s it: a simple, serverless Git forge.

How it's Made

Under the hood, dgit has three main components:

1 - AXL – handles peer-to-peer communication. 2 - ENS – all repositories in dgit are identified by ENS names. When you push a repo for the first time, dgit automatically creates a subdomain under git.eth on Sepolia. This name stores text records containing the AXL node’s public key and metadata describing how to locate the Git repository. 3- Haxy – a lightweight Git server written in Zig.

On top of these, there is a thin Python wrapper that acts like a Git server. It runs locally (but accessible globally through AXL) and only requires your Ethereum wallet. The wallet is used to sign transactions when creating new repositories on-chain, but all repository data remains local on the host machine. ENS is used purely as a discovery mechanism to locate the nodes hosting a repository and store pushed repos metadata.

At the foundation is the ENS name git.eth. A permissionless registrar is configured for this domain, allowing anyone to claim subdomains (e.g., me.git.eth). The wrapper automatically handles all required transactions for this process.

From the user’s perspective, interaction with dgit happens entirely through a standard Git client. When pushing, dgit automatically sets up everything needed across ENS, AXL, and the Git node.

When pulling, dgit queries the ENS text records for the requested repository and routes the request through AXL to the correct node, which then serves the data.

background image mobile

Join the mailing list

Get the latest news and updates

DGIT | ETHGlobal