Environment Variables
All DOT_*, DOTFILES_*, and OMARCHY_* options that influence dot.
These variables tune paths and behaviour for dot. Most have sensible defaults; set them only when you need to override the default.
Managed toolchain
The global mise configuration (mise/.config/mise/config.toml) pins the shared developer toolchain, including the Skills CLI used by dot skill-updates and memex for browsing and searching local coding-agent history. The matching Herdr plugin provides session palettes, browsing, resume, indexing, and web UI actions. Node.js and Bun versions are also declared in the repository root mise.toml for dot and docs tasks.
Python 3.14 and uv are installed through mise for Python package and virtual-environment management. Use uv directly for project work; topgrade leaves mise pins unchanged unless you run mise install or dot update.
The stowed mise wrapper keeps the global config under dotfiles control. Commands such as Omarchy’s mise use -g <tool> are redirected to ~/.local/state/mise/omarchy-config.toml, while reads, installs, upgrades, project-local writes, and mise-generated tool shims continue normally. It also selects mise’s HTTP backend for Claude Code so updates use Anthropic’s native binary distribution instead of the retired npm archive. To intentionally change the stowed global config, opt in explicitly:
mise --write-global-config use -g --pin node@26
The configuration also provides the Android SDK command-line tools and sets the SDK environment for Gradle and sdkmanager. Individual Android repositories still declare their required platform and build-tools versions; install those SDK packages with sdkmanager when a checkout requires them.
Paths and overlay
| Variable | Description |
|---|---|
DOTFILES_PUBLIC_DIR |
Public dotfiles path (default ~/.config/dotfiles). |
DOTFILES_PRIVATE_DIR |
Private dotfiles path (default ~/.config/dotfiles-private). |
DOT_ALLOW_PRIVATE |
Private overlay policy: optional auto, required always, or skipped never (default auto). A failed attempted clone is fatal in auto mode. |
Git and GitHub
| Variable | Description |
|---|---|
DOT_GIT_CONFIG_FILE |
Private git repo config for git-diff, git-notifications --bar-json, update, and doctor (default $DOTFILES_PRIVATE_DIR/dot-git.yml). |
DOT_GITHUB_RETRIES |
Extra gh retry attempts after the first try (default 2). |
DOT_GITHUB_RATE_LIMIT_TTL_SECONDS |
Seconds to cache gh api rate_limit results (default 60). |
DOT_GITHUB_RATE_LIMIT_MIN_REMAINING |
Minimum REST quota remaining before gh calls wait (default 0). |
DOT_GITHUB_RATE_LIMIT_MAX_WAIT_SECONDS |
Upper bound on rate-limit backoff waits (default 60). |
DOT_FETCH_TTL_SECONDS |
Seconds to reuse the last upstream fetch (default 300). |
DOT_GH_EXTENSIONS_FILE |
Public gh extension list installed by dot init (default $DOTFILES_PUBLIC_DIR/.dot-gh-extensions). |
DOT_GH_MCP_BEARER |
Bearer token for the read-only GitHub MCP server. The shell wrappers and opencode-server set it only for agent harness processes; it is not exported globally. |
Packages
| Variable | Description |
|---|---|
DOT_PUBLIC_PACKAGES_FILE |
Public Arch/AUR package list for dot init and package checks (default $DOTFILES_PUBLIC_DIR/.dot-public-packages). |
DOT_PUBLIC_PACMAN_REPO_CONFIG |
Signed public pacman repo snippet written by dot (default /etc/pacman.d/timmo.conf). |
DOT_PUBLIC_PACMAN_MAIN_CONFIG |
Main pacman config scanned for the public repo include (default /etc/pacman.conf). |
DOT_PRIVATE_PACKAGE_REPO_FILE |
Private pacman repo config (default $DOTFILES_PRIVATE_DIR/.dot-private-package-repo). |
DOT_PRIVATE_PACKAGES_FILE |
Private package list override (default base list plus .dot-private-packages--<host>). |
DOT_PRIVATE_PACKAGE_MAP_FILE |
Private package name-to-source map for dot private-pkg-publish (default $DOTFILES_PRIVATE_DIR/.dot-private-package-map). |
DOT_PRIVATE_PACMAN_REPO_CONFIG |
Pacman repo snippet path written by dot (default /etc/pacman.d/timmo-private.conf). |
DOT_PRIVATE_PACMAN_MAIN_CONFIG |
Main pacman config file scanned for the private repo Include (default /etc/pacman.conf). |
DOT_PRIVATE_BROWSER_CHECKS_FILE |
Private browser-extension doctor checks (default $DOTFILES_PRIVATE_DIR/.dot-browser-checks). |
Omarchy and Hyprland
| Variable | Description |
|---|---|
OMARCHY_REPO_BASE_DIR |
Omarchy repo base path (default ~/.config). |
OMARCHY_HOST |
Hypr host override name; dot init defaults to desktop when unset unless --host <name> is passed. |
Init and logging
| Variable | Description |
|---|---|
DOT_INIT_NONINTERACTIVE |
Force non-interactive init mode (1|0, default 0). |
DOT_INIT_LOG_FILE |
Default dot init log path when --log is not passed (default ~/.local/state/dot/init.log). |
DOT_LOG_FILE |
Active log file for the current dot run. Set automatically during dot init; child commands inherit it when DOT_TEE_INHERIT_LOG=1. |
DOT_LOG_MIRROR_FILE |
Secondary log destination mirrored after each write. Set automatically when dot init --log targets a GVFS path that cannot be written directly. |
DOT_TEE_INHERIT_LOG |
When 1, child processes launched by dot append stdout/stderr to DOT_LOG_FILE (set automatically during dot init). |
DOT_UFW_RULES_FILE |
ufw rules file scanned by the firewall setup and doctor check (default /etc/ufw/user.rules). |
Agents sync
dot agents-sync mirrors ~/.config/opencode/AGENTS.md to agent harness instruction files. It runs automatically at the end of full dot update and dot init; phase-scoped updates skip it. There is no environment toggle to disable it.
Each target receives a transformed copy with harness-appropriate formatting where needed. All targets include a dot agents-sync HTML comment with source path and timestamp. OpenCode remains the single source of truth; other agent harnesses get plain file copies, not symlinks.
| Variable | Description |
|---|---|
DOT_AGENTS_SYNC_SOURCE |
AGENTS file to mirror (default ~/.config/opencode/AGENTS.md). |
DOT_AGENTS_SYNC_RULE_FILE |
Override path for a primary agents-sync target (default ~/.cursor/rules/global-agents.mdc). |
MCP sync
| Variable | Description |
|---|---|
DOT_MCP_CONFIG_FILE |
Private MCP sync spec read by dot mcp-sync (default $DOTFILES_PRIVATE_DIR/mcp.yml). |
Debugging and output
| Variable | Description |
|---|---|
DOT_DEBUG |
Enable stderr debug logging from dot subsystems (1 or any non-empty value). |
DOT_USAGE_DIR |
Usage event root (default $XDG_STATE_HOME/tool-usage). |
DOT_USAGE_DISABLE |
Disable automatic live dot usage recording when set to 1; explicit backfill still writes. |
DOT_CONTEXT_CAPTURE |
Capture assembled OpenCode starter context when set to 1. |
DOT_CONTEXT_CAPTURE_DIR |
Parent for private context-baseline-* capture directories (default /tmp/opencode). |
NO_COLOR |
Disable ANSI colour in TTY-aware output such as context git (any non-empty value). |
Context capture writes numbered system-prompt segments, system-index.json, per-tool schemas, and tools.jsonl into a unique private child directory. It measures assembled context without changing prompts or tool definitions.
Agent detection
| Variable | Description |
|---|---|
DOT_AGENT |
Override AI agent detection used by dot is-agent and the interactive-TUI guard: 1 forces agent mode, 0 forces it off, unset auto-detects. |
Notes
| Variable | Description |
|---|---|
NOTES |
Notes vault git repo used by the standalone notes CLI/MCP server and OpenCode note commands (preferred; default ~/Documents/notes). |
DOT_NOTES_DIR |
Compatibility notes vault override used when NOTES is unset. |