# dot > Your Mac, as code. Set it up from plain text, keep it that way, and work on your projects. ## Docs - [What is dot](https://dot.rbadillap.dev/docs): dot sets up a Mac from plain-text config, keeps it that way, and works with you on your projects. - [How dot compares](https://dot.rbadillap.dev/docs/compare): How dot differs from chezmoi, yadm, GNU Stow and classic dotfiles repos, and when another tool fits better. ## Get started - [Install](https://dot.rbadillap.dev/docs/get-started/install): Fork the repo and run one command on a clean Mac; it shows its plan before changing anything. - [Your values](https://dot.rbadillap.dev/docs/get-started/your-values): Everything personal lives in dot.toml, your name, identities and organizations, backed up to 1Password. - [Check and apply](https://dot.rbadillap.dev/docs/get-started/check-and-apply): See what differs from your config, then fix only that. - [1Password and GitHub](https://dot.rbadillap.dev/docs/get-started/1password-and-github): The two logins everything else builds on, an SSH key in 1Password, signed commits, and the GitHub CLI. - [Stay up to date](https://dot.rbadillap.dev/docs/get-started/stay-up-to-date): Pull the latest config, see what it would change, and keep dot's own requirements healthy. ## Your Mac - [Apps and tools](https://dot.rbadillap.dev/docs/your-mac/apps-and-tools): Install apps, fonts and command-line tools with one line each, all from Homebrew. - [System preferences](https://dot.rbadillap.dev/docs/your-mac/system-preferences): Dock, keyboard, trackpad, mouse, screenshots and the computer's name, one line each. - [Windows](https://dot.rbadillap.dev/docs/your-mac/windows): Tile windows in thirds and fourths with Rectangle, and change its shortcuts in config/. - [Shell and terminal](https://dot.rbadillap.dev/docs/your-mac/shell-and-terminal): zsh without a framework, the Starship prompt and Ghostty; your ~/.zshrc stays yours. - [Editor](https://dot.rbadillap.dev/docs/your-mac/editor): Your default editor for git and the terminal, and an editor whose settings live in your repo. - [Languages and versions](https://dot.rbadillap.dev/docs/your-mac/languages): Node, pnpm, Bun, Python and uv, with the right version in every project, through mise. - [Git and signing](https://dot.rbadillap.dev/docs/your-mac/git-and-signing): Your identity, signed commits with a key in 1Password, and a different identity for the repos under a folder. ## Your projects - [Clone and fork](https://dot.rbadillap.dev/docs/your-projects/clone-and-fork): Every repository at ~/code/owner/repo, one command away, with your fork and its upstream set up. ### Secrets - [Secrets](https://dot.rbadillap.dev/docs/your-projects/secrets): Project secrets in 1Password, attached to a project by reference and never written to disk. - [GitHub token](https://dot.rbadillap.dev/docs/your-projects/secrets/github): A least-privilege GitHub token for one project, stored in 1Password and attached to it. ### Accounts - [Accounts](https://dot.rbadillap.dev/docs/your-projects/accounts): Log in to account-based CLIs without leaving a token on disk, and what each login costs. - [AWS](https://dot.rbadillap.dev/docs/your-projects/accounts/aws): Log in to AWS through IAM Identity Center, with one profile per account and role, and no access keys. - [GitHub](https://dot.rbadillap.dev/docs/your-projects/accounts/github): Connect the GitHub CLI to a token in 1Password, once per account and in a minute on each Mac. - [Vercel](https://dot.rbadillap.dev/docs/your-projects/accounts/vercel): Connect the Vercel CLI to a token in 1Password, deploy without linking, and give a project a short-lived OIDC token. ## Extend dot - [How it works](https://dot.rbadillap.dev/docs/extend/how-it-works): Your choices, what they mean, and how macOS does them, in three layers, and where everything lives. - [Add a setting](https://dot.rbadillap.dev/docs/extend/add-a-setting): From a change in System Settings to a line in config/, in four steps. - [Find where macOS stores a setting](https://dot.rbadillap.dev/docs/extend/find-a-setting): Count what a change in System Settings writes with dot defaults diff, and reveal the keys you need. - [Add a command](https://dot.rbadillap.dev/docs/extend/add-a-command): One executable file per command, whose header is its help, its place in dot --help, and its completion. ## Agents - [Agents](https://dot.rbadillap.dev/docs/agents): What a coding agent may run on its own, what waits for you, and the hooks dot installs for Claude Code. ## Reference - [Commands](https://dot.rbadillap.dev/docs/reference/commands): Every dot command, by what it's for. - [Settings](https://dot.rbadillap.dev/docs/reference/settings): Every setting dot knows, with its values; dot explain prints the same list from the code. - [dot.toml](https://dot.rbadillap.dev/docs/reference/dot-toml): Every key and table dot.toml takes, and which settings use them. - [Exit codes and output](https://dot.rbadillap.dev/docs/reference/exit-codes): What dot's exit codes mean, and where its messages and results go. ## Agent resources - [llms-full.txt](https://dot.rbadillap.dev/llms-full.txt): The full Markdown of every page in one file. - [Page Markdown](https://dot.rbadillap.dev/index.md): Append `.md` to any page URL to fetch that page as raw Markdown. - [JSON API](https://dot.rbadillap.dev/api/docs/pages.json): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at https://dot.rbadillap.dev/openapi.json. - [API catalog](https://dot.rbadillap.dev/.well-known/api-catalog): RFC 9727 linkset of the APIs documented here. - [AI catalog](https://dot.rbadillap.dev/.well-known/ai-catalog.json): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs). - [agent-readability.json](https://dot.rbadillap.dev/agent-readability.json): Manifest of every agent-facing artifact on this site. - [Sitemap](https://dot.rbadillap.dev/sitemap.xml): Every indexable page URL with its last-modified date.