Everything you need to know about using gittr.space - Git over Nostr with Bitcoin incentives
Install a NIP-07 browser extension (like Alby or nos2x) and log in to access all features.
Click "Create repository" to start a new repo, or "Import" to bring in an existing GitHub repository.
Go to Settings → Payments to configure LNbits, LNURL, or NWC for receiving zaps and bounties.
Create new repositories from scratch or import from GitHub. All repos are stored locally in your browser and can be pushed to Nostr for public access.
View, edit, and delete files directly in the browser. Use the fuzzy file finder (Cmd/Ctrl+P) to quickly navigate large repositories.
gittr.space follows the NIP-34 architecture for file storage. Files are stored on git servers, not in Nostr events. The repository's "About" sidebar shows where files come from:
This architecture ensures files are stored efficiently and can be fetched from multiple sources for redundancy.
You can import repositories from:
Imported repos maintain a link to their source (sourceUrl) and fetch files from the original git server.
⚠️ 4 MB Import Limit
Next.js API routes hard-cap responses at ~4 MB. When importing we fetch every file (including releases/binaries), so very large repos will fail with “Repository is too large”. Remove heavy artifacts (release archives, media, build outputs) or import a slimmer subset before retrying.
gittr.space repositories support multiple clone URL formats:
Option A: SSH (Standard Git - Recommended)
git clone [email protected]:npub1.../repo-name.gitRequires SSH keys (Settings → SSH Keys). Works out of the box with any Git client.
Option B: HTTPS (GRASP git servers)
git clone https://relay.ngit.dev/<owner-pubkey>/repo-name.gitRead-only clones from our public mirrors (relay.ngit.dev, gitnostr.com, ngit-relay.nostrver.se, ...). Great for CI/CD or quick testing.
Option C: nostr:// Protocol (Ecosystem Standard)
git clone nostr://[email protected]/repo-nameRequires git-remote-nostr. This helper translates nostr:// URLs into standard Git fetches and is used by other NIP-34 clients.
Install git-remote-nostr (Nov 2025)
pip install git-remote-nostr (Python 3.10+)which git-remote-nostr)Once installed, git clone nostr://… works exactly like GitHub URLs.
SSH, HTTPS, and nostr:// clone URLs all ship inside every NIP-34 repository event. Pick whichever matches your workflow.
Day-to-day
git pull / git fetchgit checkout <branch>git statusgit add / git commitPublishing
Use the Push to Nostr button in the repo UI. We publish the NIP‑34 event and automatically sync your repo to our git bridge so other clients can clone it immediately.
CLI fan? You can still run git push origin main; it hits the same bridge endpoint.
Branches & Tags
git branch -a / git switch -cgit tag v1.2.3Releases and tags show up instantly in the UI.
Troubleshooting
git remote -vgit config --listgit log --onelineAfter making local changes, click "Push to Nostr" in your repository settings to publish updates.
We sign the NIP‑34 event, publish it to your relays, and sync the Git repo to relay.ngit.dev/gittr.space automatically. Only small metadata files live inside the Nostr event; the real Git objects stay on the bridge.
Manage your SSH keys in Settings → SSH Keys. You'll need these for Git operations over SSH.
For complete documentation on SSH and Git operations:
📖 SSH & Git Access Guide →Zap repositories to support contributors. Zaps are split automatically based on contributor weights.
💬 Payment Messages:
All zaps and bounties automatically include a payment message with your username, "via gittr.space", and bolt emojis (⚡⚡). This helps recipients identify where the payment came from. The message format is: {username} via gittr.space ⚡⚡ (max 160 characters).
Anyone can fund issues with bounties to incentivize contributions. Bounties use LNURL-withdraw links created from the bounty creator's LNbits wallet. The funds are reserved in the creator's wallet and will be deducted when the PR author claims the withdraw link.
⚠️ Important Requirements:
lud16 or lnurl) in their Nostr profile (Kind 0 metadata)Bounty Flow:
🔒 Bounty Protection & Trust Model:
Bounty Flow Diagram:
Bounty statuses:
Key Points:
lud16 or lnurl fields.Visit the Bounty Hunt page to discover funded issues across all repositories.
Go to Settings → Notifications to set up:
Bounty announcements are also posted to the public @gittrspace channel.
You can enable/disable notifications for:
Default Settings: Most notifications are disabled by default to reduce noise. The recommended settings (enabled by default) are: New issues, Issue comments, New PRs, PR reviews, PR merges, Mentions, My Bounties, and Bounty releases.
Important: Changes to notification preferences are not active until you click "SAVE NOW". Make sure to save your preferences after making changes.
Bounty notifications are sent to:
Bounty announcements are also automatically posted to the public @gittrspace Telegram channel, regardless of your notification preferences.
Create PRs to propose changes. Reviewers can approve, request changes, or merge PRs.
Track bugs, feature requests, and discussions. Add bounties to incentivize solutions.
Link your GitHub profile in Settings to show your profile picture as a contributor icon.
All your data (repos, keys, settings) is stored locally in your browser. It never leaves your device unless you explicitly push to Nostr.
Your Nostr private key and payment credentials are encrypted with a password you set. Enable encryption in Settings → Security.
Repositories default to public when pushed to Nostr. You can set them to private in repository settings.
If you have questions or encounter issues, please check the GitHub repository or open an issue.