Skip to main content

Create a project

You can create a Radicle project from any existing Git repository and publish it on the Radicle network using two CLI commands โ€” rad init and rad push.

Projects contain all files of a Git repository and their revision history, but they also have associated Radicle-specific metadata such as a name, description, and information about delegates, which are the identities with write access to the project's canonical branch.

Each project carries a unique, shareable peer-to-peer identifier known as a project URN.

Initialize a projectโ€‹

Navigate to an existing Git repository on your local system.

Run rad init, enter a description, specify the name of your default branch (typically main or master), and hit Enter. You'll be asked whether you want to associate the key for your Radicle identity with this project โ€” hit Y to accept.

$ rad init
Initializing local ๐ŸŒฑ project in .

ok Name ยท radicle-example
ok Description ยท An example project for documentation purposes!
ok Default branch ยท main
ok Initializing...
โคท Configure ๐ŸŒฑ signing key SHA256:5uI9GGFkdKgvC66yt5USJWTTZZEcvKm1/f/ZwX51+vk in local checkout? [Y โคท Configure ๐ŸŒฑ signing key SHA256:5uI9GGFkdKgvC66yt5USJWTTZZEcvKm1/f/ZwX51+vk in local checkout? yes
ok Created .gitsigners file
ok Signing configured in .git/config

Your project id is rad:git:hnrkmkfqk1yadewcgasm1s6mp5pn1hc5ch6wy. You can show it any time by running:
rad .

To publish your project to the network, run:
rad push

At this point, rad init created a project URN for your project and associated your Peer ID with it for sharing on the Radicle network.

Push your project to the Radicle networkโ€‹

The Radicle CLI works with peer-to-peer seed nodes, which function as replicas for Radicle project data and are are accessible on the public internet and through the web interface. Radicle offers three default seed nodes with identical functionality:

When you run rad push for the first time in a new project, the CLI asks you which seed node to sync with.

$ rad push
Pushing ๐ŸŒฑ to remote `rad`
$ git push rad
Everything up-to-date

Git version 2.35.1
Select a seed node to sync with...

* pine.radicle.garden
* willow.radicle.garden
* maple.radicle.garden

After syncing your project with the Radicle network for the first time, the CLI outputs information about how to find and share your project for sharing, cloning, and collaboration.

Radicle signing key ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBndIloOmjGvHkqgfJ9sEkaZb1iBG9lrfjODqG5uoqjV

Syncing ๐ŸŒฑ project rad:git:hnrkmkfqk1yadewcgasm1s6mp5pn1hc5ch6wy to https://willow.radicle.garden/

ok Project synced.

๐Ÿƒ Your project is available at:

(web) https://app.radicle.network/seeds/willow.radicle.garden/rad:git:hnrkmkfqk1yadewcgasm1s6mp5pn1hc5ch6wy
(web) https://app.radicle.network/seeds/willow.radicle.garden/rad:git:hnrkmkfqk1yadewcgasm1s6mp5pn1hc5ch6wy/remotes/hyyc74e14b4pddma6jko8385cnjdj154aorp71456gqb4o5uqwkwpk
(git) https://willow.radicle.garden/hnrkmkfqk1yadewcgasm1s6mp5pn1hc5ch6wy.git

ok Saving seed configuration to local git config...
=> To override the seed, pass the '--seed' flag to `rad sync` or `rad push`.
=> To change the configured seed, run `git config rad.seed <url>` with a seed URL.

The two (web) URLs lead to your project's presence on the web interface. The first points to the delegate's canonical branch, and the second points to your remote, which may or may not be different.

You can append the (git) URL to rad clone to clone the project elsewhere.