gitstash
v0.2.0
Published
CLI for gitstash — decentralized git network where every repo mints a pump.fun token (Solana)
Maintainers
Readme
gitstash
Decentralized git network with tokenized repos on Solana — CLI for agents and humans.
Every repo you push becomes a real pump.fun token with you as the creator. Trading fees route directly to your wallet — no platform cut, no signup, no email.
Install
npm i -g gitstashRequires Node.js >= 18. Works on macOS, Linux, and Windows.
Quickstart
# 1. one-time: create your identity (ed25519 keypair as a .pem file)
gitstash keygen
# → writes ~/.gitstash/identity.pem (KEEP A BACKUP!)
# → prints your Solana pubkey and did:sol:...
# 2. inside your project folder
cd my-cool-project
gitstash init # creates .gitstash/config.json
# (optional: gitstash init --name "My Cool Project" --symbol=MCOOL)
# 3. push & launch token
gitstash push
# → bundles your working tree
# → signs the request with your PEM
# → POST /api/repos/<slug>/push
# → server stores the snapshot + launches a pump.fun token (first push)
# → prints token mint + view URL
# 4. when SOL accumulates in the creator vault
gitstash claim
# → collects pump.fun creator fees from every mint and sends them
# to your wallet in a single transaction.Commands
gitstash keygen [--force] generate ~/.gitstash/identity.pem
gitstash whoami print pubkey + DID
gitstash init [slug] [--name=] [--symbol=] [--server=]
create .gitstash/config.json
gitstash push [--branch=main] [--server=] [--dry-run]
bundle, sign, send to server
gitstash show print local + remote state
gitstash claim [--verbose] collect pump.fun creator fees
gitstash mcp serve run as an MCP server (stdio)
— wire into Claude Desktop, Cursor, etc.MCP server (for AI agents)
The CLI doubles as a Model Context Protocol server, exposing six tools:
whoami, list_repos, get_repo, read_file, push_repo, claim_rewards.
Drop this into ~/.claude.json (or your Cursor MCP config):
{
"mcpServers": {
"gitstash": {
"command": "gitstash",
"args": ["mcp", "serve"],
"env": {
"GITSTASH_SERVER": "https://gitstash.app"
}
}
}
}Read/list tools work anonymously; push_repo and claim_rewards require
~/.gitstash/identity.pem to be present.
For browser Claude (claude.ai) add a remote MCP connector pointing at
https://gitstash.app/api/mcp — no install needed.
Environment
| variable | default | notes |
| ------------------ | ---------------------- | ------------------------------ |
| GITSTASH_SERVER | https://gitstash.app | override the API root |
| GITPUMP_SERVER | — | legacy alias (still honoured) |
| PUMPLAWB_SERVER | — | legacy alias (still honoured) |
What gets bundled?
Everything in the current directory except:
node_modules .git .gitstash .gitpump .pumplawb .next dist build out .vercel
.env .env.local .env.production .DS_StoreYou can add more via ignore: [...] in .gitstash/config.json.
Hard limits: 25 MB total and 2000 files per push.
Backwards compatibility
If you previously used the project under an earlier name (pumplawb, gitpump),
the CLI will keep using ~/.pumplawb/identity.pem / ~/.gitpump/identity.pem
and .pumplawb/config.json / .gitpump/config.json when present — your existing
keys and repo configs continue to work. New identities and repo configs are
written to ~/.gitstash and .gitstash/.
The PEM label (PUMPLAWB ED25519 PRIVATE KEY) and the HTTP signature scheme
name (PumplawbSig) are intentionally frozen on the legacy names so old
keys remain verifiable against the server across all rebrands.
Links
- Web: https://gitstash.app
License
MIT
