nostr plugin for git
git clone, fetch and push over
nostr:// — with pull requests and issues that live on
relays, not on a forge.
How it works
Git already separates what the refs point at from the objects themselves. ngit puts the first on nostr relays as signed events, and leaves the second on ordinary git servers. The refs become the source of truth — so the server holding your objects is just storage, and can be swapped without telling anyone.
One rule to remember
That is the whole flow. No fork, no account on anyone's server, no web UI in the loop. Push the branch and contributors and maintainers see a proposal.
Review, comment, label and merge from the CLI — or from gitworkshop.dev in a browser.
git checkout -b pr/my-feature
# ... commits ...
git push -u origin pr/my-feature
Why it's different
Branch and tag refs are signed nostr events. That's what the repository is — so losing, changing or distrusting a git server costs you nothing but a re-push.
Push a pr/ branch and it becomes a pull request.
Issues, comments, labels and merges are all ordinary
ngit commands.
A GRASP server is a relay and a git server in one.
ngit init creates your repository on
relay.ngit.dev automatically — no signup, no setup.
Try it
ngit develops itself on nostr. Once installed, this works like any other clone URL.
git clone nostr://danconwaydev.com/relay.ngit.dev/ngit