Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Models & Subscriptions

Kimaki runs on your OpenCode install, so it can use every provider OpenCode supports. Connect a provider with an API key, or with OAuth to use your Claude Pro/Max or ChatGPT subscription instead of paying per token.
/login

The /login command

Run /login in any project channel. Kimaki walks you through a short flow:
/login │ ▼ ┌──────────┐ ┌──────────────┐ ┌───────────────────────────┐ │ provider │ ───▶ │ method │ ───▶ │ API key modal, or │ │ │ │ (key, OAuth, │ │ OAuth link + code / check │ │ │ │ saved login)│ │ │ └──────────┘ └──────────────┘ └───────────────────────────┘
  1. Pick a provider. OpenAI, Anthropic, Google, and OpenCode are listed first.
  2. Pick a method. The provider decides which methods exist: an API key, one or more OAuth logins, or Activate for a login you already saved.
  3. Authenticate. For an API key, paste it in the modal. For OAuth, open the link, authorize, then click Enter code (and paste the code) or Check login, depending on the provider.
Only the server owner or an Administrator can run /login. Logins are secrets of the whole bot.
Credentials are stored by OpenCode, not by Kimaki. A provider you connected in the OpenCode TUI (or with opencode auth login) already works in Discord, and a login from Discord works in the TUI.

Using subscriptions instead of API credits

ProviderOAuth methodNotes
AnthropicClaude Pro/Max (browser) or (headless)Added by the kimaki-anthropic plugin that Kimaki installs into OpenCode. Works in the TUI too. Browser finishes by itself through the localhost:53692 callback. Headless is for a browser on another machine: paste the URL of the last page. Use headless from Discord when the bot runs on another computer.
OpenAIChatGPT Pro/PlusBuilt into OpenCode.
After the login, pick the model with /model.

Claude Pro/Max in OpenCode without the bot

The kimaki-anthropic plugin also works in plain OpenCode, with no bot running. List its folder in your global ~/.config/opencode/opencode.json:
{ "plugins": ["/path/to/node_modules/kimaki/dist/plugin/anthropic"] }
Find the path with npm root -g (add /kimaki/dist/plugin/anthropic). OpenCode only accepts folders in plugins, not files.
When the bot starts and sees this entry, it removes its own plugins/kimaki-anthropic/ shim, so the plugin is loaded once.

Several accounts per provider

OpenCode can keep several saved logins for one provider. Run /login again to add another one. To switch, run /login, pick the provider, and choose Activate <label>.
Kimaki does not rotate accounts by itself when one hits a rate limit. For automatic rotation across accounts and models, add the @kimaki/plugin-fallback OpenCode plugin:
{ "plugins": [ { "package": "@kimaki/plugin-fallback", "options": { "models": ["anthropic/claude-opus-5-5", "openai/gpt-6-sol#high"] } } ] }

From the CLI

kimaki login runs the same flow through the running bot, one step per call:
# list the login methods of a provider kimaki login anthropic # connect with an API key kimaki login openai --key sk-... # start a headless OAuth login, then complete it with the pasted callback URL kimaki login anthropic --method claude-pro-max-headless kimaki login anthropic --attempt <attemptId> --code '<callback url>' # activate, remove, or label a saved login kimaki login credential <credentialId> --operation activate

API keys instead of subscriptions

Choose the API key method in /login, or pass --key to kimaki login. To set the default model for every session, use your opencode.json:
{ "model": "anthropic/claude-sonnet-4-5" }
The format is provider/model, for example openai/gpt-5.3-codex or google/gemini-3-pro-preview.