Docs menu

Files and environment variables

.md

The files Oak reads in a repo and in your home directory, and every environment variable.

In a repository#

PathVersioned?Purpose
.oak/โ€”The local repository: its database (.oak/oak.db), in-progress merge state, and hooks. Never committed, except the files below.
.oak/workflows/*.ymlYesCI workflows.
.oak/PERMISSIONSYesPath permissions, read from main.
.oak/attributesYesReserved for per-path attributes.
.oak/hooks/pre-commit, post-commitNoLocal hooks.
.oakignoreYesFiles Oak should ignore, in .gitignore syntax.
.gitignoreYesUsed only when there's no .oakignore.
AGENTS.md, CLAUDE.mdYesInstructions for coding agents; oak init offers to write them.
.claude/skills/oak-vcs/YesThe agent skill, from oak skill install.
.oak-spaceโ€”Marks the root of an agent space.

In your home directory#

PathPurpose
~/.local/bin/oakThe CLI, where the installer puts it.
~/.oak/credentialsSaved logins, one per server (from oak login).
~/.oak/mounts/Mount state and caches. Override with OAK_MOUNTS_ROOT.
~/.oak/version_checkWhen the CLI last checked for an update.
~/.oak/feedback.jsonThe contact email oak feedback remembers.
~/oaktree/The default parent directory for mounts.
~/.claude/skills/oak-vcs/The agent skill, from oak skill install --global.

Environment variables#

oak environment (or oak env) prints every variable below with its effective value โ€” secrets as set/unset only.

Server and credentials#

VariableEffect
OAK_REMOTEServer URL for this invocation, overriding the checkout's linked server.
OAK_API_KEYToken to authenticate with. Beats every stored credential. See API keys.
OAK_REPOorg/repo to link on a first push โ€” the same as oak push --repo.
OAK_SERVE_TOKENBearer token for oak serve.

Identity#

VariableEffect
OAK_AUTHORAuthor name on commits, and the prefix of generated branch names. Defaults to your login, then USER / USERNAME.
OAK_EMAILContact email for oak feedback.

Network#

VariableEffect
OAK_NO_UPDATE_CHECKTurn off the daily check for a new CLI version.
OAK_UPLOAD_CONCURRENCYParallel uploads during push.
OAK_DOWNLOAD_CONCURRENCYParallel downloads during clone and pull (default 32).
OAK_PROBE_TIMEOUT_SECSTimeout for server probes, 1โ€“300 (default 20).
OAK_ALLOW_PARTIAL_CLONERecovery only: skip files a broken server can't send instead of failing.
HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, NO_PROXYStandard proxy settings (lowercase forms too).

Mounts#

VariableEffect
OAK_MOUNTS_ROOTWhere mount state lives (default ~/.oak/mounts).

Output#

VariableEffect
OAK_VERBOSEPrint per-phase timings, like --verbose.
OAK_LOGLog filter for debugging (for example OAK_LOG=debug).
OAK_PROGRESSalways, never, or auto progress display.
OAK_SPINNERSpinner style: line, pulse, arc, minimal, oak.
NO_COLOR, CLICOLOR_FORCEDisable or force color.
CIWhen set, progress display is off by default.

Tools#

VariableEffect
OAK_DIFF_TOOLExternal program to use instead of oak diff's viewer.
PAGERPager for long output.
VISUAL, EDITOREditor for oak feedback and oak split (falls back to vi).

Set by Oak#

VariableWhere
OAK_HOOKIn hooks: the event name.
OAK_CI_RUN_ID, OAK_CI_COMMITIn CI steps.

Installer#

VariableEffect
INSTALL_DIRWhere install.sh / install.ps1 put the binary.
OAK_NO_LOGINSkip the installer's login prompt.

Something here wrong or missing? Run oak feedback -m "โ€ฆ" or email [email protected].