Get Started

One command. One key. No signup. No KYC. No passwords.
You'll be pushing code in 30 seconds.

Step 1

Install graf

Single binary. Linux, macOS, soon Brew. Run this in your terminal:

curl -fsSL https://graf.tools/install.sh | sh
On first run, graf generates your SoulKey automatically. Your Ed25519 keypair is created locally – your private key never leaves your machine. This is your identity across Graf, Janus, Nexus OS, and all of Libertaria.

Prefer to read more first? graf.tools has the full guide.

Step 2

Connect your identity

Import the SoulKey that graf key generate created, or generate one here in the browser.

Step 3

Create a repo & push

Once your SoulKey is set up locally, you're ready:

# initialize a graf repository
graf init my-project
cd my-project

# make your first snapshot
graf checkpoint "initial commit"

# add grafhub as remote & push
graf remote add origin https://grafhub.org
graf push

# that's it. your code is live.
Your repo URL will be grafhub.org/{your-handle}/{repo-name}. The first push auto-creates the repository. No "New Repository" button needed – just push.
What is a SoulKey?

A SoulKeyID is derived from your Ed25519 public key: BLAKE3(pubkey)[0:8] as hex. It's deterministic, unforgeable, and computed locally. Nobody issues it – you generate it.

The same key works across every Libertaria app. Only the prefix tells the system which app is talking:

grf:ab1a107c Graf & GrafHub jan:ab1a107c Janus & Hinge packages nxs:ab1a107c Nexus OS lib:ab1a107c Libertaria governance
How does authentication work?

Challenge-response. When you authenticate, the server sends a random 32-byte challenge. Your browser signs it with your private key. The server verifies the signature against your public key. No passwords cross the wire. Session nonce valid for 15 minutes, sent as X-Graf-Session header.