My dotfiles, managed by mise
Templates and setup snapshots live in home/, mirroring $HOME. Mise tracks ordinary live configs and saves their history locally.
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.
This machine has migrated to local tracking. The installer does not yet restore
tracked live files on a new machine; restore them from a backup before enabling
the watcher. The home/ snapshots retain the pre-migration ordinary configs. Personal settings are the default; see per-machine config for work settings.
Requires mise 2026.9.2 or newer. Ordinary configs are regular live files tracked by
~/.config/mise/config.toml. The mise-history user service saves edits locally.
No history origin is connected; nothing is uploaded automatically.
Edit live files with your usual editor. Inspect or restore saved versions with:
mise bootstrap dotfiles status
mise bootstrap dotfiles history --path ~/.config/starship.toml
mise bootstrap dotfiles rollback ~/.config/starship.toml --dry-run
mise bootstrap dotfiles rollback ~/.config/starship.toml
mise bootstrap dotfiles undoTemplates still live in home/. Edit their source files, then run from ~/.dotfiles:
mise run sync
mise bootstrap dotfiles status --missingsync renders templates and maintains the shared OMP/PI MCP link. It does not
copy ordinary configs or publish history. Template sources also have automatic
local history. OMP and PI use the same live ~/.pi/agent/mcp.json file.
To track another live file:
mise bootstrap dotfiles track ~/.config/example.confTracking declarations must be in the global mise config, not project mise.toml.
The repository's non-template home/ files are setup snapshots; live edits no
longer update those snapshots. Git pull alone does not update tracked live files.
The repository copy of the global mise config is also a setup snapshot.
Check or start the background service with:
mise bootstrap services status
mise bootstrap services apply --yesHistory is local until a separate origin is explicitly configured. 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, link AGENTS.md + 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 the full mise bootstrap when you also want packages, tools, and the final bootstrap task.
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. Optional workflows live in ~/.config/agent-workflows/ as plain Markdown files and are read only when requested. This setup does not install or share skills.
Codex, PI, OMP, and OpenCode use Astra with medium reasoning. All OMP model roles use openai-codex/gpt-6-astra:medium. Live agent settings and workflow files have local mise history. 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. mise.local.toml adds machine settings. The global mise config owns live tracking and the history service. home/ retains template sources and setup snapshots.
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 calls mise bootstrap dotfiles apply --yes: layout runs once before 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