My dotfiles, managed by mise
Repo-owned configs and templates live in home/, mirroring $HOME. Mise links those configs, renders templates, and saves app-written settings in local history.
curl -fsSL https://dotfiles.frixaco.com | bash
cd ~/.dotfilesRequires mise 2026.9.2 or newer. Update an older installation with mise self-update before setup. The installer installs mise if missing, clones the repo, and runs bootstrap.
Personal settings are the default; see per-machine config for work settings. App-written settings are machine-local: configure them in the app or restore a backup on a new machine. Their home/ snapshots are references and are not deployed.
Edit repo-owned configs and template sources in home/. After editing or pulling repository updates, run from ~/.dotfiles:
mise run syncsync applies native file links and templates, restores sensitive permissions, ensures the history service is running, and fails if deployment is incomplete. It repairs missing links, overwrites conflicting files at managed targets, and includes new repo-owned files automatically. OMP and PI share the repo-owned MCP config, and all five agents share AGENTS.md.
The linked global mise config keeps tool declarations and tasks current too. Updating installed tools is separate: use ai:sync or lsp:sync below. Sync cannot fix configuration keys changed by a future app release; those source changes still need review.
Edit app-written settings through the app or their live file. The global mise config tracks Amp settings, btop settings, OpenCode TUI settings, OMP settings, Codex settings, and PI settings. Sync preserves those files and never deploys their repository snapshots. Git handles repo-owned configs; the mise-history user service handles these local settings.
Inspect or restore app settings with:
mise bootstrap dotfiles history --path ~/.pi/agent/settings.json
mise bootstrap dotfiles rollback ~/.pi/agent/settings.json --dry-run
mise bootstrap dotfiles rollback ~/.pi/agent/settings.json
mise bootstrap dotfiles undoTo track another live file:
mise bootstrap dotfiles track ~/.config/example.confTracking declarations must be in the global mise config, not project mise.toml. Edit its linked source at home/.config/mise/config.toml. If a new app-written snapshot is added under home/, also exclude it from the root symlink-each mapping before running sync.
Check or start the background service with:
mise bootstrap services status
mise bootstrap services apply --yesNo history origin is connected; nothing is uploaded automatically. Connecting an origin can publish earlier checkpoints as well as future edits.
mise bootstrap --only packages # install missing formulae and applications
mise run ai:sync # install agents, configure browser MCP, verify
mise run lsp:sync # install + verify language tools
mise bootstrap status --missing # check dotfiles, packages, and tools
mise bootstrap --dry-run # preview a full machine setupUse mise bootstrap --force-dotfiles --yes when you also want packages, tools, and the final bootstrap task. The installer uses these flags to replace conflicting files at managed targets.
On other Macs, import Vorssaint Settings.plist in Vorssaint under Settings → Advanced → Import settings.
mise.local.toml is gitignored and holds machine-specific variables:
[vars]
work = true # enables the Vbrato Git identity and rbenvThe work identity file is a shared mapping. The work variable only controls
whether ~/.gitconfig includes it. Apply profile changes with mise run sync.
A single ~/.config/AGENTS.md is shared across the configured AI tools. This setup does not install or share skills or workflows.
Model and reasoning preferences live in each agent's settings; OMP has separate model roles. App-written agent settings have local mise history. OpenCode's main config is repo-owned; its TUI settings are local. Authentication, conversations, and generated databases remain machine-local.
ai:link configures Codex’s Chrome DevTools MCP connection to the same browser endpoint used by PI, OMP, Amp, and OpenCode: http://127.0.0.1:9222. Start Helium with --remote-debugging-port=9222 using the existing signed-in profile. Restart the Codex session after changing its MCP configuration. The connection requires Helium to be running; setup does not restart the browser.
Amp model and effort pins are account settings, not local dotfiles. In Settings → Mode Dial → Tune Modes, select Astra with medium reasoning for Main Agent, Oracle, and Subagents in each mode, then save. These pins still need to be applied through a signed-in Amp session.
Run omp on each new machine to complete provider authentication.
Supported terminal and TUI configs use Cyberdream dark. For Fish, run fish_config theme save cyberdream.
mise run layout creates the same workspace on Windows, macOS, and Linux:
~/stuff/
├── code/
├── music/
├── 2d/
├── 3d/
└── dump/
Vbrato repositories live under ~/stuff/code/vbrato/, next to the deployed
.gitconfig-vbrato. A full bootstrap creates the layout before dotfiles;
mise run sync does the same for existing machines.
mise.toml owns file mappings, tasks, and hooks. Its native symlink-each mapping links individual repo-owned files without replacing their parent directories or unrelated files. Neovim's Lua files use the same per-file links; templates and app-written snapshots are excluded. mise.local.toml adds machine settings. The linked global mise config owns tools, agent/LSP tasks, local tracking, and the history service.
The secure hook restores 0600 on the 1Password source and rendered target because Git cannot preserve those permissions. On Windows it restricts access with icacls. Windows file symlinks can fall back to copies when link privileges are unavailable; automatic edit-through requires an actual link.
mise run sync force-applies dotfiles, overwriting conflicting files at managed targets, applies services, then checks dotfile status. layout runs once before dotfile apply, and secure runs once afterward. Full bootstrap runs:
- Shared Homebrew packages and macOS extras from
Brewfile.macos. layoutto create workspace directories.- Dotfile apply to link, copy, or render each target.
secureto restore sensitive permissions.mise installfor configured tools.ai:syncandlsp:syncto install and verify agents and language tools.
Vercel manages DNS for dotfiles.frixaco.com. Railway runs the redirect service from installer/ and checks /healthz during deployment. The root URL returns a temporary redirect to the copy of setup.sh on GitHub, so the short command always uses the script from the main branch.
Verify the public endpoint without running the installer:
curl -fsS https://dotfiles.frixaco.com/healthz
curl -fsSL https://dotfiles.frixaco.com | cmp - setup.sh