Skip to main content

setup guide

Connect your editor in two minutes

Your plan works with the AI coding tools you already use. Nothing to install from us — you point the tool at our endpoint and give it a key.

the essentials

Two values, that's the whole setup

Every tool below needs the same base URL and key. Claude Code is the one exception — it uses the Anthropic-shaped URL.

Base URL (OpenAI-compatible)
api.coding.ecohash.com/v1
Base URL (Claude Code)
api.coding.ecohash.com/anthropic
API key
eco_… — created in the console, shown once
  1. 1

    Create a key

    In the console under API keys. It starts eco_ and is shown once — store it in your keychain or a .env you don't commit.

  2. 2

    Pick your tool's section below

    Every tool needs the same two things: our base URL and your key.

  3. 3

    Run the curl check

    A JSON reply means you're connected; your plan page balance will have moved.

openai-compatible tools

Cline, Roo Code, Kilo Code, Continue & Aider

These all speak the OpenAI wire format. If a field is called Custom Base URL or OpenAI Base URL, it's the same thing — the value always ends in /v1.

Cline, Roo Code & Kilo Code

Roo Code and Kilo Code are Cline forks — the setup is identical. In Cline, choose “Bring your own API key” and uncheck “Use different model for Plan and Act modes”.

extension · settingsopenai
# Cline / Roo Code / Kilo Code — in the extension settings:
API Provider   ->  OpenAI Compatible
Base URL       ->  https://api.coding.ecohash.com/v1
API Key        ->  eco_your_key_here
Model ID       ->  GLM-5.2   # or any model on your plan

Continue

Continue is configured by file rather than by clicking. Its config schema shifts between versions — open whatever the extension generates on first run and match that shape.

~/.continue/config.yamlyaml
# ~/.continue/config.yaml — Continue reads config from file
models:
  - name: GLM-5.2
    provider: openai            # "openai" = OpenAI-compatible wire format
    model: GLM-5.2
    apiBase: https://api.coding.ecohash.com/v1
    apiKey: ${{ secrets.ECO_KEY }}
    roles: [chat, edit, apply]

Private codebase indexing with Continue

Continue's @codebase retrieval needs an embedding model and optionally a reranker. Available on the same key: qwen3-embedding-0.6b/4b/8b, jina-embeddings-v3/v4, bge-reranker-v2-m3. Note: embeddings and reranking bill from your wallet balance, not plan credits — indexing a large repo is a one-off cost.

~/.continue/config.yamlembed
# Optional: private codebase indexing on the same endpoint.
# Your source never leaves it — no third-party embedding service.
  - name: code-index
    provider: openai
    model: qwen3-embedding-b
    apiBase: https://api.coding.ecohash.com/v1
    apiKey: ${{ secrets.ECO_KEY }}
    roles: [embed]

  - name: code-rerank
    provider: openai
    model: bge-reranker-v2-m3
    apiBase: https://api.coding.ecohash.com/v1
    apiKey: ${{ secrets.ECO_KEY }}
    roles: [rerank]

claude code

The one different base URL

Claude Code speaks Anthropic's protocol, which we serve directly.

Terminal setup

claude-code.shanthropic
# Claude Code speaks Anthropic's protocol — the base URL is
# different and must NOT include /v1 (the client appends
# /v1/messages itself; adding /v1 here is the #1 setup mistake).
export ANTHROPIC_BASE_URL="https://api.coding.ecohash.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="eco_your_key_here"
claude
# Ask for sonnet, opus or haiku as normal — each maps to a
# model on your plan. Your administrator decides which.

verify

Check it works

A JSON reply means you are connected. Then check your plan page — the credit balance should have moved.

One curl

verify.shcurl
curl https://api.coding.ecohash.com/v1/chat/completions \
  -H "Authorization: Bearer $ECOHASH_API_KEY" \
  -H "Content-Type: application/json" \
  -d {
    "model": "GLM-5.2",
    "messages": [{"role": "user", "content": "Say hello"}]
  }

limits

Three limits, three different fixes

Every request spends credits from your monthly allowance; cached prompt tokens cost a fraction of uncached ones, so leave your extension's prompt caching on. Three separate limits can stop a request — your plan page shows each one, so you can tell which you hit.

Monthly allowance
Spent the month's credits — top up or wait for renewal
Spending pace
5-hour / 7-day windows refill continuously — just wait
Model-group cap
That group's share is used — switch groups

errors

When something is refused

401
Key wrong, revoked or expired — create a new one
402
Allowance spent — buy a top-up; retrying won't help
429
Too fast, or a group cap — the response says how long to wait
404 on a model
Not on your plan — see the model list on your plan page

Ready when your editor is

Create a key, paste two values, and code all month on a flat budget.