Environment variables

Friday reads a small set of environment variables at startup. They control where state lives, enable a couple of optional integrations, and tweak terminal behavior. AI provider credentials are not on this list: Friday's proxy auth uses gh auth token, so the credential path is gh auth login, not env vars. See Installation for the auth setup and Agent model for how the model is selected.

Friday reads

VariableWhat forRequired?Notes
FRIDAY_HOMEOverride the parent directory for Friday's state (settings, checkpoints, snapshots, plugin clones).No. Defaults to ~/.friday.Useful for per-machine isolation or putting state on a non-default disk. See File & directory layout.
NOTION_API_TOKENToken for the /share-conversation Notion export.Only if you use /share-conversation.Set in your shell rc so it's present when Friday launches.
APPDATA, TERM_PROGRAM, VSCODE_INJECTION, CURSOR*Read by /terminal-setup to detect the host editor and write the right Shift+Enter keybinding.No. Set by your OS or editor.You don't configure these yourself.

The gh CLI handles GitHub auth. Friday calls gh auth token to fetch the token at runtime, so any GitHub-related env vars (GH_TOKEN, GITHUB_TOKEN) are read by gh itself, not by Friday directly. Run gh auth status if you're debugging a GitHub auth problem.

Friday passes through

Bash mode and worker subprocesses inherit your shell environment. Anything exported in the shell that launched friday (PATH, language toolchain vars, EDITOR, project tokens, and so on) is visible to commands run via ! in Bash mode and to agents working inside thread worktrees.

This means three things in practice:

  • If a tool works in your terminal but fails inside Friday, check whether the var is exported from your shell rc rather than only set in the current session.
  • Secrets exported in your shell are visible to any command Friday runs. Treat agent commands the same way you'd treat a script you ran yourself.
  • Worktree threads start in a sibling git worktree, so untracked files like .env are not present by default. The shell environment carries over, but a project's .env file does not. Use Worktree file sync to bring .env (or other untracked files) into the worktree when tools depend on them.

Friday sets

Friday does not export any FRIDAY_* marker that subprocess scripts can use to detect "I'm running inside Friday." If you need that signal, set your own marker in the command you run (e.g. IN_FRIDAY=1 some-command).

Common gotchas

  • Shell rc vs. session env. Friday inherits the environment of the shell that launched it. A var you exported only in the current session won't be there if you launch Friday from a new terminal. Put long-lived vars in ~/.zshrc, ~/.bashrc, or your shell's equivalent.
  • Project .env files. Friday does not auto-load .env. Tools like direnv, dotenv, or your test runner load it. Inside a worktree thread, the .env file isn't checked into git, so it isn't in the worktree. Add it to Worktree file sync with the copy strategy if workers need it.
  • API keys are not env vars. Don't try to set ANTHROPIC_API_KEY or OPENAI_API_KEY to configure Friday. Friday's proxy uses gh auth token, so the credential path is gh auth login. See Installation.

Read next