A different SSH key per GitHub org — automatically. Configure your profiles below, then paste one command into your terminal. It installs the git-dispatch shell block and writes ~/.git_profiles.conf for you. The binary only ever did this setup — so here it is, fully in the browser.

Nothing leaves your machine. This page runs entirely in your browser and talks to no server. The command only writes file paths into a config file and appends a shell function to your rc file — it never reads, uploads, or touches the contents of your SSH keys. Everything it will do is shown in the previews below before you run it.

1 Profiles

Each profile maps a GitHub org/username pattern to an SSH key (and optionally a commit identity + signing). Profiles are matched top to bottom, first match wins — use the ↑ ↓ buttons to order them, and keep a catch-all .* profile last if you want a fallback.

2 Extras

What aliases?

    

3 Your ~/.git_profiles.conf

This is exactly what will be written. You can also edit it directly later — bipolar re-reads it on every git command.

(add a profile above)
Show the shell block that gets added to your rc file

    

4 Install

Pick whichever you trust more — they do the same thing. Requires bash or zsh and openssl (preinstalled on macOS & most Linux). Re-running is safe: it skips the block if already present and backs up any existing config to .bak.

Paste this into your terminal:


        
      

The long string is just your config + shell block base64-encoded so special characters survive the paste. Decode it yourself with … | openssl base64 -d — it's exactly the previews above.

Prefer to read every line first? Download and inspect, then run it:


      

Run with sh install.sh (or chmod +x install.sh && ./install.sh).

  1. Open your rc file: ~/.zshrc (zsh) or ~/.bashrc (bash).
  2. Paste the shell block from step 3 (“Show the shell block…”) at the end of the file.
  3. Create ~/.git_profiles.conf with the contents from step 3, then chmod 600 ~/.git_profiles.conf.
  4. Reload your shell: source ~/.zshrc (or ~/.bashrc).
  5. Done — every git push/pull/fetch/clone now picks the right key automatically.
Last step, every method: reload your shell so it takes effect now — source ~/.zshrc or source ~/.bashrc.