Your own private model, in the tools you already use.
Claude Code, Codex, opencode, Claude Desktop, Cline, Cursor. Anything that speaks the OpenAI or Anthropic API. Change one URL and the tool you already know runs on Jah: a private model on hardware Kiyomi owns. Your code and prompts never reach Anthropic, OpenAI, or anyone else.
Your API keys
No keys yet.
Quickstart
Base URL: https://kiyomibot.ai/v1 · Model: jah
OpenAI format · curl
curl https://kiyomibot.ai/v1/chat/completions \
-H "Authorization: Bearer $ECHOLS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jah",
"messages": [{"role": "user", "content": "Write a haiku about privacy."}]
}'OpenAI format · Python SDK
from openai import OpenAI
client = OpenAI(
base_url="https://kiyomibot.ai/v1",
api_key="sk-echols-...",
)
resp = client.chat.completions.create(
model="jah",
messages=[{"role": "user", "content": "Hello, Jah."}],
)
print(resp.choices[0].message.content)Anthropic format · curl
curl https://kiyomibot.ai/v1/messages \
-H "x-api-key: $ECHOLS_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "jah",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello, Jah."}]
}'Your coding agent, on your own model
Keep the tool you already know. Point it at Kiyomi and the work runs on Jah instead of someone else's cloud.
Claude Code
# 1. install Claude Code (skip if you have it)
npm install -g @anthropic-ai/claude-code
# 2. point it at Kiyomi and run
unset ANTHROPIC_API_KEY # must be UNSET, or it wins over the token
export ANTHROPIC_BASE_URL="https://kiyomibot.ai"
export ANTHROPIC_AUTH_TOKEN="sk-echols-..." # your key, from above
export ANTHROPIC_MODEL="jah"
export ANTHROPIC_SMALL_FAST_MODEL="jah"
claudeWant both? Put the exports in an alias like echols-code, so claude stays on Anthropic and echols-code runs on Jah.
Codex CLI
# ~/.codex/config.toml
model = "jah"
model_provider = "echols"
[model_providers.echols]
name = "Kiyomi"
base_url = "https://kiyomibot.ai/v1"
env_key = "ECHOLS_API_KEY"
wire_api = "responses"export ECHOLS_API_KEY="sk-echols-..."
codexopencode
Paste this into opencode.json (in your project or ~/.config/opencode/):
// opencode.json (in your project, or ~/.config/opencode/opencode.json)
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"echols": {
"npm": "@ai-sdk/openai-compatible",
"name": "Kiyomi",
"options": {
"baseURL": "https://kiyomibot.ai/v1",
"apiKey": "sk-echols-..."
},
"models": { "jah": { "name": "Jah (Kiyomi)" } }
}
},
"model": "echols/jah"
}The first run downloads the provider package, so give it a minute. After that it starts instantly.
Claude Desktop
The desktop app can point at Kiyomi too, no terminal needed. Developer Mode has to be on first.
1. Help → Troubleshooting → Enable Developer Mode
2. Developer → Configure third-party inference
3. Gateway base URL: https://kiyomibot.ai
Gateway API key: sk-echols-...
Gateway auth scheme: bearerPricing
API access is included with your Kiyomi membership, one plan at $25/mo — 300 requests a day, resetting nightly, with throughput limits that keep the hardware fair for everyone. It's the same private model behind the app, your own sovereign endpoint, not a reseller of someone else's cloud.
See plans →