This is a collection of configuration files for the tools that I like to use during software development: Neovim, Tmux (not so much anymore due to Neovide and my homegrown session management), Alacritty.
This project uses GNU Stow to create symlinks from this repository to your $HOME directory.
NOTE:
git clone https://github.com/WizardStark/dotfiles.git
cd dotfiles
./setup.sh
Use ./sync.sh after changing dotfiles-managed scripts or adding dependencies.
That includes newly added CLI dependencies such as worktrunk: keep them in the
repo-managed install sources (Brewfile or scripts/manifest.tsv) so setup.sh
and sync.sh bootstrap them automatically.
Pi is part of that reproducible setup:
scripts/manifest.tsvhome/.pi/agent/extensions/home/.pi/agent/settings.json
and ./sync.sh installs any missing entries via pi installedit tool override so edit diffs keep the customized full-width, syntax-highlighted TUI rendering without patching Pi’s installed files<C-a> <C-o> opens the session-grouped Pi notification inbox in a tmux popup. Use j/k to move, Enter to expand a session or open a historical notification, o to open, r to mark through the selection read, R to mark the session read, Tab to change views, a to toggle the default seven-day window/all-time history, and / to search. Notifications show the session/directory and submitted Pi task; the durable log is ~/.pi/agent/notifications.jsonl../sync.sh
./sync.sh applies changes by default; use --check for verification only.
If Homebrew/Linuxbrew is missing or not executable on the current host, ./sync.sh
now skips Brewfile-managed install/check steps and continues with the rest of the
repo-managed sync work on a best-effort basis.
Useful variants:
./sync.sh --check # verify Brewfile, extra tools, Pi packages, and stow state
./sync.sh --check --verbose
./sync.sh --with-sudo # also update login shell with sudo-backed chsh
Setup script variants depending on machine state:
./setup.sh # new machine bootstrap
./setup.sh --post-brew # brew already installed
./setup.sh --post-brew --no-sudo
home/.pi/agent/skills/grill-me/SKILL.md provides an opt-in design interview:
/skill:grill-me Build a notification preferences UI
The agent inspects relevant repository facts, asks focused rounds of questions, challenges assumptions, and follows consequential branches through scope, UX, interfaces, data, failure modes, security, operations, and validation. It keeps a working decision ledger and produces an implementation brief for your approval. No implementation changes happen before you explicitly approve the final brief. You can ask for interview-only output, shorten the interview, or stop at any time.
The skill is explicit-only, so ordinary implementation requests are unaffected.
The stow-managed skills directory makes it available in Pi; run /reload in an
existing session after adding or editing it. This is an instruction-based workflow,
not a tool-level enforcement mechanism.
Run PI_OFFLINE=1 JITI_FS_CACHE=0 node --test tests/pi-grill-me-skill.test.mjs
to check native Pi discovery, metadata, and exclusion from automatic invocation.
The GPT-6 models in home/.pi/agent/settings.json compact when context exceeds
272,000 tokens. Pi uses contextTokens > contextWindow - reserveTokens, so each
exact model ID needs its own override calculated from its catalog context window:
1,000,000 - 728,000 = 272,000.1,050,000 - 778,000 = 272,000.The global 27,200-token reserve and 20,000 recent-token retention remain unchanged.
Reserve tokens also influence summarization output limits, capped by the model's
maximum output. After editing settings, run /reload in Pi.
Run PI_OFFLINE=1 JITI_FS_CACHE=0 node --test tests/pi-compaction-settings.test.mjs
to verify native settings resolution and the checkpoint boundaries against the
installed offline catalog. Run it after model/catalog upgrades or adding an enabled
GPT-6 ID; a changed context window must not silently shift the checkpoint.
The repo now uses a hybrid approach:
Brewfilestow still manages the dotfiles under home/mise runs the repo tasks declared in mise.tomlscripts/manifest.tsv tracks the non-brew extras managed by the sync flowCommon task entrypoints:
mise run bootstrap # new machine after setup.sh bootstraps mise itself
mise run sync # sync an existing machine
mise run sync-sudo # sync and update login shell with sudo
mise run sync-adopt # sync and let stow adopt existing unmanaged files
mise run sync-adopt-sudo
mise run check # verify current machine state
The most important keybinds are <space><space> in Neovim for the command palette,
wherein you can fuzzy find your way through most available commands, and <C-a>? for
a list of tmux binds - this is much less nice to use as I have not found a way to add
descriptions, but the commands are pretty self explanatory.
The tmux config is set up to use OSC 52 clipboard sync so tmux -> ssh -> tmux
copy operations update the local machine clipboard through the outer tmux client.
Requirements:
set-clipboard, refresh-client -l, and nested passthroughUseful tmux clipboard actions:
<C-a> y requests the current terminal clipboard and stores it in a new tmux
paste bufferTo prevent the Hyper key in windows opening copilot, run the following reg-edit command:
REG ADD HKCU\Software\Classes\ms-officeapp\Shell\Open\Command /t REG_SZ /d rundll32