Personal dotfiles for macOS, Omarchy, and Ubuntu 24.x. Omarchy setup does not use Homebrew and leaves Omarchy-owned terminal/theme files alone.
git clone https://github.com/mikeastock/dotfiles.git ~/code/personal/dotfiles
cd ~/code/personal/dotfiles
make dot-allgit clone https://github.com/mikeastock/dotfiles.git ~/code/personal/dotfiles
cd ~/code/personal/dotfiles
make dot-omarchymake dot-omarchy claims home/config links around existing Omarchy files, installs fish and atuin with omarchy pkg add, switches the login shell to fish, and installs TPM. It leaves Ghostty, Alacritty, and Starship on Omarchy's copies, and removes ~/.config/tmux/tmux.conf so ~/.tmux.conf is the only tmux config. A post-update hook drops that XDG file again if omarchy update puts it back.
Do not run Update → Config → Tmux in the Omarchy menu. Log out once after the first install so the fish login shell applies. Then make install for agent skills.
Install 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-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 submodulesPersonal 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.
Forked bb plugins live in bb-plugins/<plugin>/, vendored as plain source so they can be modified in place. They are not part of make install; bb loads each one directly from its path in this repo.
cd bb-plugins/bb-plugin-t3sidebar
npm install
bb plugin install "$PWD" --yes # register with bb (once)
npx bb plugin dev # watch sources, hot-reload the frontendA plugin's bb id is its package.json name with the bb-plugin- prefix stripped, and its data lives in ~/.bb/plugins/<id>/, so renaming the package orphans that data. Backend changes (src/server.ts) need npm run build && bb plugin reload <id>. Each plugin keeps upstream pointing at the repo it was forked from; sync by diffing against that remote.
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.
OpenCode config lives in configs/opencode/opencode.jsonc. make install-configs overlays the managed Meta and RunInfra providers, default model, and small model onto ~/.config/opencode/opencode.jsonc (or opencode.json if that file already exists) while preserving any other local providers. Locally hardcoded provider apiKey values are kept; the tracked file uses {env:MODEL_API_KEY} and {env:RUNINFRA_GATEWAY_KEY} so secrets are not in git. The default model is meta/muse-spark-1.2 (Meta Model API via the Responses adapter). muse-spark-1.3 is also registered for when the account has access.
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. Custom skills use metadata.user-invocable-only: true in SKILL.md. 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
babysit-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 publicationfable-review— trusted Claude Fable code review workflow usingclaude -p --model claude-fable-5-1grok-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)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— code and comment simplification skill vendored frombholmesdev/skills, extended to cut over-engineering and needless defensiveness (explicit invocation only)unslop— AI-writing cleanup and human-voice editing skill vendored fromcursor/pluginscommit99559f2(explicit invocation only)zmx— guidance for managing persistent background terminal workskill-doctor— grade installed skills from real local sessions, then draft skill edits and a report; adapted fromwarpdotdev/common-skillswith the collector rewritten on a bundled Letta trajectory pipeline (each run builds its own throwaway data root:scripts/ingest.shpnpm-installs@letta-ai/trajectorywith a bundled grok-build patch and normalizes recent sessions from every local agent into it) (explicit invocation only)tmux— 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-toolscommit29ae733eli5— dead-simple HTML picture explainer for any topic, vendored fromanthropics/claude-plugins-community(eli5@claude-community) commit863e70dbro— restate the last message in plain human language, vendored fromdmmulroy/skillscommitcbd1929(explicit invocation only)product-description— outside-in, feature-by-feature behavior spec of a product from its code and tests, vendored fromsteveruizokgist83ae5c53revisionf9435a3
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 commit30dee860better-github-skill— agent-optimizedghworkflows (PR snapshot, review threads, CI failures) fromAVGVSTVS96/better-github-skillshow-me— concise visual explanations (diagrams, code-shape sketches, HTML artifacts) fromhumanlayer/skills
/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/refactor-pass- simplify recent changes/simplify- design a simplification plan before implementation
handoffandsession-query— vendored frombuildrtech/dotagentscommita484ad4openai-fast— mirrorscalesennett/pi-codex-fast;/codex-fasttoggles priority service-tier requests for supported OpenAI Codex models, shows an inline⚡beside the model without adding a status line, and stores state underpi-codex-fast.enabledin Pi settingspi-prompt-shelf— local copy oftanishqkancharla/pi-prompt-shelf; shelves editor prompts per session with shortcuts and/shelffull-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
├── configs/ # managed agent configs (Codex, OpenCode, Omarchy)
├── amp-plugins/ # custom Amp plugins
├── pi-extensions/ # Pi extensions
├── pi-themes/ # Pi themes
├── prompts/ # Pi prompt templates
├── plugins/ # plugin submodules
├── bb-plugins/ # forked bb plugins
├── 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
- Hyprland config lives in
.config/hyprand is claimed bymake dot-omarchy - Ghostty, Alacritty, and Starship stay on Omarchy so theme switches keep working
- tmux is only
~/.tmux.conf; the installer removes~/.config/tmux/tmux.confand installsconfigs/omarchy/hooks/post-update.d/drop-omarchy-tmux.hook - Existing Omarchy files that get replaced are copied to
~/.config/dotfiles-setup-backup-<timestamp>
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