Authentication
Signing in to a Feyncode account, using an API key on a headless box, and pointing Kaeonix at a model provider of your own instead.
Signing in
kaeonix login with no argument opens a browser flow against your Feyncode account and writes the resulting token to ~/.kaeonix/auth.json. That token is what both the CLI and the chat surface use, so signing in once covers the account rather than the machine.
API keys and the environment
A browser flow is no use on a build agent. Every setting Kaeonix reads from disk can also come from the environment under the KAEONIX_ prefix, and a key set that way takes precedence over whatever is stored on the box:
Issue and revoke keys from API keys. Keys are scoped to an account, not a machine, so revoking one stops every runner using it at once.
Bringing your own provider
Kaeonix also runs bring-your-own-key against any provider in the models.dev catalogue — 130+ entries, kept current without a Kaeonix release. Save a key per provider you intend to use; several can coexist:
You are prompted for the key, which is written to ~/.kaeonix/ — your user config directory, not the repository — so it is never at risk of being committed. Model ids follow provider:model; see Avatar for choosing one.
OpenAI-compatible endpoints
Anything speaking the OpenAI API — a corporate gateway, a router like OpenRouter, a self-hosted inference server — works by supplying a base URL at login time:
This is also the route for providers that are not in the models.dev catalogue, and for pinning traffic to a region-specific endpoint.