A peer-to-peer stack for code collaboration

WARNING: experimental software, not for production use

Peer–to–peer

The Radicle stack builds on IPFS, and works without a centralized server. No hassle with setting up your own hosting, and no need to trust companies with your data.

Terminal-first

A Radicle project contains a git repository, plus the associated issues and proposals. Access all the issues and proposals associated with your codebase right from your terminal.

Programmable

Ever wanted to customize your code collaboration platform? Each Radicle utility—or machine—is its own P2P program written in the Radicle language. Change machines to suit your needs, or create entirely new ones. Dev docs coming soon!

Collaborate with Radicle

Setup a project

rad project allows you to create, checkout, manage, and publish a project, comprised of issues, patch proposals, and a git repo.

$ rad project init
? What's the name of your project? radicle-garden
? Briefly describe your project? A community garden
=> Creating git repository
=> Adding "origin" remote: ipfs://ipns/12D3KooW...
=> Adding issues to your project
=> Adding patches to your project
=> Project created with id: 12D3KooW...
          

Manage issues

rad issue allows you to view, create, and comment on issues directly from your project directory.

$ rad issue list
#  state   title                 author   updated
1  open    Patch not accepted    celia    2019-01-25 13:27
0  closed  How do I contribute?  alex     2019-01-25 09:14

$ rad issue comment 1 "probably the wrong dimensions"
Added comment to issue #1
          

Propose changes

rad patch provides a simple system for proposing and discussing changes to a git repository.

$ rad patch list
#  state     commit                author   updated
1  pending   Make docs friendlier  vera     2019-01-25 13:27
0  accepted  Typo fixes            jules    2019-01-25 09:14

$ rad patch accept 1
Merging proposal #2 with master
          
Learn Radicle with our intro guide

Radicle Stack

Radicle utilities are written in the Radicle language, a deterministic Lisp dialect built for creating P2P programs. Each instance of a utility is a replicated state machine with state updates distributed and replicated via IPFS.

The Radicle daemon materializes machines from the local event log, allowing you to query a machine's state, and handles the submission of new expressions.

We have also created an IPFS git remote helper for hosting your code on IPFS. Together with utilities such as rad project rad issues, and rad patches, you can now have an entirely decentralized code collaboration experience.

More about the Radicle stack