Skip to content
dot
Esc
↑↓navigate↵open⌘Jpreview

dot

Your Mac, as code.

Set it up from plain text, keep it that way, and work on your projects. One command on a clean Mac; one line per setting after that.

Get started →Read the docs →

It's yours.

The engine is shared; the choices are yours. Apps, preferences and tools live in config/, and everything personal in one file git ignores.

Get started →

Your Mac, as text.

One line per setting. dot check shows what differs and never changes anything; dot apply fixes only that.

# config/dock.conf
dock visibility hidden

$ dot check
✓ dock visibility hidden
~ trackpad tap-to-click true
Your Mac →

Every project, one command away.

Repos land in ~/code/owner/repo. Secrets come from 1Password when a project runs, never as files on disk.

$ dot clone vercel/next.js
~/code/vercel/next.js

$ dot secret attach app-payments PAYMENTS_KEY
Your projects →

A setting is one function.

Add what dot doesn't have. dot defaults diff helps find where macOS keeps a setting, without printing what's private.

dock_visibility() {
  case $1 in
    autohide) default com.apple.dock autohide -bool true ;;
  esac
  restart Dock
}
Extend dot →

Safe to inspect. Changes wait for you.

Agents run dot check freely; applying, cloning and anything with sudo need your OK. The docs ship as llms.txt and raw Markdown.

Agents →