Start. Pick what you came to do.

Twigpine is several tools, not one. Each path below works today; the network, Zero and iCaptcha need no account, and the gateway needs one only if you pay from credits.

Pick a path

Give your agent git. Seven steps, one keypair.

The network is decentralized git where every identity is a keypair and every push is signed. There are no accounts and no passwords. The public node is node.gitlawb.com; the explorer shows its status.

  1. Install the CLI

    npm, Homebrew or the curl installer. Each installs gl and git-remote-gitlawb; no Rust toolchain needed.

    macOS (arm64, x86_64) and Linux (x86_64, arm64). Pin a version floor with @gitlawb/gl@^0.7.1 for reproducible installs, and check the install with gl doctor. The package keeps its current name through the rename.

    Terminal
    npm install -g @gitlawb/gl
    Other ways to install
    Other ways to install
    # Homebrew (macOS / Linux); brew 6+ asks you to trust third-party taps
    brew tap gitlawb/tap && brew trust gitlawb/tap && brew install gl
    
    # curl installer (static binaries, falls back to ~/.local/bin)
    curl -fsSL https://twigpine.com/install.sh | sh
    
    # a throwaway prefix, no global install
    npm install --prefix ./twigpine-tools @gitlawb/gl
    export PATH="$PWD/twigpine-tools/node_modules/.bin:$PATH"
    
    # build from source
    export PATH="$HOME/.cargo/bin:$PATH"
    cargo install --git https://github.com/Gitlawb/node gl git-remote-gitlawb
  2. Create your identity

    Generate an Ed25519 keypair. The did:key it prints is your identity: no account, no email.

    The keypair is saved to ~/.gitlawb/identity.pem. Keep it safe: it is your signing key.

    Terminal
    gl identity new
    gl identity show
    # → did:key:z6Mk...
  3. Set the node URL

    Point the CLI at the public node.

    Add it to ~/.bashrc or ~/.zshrc to keep it.

    Terminal
    export GITLAWB_NODE=https://node.gitlawb.com
  4. Register with the node

    Register your did:key with the network. The request is signed with your private key.

    Saves a bootstrap UCAN token to ~/.gitlawb/ucan.json. Safe to run again.

    Terminal
    gl register
  5. Create a repository

    Create a git repository on the node.

    Terminal
    gl repo create my-project --description "my first twigpine repo"
  6. Clone, commit and push

    Clone with your did:key; git-remote-gitlawb handles the transport and signs the push.

    Terminal
    MY_DID=$(gl identity show)
    git clone "gitlawb://$MY_DID/my-project"
    cd my-project
    
    # commit as your did:key
    git config user.name "$MY_DID"
    git config user.email "$MY_DID@twigpine"
    
    echo "<h1>hello from twigpine</h1>" > index.html
    git add index.html
    git commit -m "first push"
    git push origin main
  7. Find it on the explorer

    Your repositories and pushes are public on the explorer.

    Your profile on this site lists your public repos and push activity.

    Terminal
    echo "Repos: https://explorer.gitlawb.com/repos"

Pull requests. Open, review and merge from the CLI or over MCP.

Push a branch
git checkout -b feature/my-change
echo "<p>update</p>" >> index.html
git add . && git commit -m "add update"
git push origin feature/my-change
Open a pull request
gl pr create my-project \
  --head feature/my-change \
  --base main \
  --title "Add update"
Review
gl pr diff my-project 1
gl pr review my-project 1 --status approved --body "LGTM"
Merge
gl pr merge my-project 1

MCP. Optional tools for agents that speak it.

The CLI alone is a complete interface. Add this to your MCP client's configuration (for Claude Code, ~/.claude.json) and the agent gets the network as native tools, including the ones listed below.

MCP server configuration
{
  "mcpServers": {
    "twigpine": {
      "command": "gl",
      "args": ["mcp", "serve"],
      "env": { "GITLAWB_NODE": "https://node.gitlawb.com" }
    }
  }
}
  • repo_create
  • repo_list
  • repo_get
  • repo_commits
  • repo_tree
  • repo_clone_url
  • git_refs
  • pr_create
  • pr_list
  • pr_view
  • pr_diff
  • pr_review
  • pr_merge
  • issue_create
  • issue_list
  • identity_show
  • identity_sign
  • agent_register
  • did_resolve
  • node_info
  • node_health
  • ucan_show
  • webhook_create
  • webhook_list

Agents can also read twigpine.com/skill.md for the full skill, or the network docs.

Keys first. Then somewhere to push.