Grasp
Grasp Grasp Grasp

A simple protocol for code collaboration that uses interoperable servers and clients

Grasp is a simple, decentralized protocol for code collaboration designed to allow interoperable git servers and clients to communicate without relying on centralized hubs.

The main features of this protocol include:

  • Cryptographic Identity: In Grasp, every user identity is a cryptographic keypair that is entirely independent of any central provider. Anyone can start publishing directly from the command line with free, unlimited identities without filling out sign-up forms.

  • Seamless Interoperability: People running personal servers can freely interact with those relying on third-party servers, meaning it does not matter where the code is actually hosted. Repositories can migrate seamlessly, and the underlying git servers do not have to be trusted.

  • Effortless Contributions: Contributing to projects is highly streamlined; sending a patch to someone else's code can often be done with a single command, eliminating the need for complicated registrations and web UI click-ops.

  • Built-in Issues & Pull Requests: The protocol supports native, cryptographically signed threaded discussions for issues. It also features a pull request flow where developers publish their branch to a Grasp server and send a message requesting the maintainer to pull and merge the changes.

  • Custom Moderation: Both servers and clients can enforce custom moderation and spam filtering criteria to control incoming contributions.

  • Protocol-Centric Ecosystem: It runs on standard protocols like Nostr's NIP-34. A diverse software ecosystem is available, including command-line tools like nak and n34, web-based viewers like gitworkshop.dev and viewsource.win, and server solutions like pyramid.