Claude subscription sign-in
Distill can now run on a Claude Pro or Max subscription, the same way it runs on ChatGPT.
- Sign in with
distill login --claude,/login-claude, or Log in with Claude in the home menu and in onboarding.distill logout --clauderemoves the sign-in. Credentials live inclaude-auth.jsonin the Distill home and are refreshed automatically. - The models of your account appear in
/modelasclaude/<id>, with their real context window and output limit. Any[model.*]entry that points athttps://api.anthropic.com/v1and has no API key of its own uses the same sign-in; an entry with its own key is left alone. - Each model offers exactly the effort levels it accepts, read from the Anthropic Models API:
lowtomaxon the 5.x models, withoutxhighon Sonnet and Opus 4.6. Models that do not take adaptive thinking (Opus 4.5, Haiku 4.5) stay on Auto. An unsupported level is rejected before the request is sent.
Anthropic restricts subscription tokens to Claude Code. Using them from another client may be refused by the service or go against its terms; you are responsible for that choice.
Fixes
allowed_modelsno longer rejects a setup that only allows models from a signed-in ChatGPT or Claude account (allowed_models = ["chatgpt/*"]). The check used to run before those catalogs were fetched and reported that no model was allowed.- A default model injected by a campaign no longer invalidates an
allowed_modelslist; only a default you configured can. - The Grok session token is never sent to
api.anthropic.com. - Debug builds no longer crash with
SIGBUSon the first turn: the session thread gets a 64 MiB stack in debug builds (release builds are unchanged). - Login and logout rows for ChatGPT and Claude are listed together on the home menu and in onboarding.
Upgrade note: the Distill home is now ~/.distill
Distill no longer adopts a leftover ~/.grok directory (the Grok CLI's) when ~/.distill does not exist. If your accounts, settings and sessions are still in ~/.grok, Distill will start with an empty profile after this update. To keep them, copy what belongs to Distill before you start it (bin/ and downloads/ belong to the Grok CLI and are not needed):
mkdir ~/.distill
for p in ~/.grok/*; do
case "$(basename "$p")" in bin|downloads) continue;; esac
cp -cRp "$p" ~/.distill/ # macOS/APFS clone; use cp -a on Linux
doneDISTILL_HOME (and the legacy GROK_HOME) still override the location.