Kimi K3 in OpenHands
Before you start. Create an account (you get $2 to try), then open Token Management → Create token and copy the key. The key starts with sk-. Endpoints: OpenAI-compatible https://microquickjs.com/v1, Anthropic-compatible https://microquickjs.com. Model ID: Kimi-K3.
In the UI
- Open Settings → LLM and switch on Advanced.
- Custom Model:
openai/Kimi-K3(theopenai/prefix tells LiteLLM to use the OpenAI-compatible driver). - Base URL:
https://microquickjs.com/v1 - API Key: your ainetcafe key.
- Save and start a new conversation.
In config.toml (headless or Docker)
[llm]
model = "openai/Kimi-K3"
base_url = "https://microquickjs.com/v1"
api_key = "sk-your-ainetcafe-key"
max_output_tokens = 32768
temperature = 0.6
native_tool_calling = true
Or as environment variables for the Docker image:
-e LLM_MODEL=openai/Kimi-K3 -e LLM_BASE_URL=https://microquickjs.com/v1 -e LLM_API_KEY=$AINETCAFE_API_KEY
Notes
- Keep
native_tool_callingon; K3 supports function calling natively and does worse with the prompt-based fallback. - OpenHands condenses history when it gets long; with K3's 1M window you can raise the condensation threshold.
Verify the key first
Thirty seconds now saves an hour of guessing later. Run this in a terminal; you should see a short reply and a usage block.
curl https://microquickjs.com/v1/chat/completions \
-H "Authorization: Bearer $AINETCAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"Kimi-K3","messages":[{"role":"user","content":"Say OK"}],"max_tokens":5}'If something goes wrong
| Symptom | Cause | Fix |
|---|---|---|
| 401 Invalid token | Key copied with a space, or key from another site | Re-copy from Token Management on microquickjs.com |
| 403 quota / insufficient balance | Wallet at zero or plan quota used up | Top up in Wallet, or wait for the weekly plan reset |
| 404 model not found | Model ID typed differently | Use exactly Kimi-K3 |
| 429 | Rate limit for your tier | Reduce concurrency; limits rise with spend, or ask for a committed plan |
| Tool calls never happen | Tool calling disabled in the client, or thinking blocks stripped | Keep the client's default tool settings; K3 returns a thinking block before tool_use, do not filter it out |
Still stuck? Email [email protected] with the request ID from the error body.