Ubuntu Bash Home profile setup, includes vimrc's profiles some git commands
Go
48
599 commits
updated Sep 21, 2026
An agent-first development environment for macOS and Linux.
Two things live here: a shared context and safety layer that lets
Antigravity CLI (agy) and
Claude Code work from the same skills, hooks,
and rules — and the SDK, a set of small Go tools that make
letting an agent actually do things survivable.
Nine single-binary Go tools (plus a shared library) covering the loop: let an agent work → let it commit without losing anything → see what's happening → roll it out everywhere → keep the repo it pushes to configured the way you meant.
| Tool | Reach for it when… |
|---|---|
gss | An agent is about to touch git |
tmux-mgr | One agent isn't fast enough |
gsl | You can't tell how much context is left |
fleet | You have more machines than you can ssh into |
gff | "Skip that step on this machine" |
wlink | ssh host hangs from WSL but ssh <ip> works |
wol | The machine you need is powered off |
gcfg | Someone changed a repo setting and nobody knows who |
ghapp | A workflow needs admin rights GITHUB_TOKEN hasn't got |
libs | You're writing tool #8 |
→ What each tool solves, with demos
git clone https://github.com/sfc-gh-eraigosa/dotfiles.git ~/git/dotfiles
~/git/dotfiles/install.sh
The installer is interactive — prompts are front-loaded, but on Windows/WSL
the Desktop deploy runs at the end, so stay nearby. It symlinks core configs
(.zshrc, .tmux.conf, …) into $HOME, initializes nvm/pyenv/goenv/rbenv,
builds the SDK binaries into ~/opt/bin/, and installs both assistants
pre-loaded with the shared skills.
Both assistants read the same skills, hooks, and progressive context — write a skill once, use it in either.
SKILL.md is linked into both assistants by sync-skills. ai/skills/rm -rf * and gate gss push. ai/hooks/AGENTS.md at each level (CLAUDE.md is a symlink to it).Choosing between them: Claude Code for long-context multi-file refactors and
slash-command workflows; Antigravity for fast tool-call loops and repos with
.agents/ config. Either works headless in a tmux pane. You can switch
mid-project — they read the same context.
| Path | Description |
|---|---|
sdk/ | Go tools — gss, tmux-mgr, gsl, fleet, gff, wlink, wol, gcfg, ghapp, libs. |
opt/bin/ · opt/profiles/ | Utility scripts (on $PATH) and shell configuration. |
src/ | Non-Go tooling and agent skills. |
ai/ | Assistant config: skills, hooks, teams, plugin manifest. |
docs/ | Documentation; design work starts in docs/mbo/. |
| Command | Action |
|---|---|
/gss · /gss-scan · /gss-pr | Repo status · find dirty repos · open a PR |
/tmux-agent | Spawn / list / fan-in parallel agents |
/ssh-find <alias> · /ssh-keys | Discover a host's IP · manage keys across hosts |
gss push | Safely backup, sync, and push |
fleet status · fleet tui | Which hosts are out of sync · interactive dashboard |
gcfg verify · gcfg apply | Is this repo configured as declared · make it so |
Heads up: this repo deliberately makes every machine's keyboard behave like a
Mac. install.sh turns this on by default, so a fresh install will change your
shortcuts. The goal is one set of muscle memory everywhere — the same Cmd+C
works on the Windows box, the Linux desktop, and the Mac.
The Command key is Super (the ⊞/⌘ key next to Alt). Ctrl is left alone, so
Ctrl+C is still SIGINT in a terminal.
| Shortcut | Action | Shortcut | Action | |
|---|---|---|---|---|
Cmd+C V X | Copy / paste / cut | Cmd+← → | Start / end of line | |
Cmd+A Z ⇧Z | Select all / undo / redo | Cmd+↑ ↓ | Top / bottom of document | |
Cmd+S F G | Save / find / find next | Cmd+⇧+←→↑↓ | …and select while moving | |
Cmd+T ⇧T W | New tab / reopen / close | Opt+⌫ | Delete previous word | |
Cmd+1…9 | Jump to tab N | Cmd+⌫ | Delete to start of line | |
Cmd+Q M H | Quit / minimize / hide | Cmd+[ ] | Browser back / forward | |
Cmd+Tab | Switch application | Cmd+Opt+←→↑↓ | Tile / maximize window | |
Cmd+Space | Spotlight (Activities search) | Cmd+L | Lock screen | |
(tap Cmd alone) | Nothing, as on macOS |
In a terminal the destructive chords are handled for you: Cmd+C copies
(never SIGINT), and Cmd+S / Cmd+Z / Cmd+D are inert rather than freezing,
suspending, or logging out of your shell.
One flag covers every OS — Linux (keyd + GNOME) and Windows (AutoHotkey + the Copilot-key remap):
gff set keyboard.macos.enabled false && ./install.sh # leave every keyboard stock
To remove it from a Linux machine that already has it:
~/opt/scripts/system/macos-keys-linux.sh --uninstall
If a remap ever misbehaves, hold Backspace + Esc + Enter together to panic-quit the keyd daemon and get a stock keyboard back instantly.
Full key table, platform coverage, and troubleshooting: docs/macos-keys.md.
Host-specific settings that would break other machines go in ~/.zshrc.local —
sourced last, overrides everything, never tracked.
See docs/machine-local-overrides.md.
See CONTRIBUTING.md for the development workflow and how to
validate changes with the Makefile. Merges go through the Mergify queue —
docs/mergify.md.
Licensed under the Apache License, Version 2.0.
Safeguards: 🛡️ Turn Break Mandate, 🛠️ OS-Level GSS Confirmation, 🧪 27-Case Hook Test Suite, 🧪 Automated CI Validation.
Go
70.1%
Shell
24.6%
PowerShell
3.1%
AutoHotkey
1.7%
Ubuntu Bash Home profile setup, includes vimrc's profiles some git commands
Go
48
599 commits
updated Sep 21, 2026
An agent-first development environment for macOS and Linux.
Two things live here: a shared context and safety layer that lets
Antigravity CLI (agy) and
Claude Code work from the same skills, hooks,
and rules — and the SDK, a set of small Go tools that make
letting an agent actually do things survivable.
Nine single-binary Go tools (plus a shared library) covering the loop: let an agent work → let it commit without losing anything → see what's happening → roll it out everywhere → keep the repo it pushes to configured the way you meant.
| Tool | Reach for it when… |
|---|---|
gss | An agent is about to touch git |
tmux-mgr | One agent isn't fast enough |
gsl | You can't tell how much context is left |
fleet | You have more machines than you can ssh into |
gff | "Skip that step on this machine" |
wlink | ssh host hangs from WSL but ssh <ip> works |
wol | The machine you need is powered off |
gcfg | Someone changed a repo setting and nobody knows who |
ghapp | A workflow needs admin rights GITHUB_TOKEN hasn't got |
libs | You're writing tool #8 |
→ What each tool solves, with demos
git clone https://github.com/sfc-gh-eraigosa/dotfiles.git ~/git/dotfiles
~/git/dotfiles/install.sh
The installer is interactive — prompts are front-loaded, but on Windows/WSL
the Desktop deploy runs at the end, so stay nearby. It symlinks core configs
(.zshrc, .tmux.conf, …) into $HOME, initializes nvm/pyenv/goenv/rbenv,
builds the SDK binaries into ~/opt/bin/, and installs both assistants
pre-loaded with the shared skills.
Both assistants read the same skills, hooks, and progressive context — write a skill once, use it in either.
SKILL.md is linked into both assistants by sync-skills. ai/skills/rm -rf * and gate gss push. ai/hooks/AGENTS.md at each level (CLAUDE.md is a symlink to it).Choosing between them: Claude Code for long-context multi-file refactors and
slash-command workflows; Antigravity for fast tool-call loops and repos with
.agents/ config. Either works headless in a tmux pane. You can switch
mid-project — they read the same context.
| Path | Description |
|---|---|
sdk/ | Go tools — gss, tmux-mgr, gsl, fleet, gff, wlink, wol, gcfg, ghapp, libs. |
opt/bin/ · opt/profiles/ | Utility scripts (on $PATH) and shell configuration. |
src/ | Non-Go tooling and agent skills. |
ai/ | Assistant config: skills, hooks, teams, plugin manifest. |
docs/ | Documentation; design work starts in docs/mbo/. |
| Command | Action |
|---|---|
/gss · /gss-scan · /gss-pr | Repo status · find dirty repos · open a PR |
/tmux-agent | Spawn / list / fan-in parallel agents |
/ssh-find <alias> · /ssh-keys | Discover a host's IP · manage keys across hosts |
gss push | Safely backup, sync, and push |
fleet status · fleet tui | Which hosts are out of sync · interactive dashboard |
gcfg verify · gcfg apply | Is this repo configured as declared · make it so |
Heads up: this repo deliberately makes every machine's keyboard behave like a
Mac. install.sh turns this on by default, so a fresh install will change your
shortcuts. The goal is one set of muscle memory everywhere — the same Cmd+C
works on the Windows box, the Linux desktop, and the Mac.
The Command key is Super (the ⊞/⌘ key next to Alt). Ctrl is left alone, so
Ctrl+C is still SIGINT in a terminal.
| Shortcut | Action | Shortcut | Action | |
|---|---|---|---|---|
Cmd+C V X | Copy / paste / cut | Cmd+← → | Start / end of line | |
Cmd+A Z ⇧Z | Select all / undo / redo | Cmd+↑ ↓ | Top / bottom of document | |
Cmd+S F G | Save / find / find next | Cmd+⇧+←→↑↓ | …and select while moving | |
Cmd+T ⇧T W | New tab / reopen / close | Opt+⌫ | Delete previous word | |
Cmd+1…9 | Jump to tab N | Cmd+⌫ | Delete to start of line | |
Cmd+Q M H | Quit / minimize / hide | Cmd+[ ] | Browser back / forward | |
Cmd+Tab | Switch application | Cmd+Opt+←→↑↓ | Tile / maximize window | |
Cmd+Space | Spotlight (Activities search) | Cmd+L | Lock screen | |
(tap Cmd alone) | Nothing, as on macOS |
In a terminal the destructive chords are handled for you: Cmd+C copies
(never SIGINT), and Cmd+S / Cmd+Z / Cmd+D are inert rather than freezing,
suspending, or logging out of your shell.
One flag covers every OS — Linux (keyd + GNOME) and Windows (AutoHotkey + the Copilot-key remap):
gff set keyboard.macos.enabled false && ./install.sh # leave every keyboard stock
To remove it from a Linux machine that already has it:
~/opt/scripts/system/macos-keys-linux.sh --uninstall
If a remap ever misbehaves, hold Backspace + Esc + Enter together to panic-quit the keyd daemon and get a stock keyboard back instantly.
Full key table, platform coverage, and troubleshooting: docs/macos-keys.md.
Host-specific settings that would break other machines go in ~/.zshrc.local —
sourced last, overrides everything, never tracked.
See docs/machine-local-overrides.md.
See CONTRIBUTING.md for the development workflow and how to
validate changes with the Makefile. Merges go through the Mergify queue —
docs/mergify.md.
Licensed under the Apache License, Version 2.0.
Safeguards: 🛡️ Turn Break Mandate, 🛠️ OS-Level GSS Confirmation, 🧪 27-Case Hook Test Suite, 🧪 Automated CI Validation.
Go
70.1%
Shell
24.6%
PowerShell
3.1%
AutoHotkey
1.7%