Get Started
One command. One key. No signup. No KYC. No passwords.
You'll be pushing code in 30 seconds.
Install graf
Single binary. Linux, macOS, soon Brew. Run this in your terminal:
curl -fsSL https://graf.tools/install.sh | sh
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.
Connect your identity
Import the SoulKey that graf key generate created, or generate one here in the browser.
✓ Connected
Import or Generate
Run graf key show --private in your terminal, then paste the hex key below.
graf key import.
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.
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.