You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
INVARIANT: Self-deploy uses ~/.dossier/config; dev uses .env.local
Anthropic credential: we accept API key first (env, then ~/.dossier/config). If none is set, we use your installed Claude CLI config: ~/.claude/settings.json (or CLAUDE_CONFIG_DIR/settings.json). We read env.ANTHROPIC_API_KEY or env.ANTHROPIC_AUTH_TOKEN from that file so you don’t need to paste a key if Claude Code is already configured.
Required
Anthropic credential (API key or Claude CLI config) and GitHub token:
Variable
Purpose
ANTHROPIC_API_KEY
Planning LLM and build (set in env or ~/.dossier/config; or we use your Claude CLI ~/.claude/settings.json when no key is set)
GITHUB_TOKEN
Push branches, list/create repos, HTTPS git; classic PAT from tokens (repo scope), or written by Connect GitHub OAuth into ~/.dossier/config
GitHub OAuth (local / desktop)
Variable
Purpose
GITHUB_OAUTH_CLIENT_ID
OAuth App client ID for authorization code + PKCE (new OAuth App). Callback: http://127.0.0.1:<port>/api/github/oauth/callback — loopback allows a runtime port that differs from the one registered.
GITHUB_OAUTH_CLIENT_SECRET
Optional; include in .env.local / server env if your token exchange requires it. Do not ship in public client builds.
NEXT_PUBLIC_GITHUB_OAUTH_CLIENT_ID
Optional; same ID as above for in-app links (e.g. GitHub “authorized applications” revoke URL).
DOSSIER_GITHUB_IGNORE_ENV
Written by the app (not hand-set): when 1/true/yes, GITHUB_TOKEN in environment is ignored and only ~/.dossier/configGITHUB_TOKEN is used—so Disconnect works even if .env.local still defines GITHUB_TOKEN. Cleared on Connect / PAT save.