Personal dotfiles for macOS, with Ubuntu 24.x/Linuxbrew support for the shell, tmux, Herdr, and agent-tooling setup.
git clone https://github.com/mikeastock/dotfiles.git ~/code/personal/dotfiles
cd ~/code/personal/dotfiles
make dot-allInstall Homebrew/Linuxbrew first, then:
git clone https://github.com/mikeastock/dotfiles.git ~/code/personal/dotfiles
cd ~/code/personal/dotfiles
make dot-allmake dot-all skips macOS-only defaults on Linux.
This repo also contains reusable skills, prompt templates, and extensions for Amp, Claude Code, and Pi Coding Agent.
- Python 3.11+
- Git
- Homebrew or Linuxbrew for
make dot-install
make install # install agent skills/prompts/themes/extensions and Amp plugins
make install-tools # install pinned external agent tools such as dcg and scopey
make setup-tools # configure installed tools that integrate with agents
make install-skills
make install-amp-plugins
make install-prompts
make install-themes
make install-extensions
make install-configs
make build # build agent artifacts only
make clean # clean agent build/install artifacts
make plugin-update # update plugin submodulesExternal native tools are pinned under [external_tools] in plugins.toml. They are installed into ~/.local/bin without allowing upstream installers to modify agent settings; this repository owns those settings through make install-configs. The full make install workflow installs tools, applies managed configs, then runs any declared tool setup. Scopey therefore installs hooks for Claude, Codex, Grok, Pi, and OpenCode after the managed Codex hook configuration is in place.
Personal Amp plugins live in amp-plugins/*.ts. make install-amp-plugins copies them into ~/.config/amp/plugins/. This repo also includes a local TypeScript declaration refresh so plugin files can import PluginAPI from @ampcode/plugin without publishing or installing a separate package.
make amp-plugin-types # generate types/ampcode-plugin.d.ts from this Amp CLI
make amp-plugin-check # refresh plugin types and run TypeScript
make install-amp-plugins # copy amp-plugins/*.ts into ~/.config/amp/plugins/After changing a plugin, rerun make install-amp-plugins, then run plugins: reload from Amp's command palette or restart Amp. See amp-plugins/README.md for the plugin development loop and example.
Amp settings live in amp-configs/settings.json. make install-configs merges those managed settings into ~/.config/amp/settings.json while preserving any other local Amp settings already present.
make install preserves manually installed skills, Amp plugins, Pi extensions, prompts, and themes that live beside dotfiles-managed artifacts. The installer tracks top-level managed names in ~/.local/state/dotfiles/agent-install-manifest.json, overwrites those managed artifacts on each install, and removes managed artifacts that are no longer built. If a built artifact conflicts with an existing unmanaged path, the install fails; rerun the underlying build script with --force only when you want dotfiles to claim that path.
Plugin skills can be restricted to explicit user invocation with skills_user_invocable_only in plugins.toml. The build emits disable-model-invocation: true for Claude and Pi, plus policy.allow_implicit_invocation: false in agents/openai.yaml for Codex. The Codex metadata is included in the Pi/shared build because Codex also scans ~/.agents/skills.
pi-install
pi- Canonical Pi tool:
npm:@earendil-works/pi-coding-agent@latestin global mise config pi-installinstalls or updates Pi through mise, runsmake install-configs, and appliespi-configs/pi-patch/to the mise-managed package rootpiis provided by mise after installation/reshim
receiving-code-reviewandfetch-ci-build— vendored superpower skills frombuildrtech/dotagentsbabysit-pr— GitHub PR monitoring/babysitting workflow imported fromopenai/codexcommit7e569f1editorial-sketches— editorial article illustration skill vendored fromhelloianneo/ian-xiaohei-illustrationscommit91b5608technical-explainer-comic— evidence-backed technical comic workflow with editorial panels, expandable traces, responsive HTML, browser QA, and static publicationoracle— @steipete/oracle CLI workflow for second-model reviews with selected repo contextfable-review— trusted Claude Fable code review workflow usingclaude -p --model claude-fable-5grok-review— safe Grok Build review workflow delegating branch and explicit dirty-tree reviews to Grok's native/reviewskillgrok-driver— headless Grok as implementation driver for frozen work orders, with the host agent as coordinator (complement ofgrok-review)review-gauntlet— multi-model review → Fable triage → fix loop via the Grokreview-gauntletworkflow /code-review-loopCLI (replaces review-council)writing-mike-ruby-style— Mike's personal Ruby/Rails style (mirrors his canonical style rules)prepare-branch-context— read-only branch diff, commit, and PR context gathering skill vendored fromjnsahaj/skillssimplify— behavior-preserving code and comment simplification skill vendored frombholmesdev/skillszmx— guidance for managing persistent background terminal worktmux— remote control tmux sessions through the active server, with an agent-neutral fallback socket when no server is runningbuildr-artifacts— publish browser-viewable Buildr artifacts as static S3-hosted HTML/assets or stateful Vite apps served from Codexbox withbld.runURLssocratic-quiz— guided Socratic questioning for deep understanding, vendored frompchalasani/claude-code-toolscommit29ae733
shaping,breadboarding, andbreadboard-reflection— explicit-only product shaping and breadboard workflows fromrjs/shaping-skillsprototype,grill-with-docs,teach, andwriting-great-skills— workflow and teaching skills frommattpocock/skillsimprove— codebase audit and self-contained implementation planning skill fromshadcn/improveimpeccable— frontend design, critique, polish, and live iteration skill frompbakaus/impeccablethermo-nuclear-code-review— strict structural and architectural code review skill fromintercom/2x-skillseffect— opinionated production Effect v4 guide fromkitlangton/skills, pinned as a plugin submodule at commit30dee860
/bdev-qa- run Buildrbdev qa, diagnose failures, and optionally post results to a PR/commit- create a focused Conventional Commit from task-related changes/merge-main- merge the latest base branch into the current branch with conflict and verification guardrails/open-pr- push the current branch and open a PR with summary and verification/pr-comments- fetch PR review comments and evaluate them before changing code/review-loop- run a parent-orchestrated adversarial review loop
handoffandsession-query— vendored frombuildrtech/dotagentscommita484ad4openai-fast— mirrorscalesennett/pi-codex-fast;/codex-fasttoggles priority service-tier requests for supported OpenAI Codex models, with state stored underpi-codex-fast.enabledin Pi settingspi-prompt-shelf— local copy oftanishqkancharla/pi-prompt-shelf; shelves editor prompts per session with shortcuts and/shelfpi-codex-conversion— local copy ofIgorWarzocha/pi-codex-conversion; adds Codex-style tools and prompt adaptation for OpenAI/Codex models in Pifull-read-for-paths— upgrades partialreadcalls to full reads for configured resource-file pathsrevdiff— adds/revdiffto launch the revdiff TUI and send captured annotations back to Pi
dotfiles/
├── .config/ # shell/editor/terminal configs
├── skills/ # custom agent skills
├── amp-configs/ # managed Amp settings
├── amp-plugins/ # custom Amp plugins
├── pi-extensions/ # Pi extensions
├── pi-themes/ # Pi themes
├── prompts/ # Pi prompt templates
├── plugins/ # plugin submodules
├── scripts/build.py # agent build/install system
├── tests/ # agent tooling tests
└── Makefile # dotfiles + agent commands
Recommended apt packages before or after make dot-all:
sudo apt update
sudo apt install -y fish tmux ripgrep fd-find xclip wl-clipboard xsel fonts-firacode- Linux clipboard integration in tmux uses the first available tool from:
wl-copy,xclip,xsel - Herdr config is symlinked to
~/.config/herdr/config.tomland uses tmux-likeCtrl-aprefix bindings tmux-mem-cpu-loadis optional; the tmux status bar falls back touptime- Install the configured fonts (
Fira Code/FiraCode Nerd Font) if you want terminal rendering to match macOS - If you prefer one package manager across macOS and Linux, install Homebrew/Linuxbrew and use
make dot-install
If having issues with VIM and paths in macOS:
sudo mv /etc/zshenv /etc/zprofileSee: http://stackoverflow.com/questions/13708719/vim-path-configuration-in-os-x