Installation Spec: The Remote AI Development Stack
Everything you need to reproduce the AI development setup from the blog post. Agent-executable on a fresh macOS machine.
Companion to My AI Dev Setup. Only covers what’s needed for the stack described there.
Prerequisites
- macOS 14+ (Apple Silicon)
- Homebrew installed
- GitHub CLI authenticated (
gh auth login) - Claude Code installed (
npm install -g @anthropic-ai/claude-code)
1. Core tools
brew install fish git gh lazygit rtk worktrunk yadm fzf zoxide bat eza ripgrep schpet/tap/linear
- fish — shell
- lazygit — git TUI (runs in the right pane)
- rtk — token optimizer for Claude Code
- worktrunk — git worktree manager with cmux integration
- linear — Linear CLI for ticket fetching (used by
wtn) - yadm — dotfile manager
Set fish as default shell:
echo /opt/homebrew/bin/fish | sudo tee -a /etc/shells
chsh -s /opt/homebrew/bin/fish
2. cmux
Install from cmux.dev. Native macOS app, built on libghostty.
Verify: cmux --version
3. OpenClaw
Install from openclaw.ai — both the macOS app and the CLI.
openclaw onboard --install-daemon
The app runs as a LaunchAgent (boots on login, stays alive). The CLI handles onboarding, skill management, and gateway configuration. Skills directory: ~/.agents/skills/.
4. Fish shell setup
Clone the dotfiles repo or grab the relevant files:
config.fish— abbreviations, PATH, worktrunk init, cmux shortcuts__wt_cmux_setup.fish— auto-provisions the three-pane layout when entering a project__wt_cmux_rename.fish— renames workspace tabs
Install fish plugins:
fish -c "curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher"
Save to ~/.config/fish/fish_plugins:
jorgebucaran/fisher
ilancosman/tide@v6
jorgebucaran/autopair.fish
meaningful-ooo/sponge
nickeb96/puffer-fish
Then: fish -c "fisher update"
5. Claude Code plugins
claude plugin install context-mode@context-mode # Context window virtualization
claude plugin install claude-hud@claude-hud # Status line
claude plugin install plannotator@plannotator # Plan annotation & code review UI
claude plugin install impeccable@impeccable # Design fluency skills
claude plugin install worktrunk@worktrunk # Worktree integration
claude plugin install telegram@claude-plugins-official # Telegram notifications
RTK is installed via homebrew (step 1) and works transparently through Claude Code hooks.
6. Workflow skills
npx skills add roderik/roderik.github.io
This installs the full workflow skill set:
| Skill | What it does |
|---|---|
brainstorm | Idea → PRD → Linear project + tickets |
execute | Linear ticket → plan → build → verify → PR |
shepherd | PR babysitting until merge-ready |
planner | Research-first planning with 7 parallel reviewers |
verifier | Completion checklists + full CI verification |
agent-reviews | PR review resolution (bot + human) — installed separately |
prd-builder | PRD drafting through iterative brainstorm |
task-builder | PRD decomposition into tickets |
tdd | Test-driven development enforcement |
testing | CI tier management (fast/checkpoint/full) |
sweep | Code quality review |
adversarial-review | 7-lens review framework |
7. Verify
fish --version
cmux --version
claude --version
rtk --version
rtk gain
wt --version
launchctl list | grep openclaw
Quick start
The fish wrapper functions (in the dotfiles) handle worktree creation, cmux layout, and agent launch in one command:
# Start work on a Linear ticket — creates worktree, sets up cmux, launches Claude via ACP
wtn PRD-1234
# Create a plain worktree with a branch name
wtc my-feature
# Pick an open PR (fzf picker) and check it out as a worktree
wtg
# Done — remove worktree, clean up branch, close cmux workspace
wtr
Each command calls __wt_cmux_setup automatically: Claude/Codex in the main pane, lazygit on the right, terminal at the bottom. wtn goes further — it fetches the ticket from Linear, names the workspace after it, and launches Claude Code with /execute via ACP so you can follow along from Telegram.
Companion to My AI Dev Setup. Last updated: 2026-03-22.