Every provider in Kosha’s catalogue, one column each.
Discovery needs a key 40
Public discovery 6
Focused
Hover a column, or focus the field and use the arrow keys. Height is decorative.
(01)Less guesswork
Three questions, answered before the first request.
Model names are only the beginning. The useful questions are about access, fit and cost.
01 / 03
What can I run?
Discover cloud models and local runtimes. Find credentials where your tools already keep them. Public catalogues still work when no keys are available.
The proxy estimates request cost and records usage in a spend ledger, with optional monthly budgets. Actual cost lands when the upstream returns the usage it needs.
Four movements, the same every time a request passes through. Scroll, and watch 46 providers become one line.
01Discover
Find what you can reach.
Kosha fans out across 46 providers: direct APIs, gateways, and 4 runtimes on your own machine (Ollama, llama.cpp, LM Studio, and vLLM). It finds the credentials your tools already keep, and public catalogues still answer when no key is set.
Pricing, context, capabilities, and aliases land in one shape, comparable across providers. A remote $0 is read as an unknown price, not a free one: it ranks after every priced route and is marked unverified.
Filter for the capabilities and context the job needs, then rank the routes you can actually use by price, observed latency, reliability, or a balance of the three. Filters apply before the ranking is cut.
The OpenAI-compatible proxy forwards to the chosen route, with failover, and records the cost in a monthly spend ledger. Set a budget and it holds per request: a call that would cross the cap is refused, and so is a budgeted request the ledger can’t record.
A — Direct 25B — Gateway 17C — Local 4One card shapeFirst pickUnknown price, ranked lastFiltered outledger-YYYY-MM.jsonlThis request
46 is the real catalogue. Everything after it is an illustration, with no real prices.
(02)Selector playground
Name a strategy, not a model.
Send model: "kosha:cheapest" to the OpenAI-compatible proxy and Kosha filters the candidates, ranks them, and routes with failover.
Brackets combine filters: a capability like tool_use, a minimum context like 128k, or provider:<id>.
kosha:cheapest010203
ILLUSTRATION · ABSTRACT CANDIDATES · NO REAL PRICES OR LATENCIES
01 first pick02–03 failover orderunknown price
01Filter
02Rank
03Route + failover
model: "kosha:cheapest"
01Filter
Routes Kosha can call with the credentials it found. No bracket filters here, so every credentialed chat route is a candidate.
02Rank
By price for the query, lowest first. A remote $0 price counts as unknown: it ranks after every priced route, whatever the strategy, and carries priceUnverified: true.
03Route
Up to three ranked candidates are tried. A 5xx or network error rolls to the next; a 4xx comes back as-is. The x-kosha-attempt-chain header lists every attempt.
model: "kosha:fastest"
01Filter
The same credentialed candidates. Bracket filters work the same way on every strategy.
02Rank
By observed p95 latency, quickest first. A remote $0 price counts as unknown: it ranks after every priced route, whatever the strategy, and carries priceUnverified: true.
03Route
Up to three ranked candidates are tried. A 5xx or network error rolls to the next; a 4xx comes back as-is. The x-kosha-attempt-chain header lists every attempt.
model: "kosha:reliable"
01Filter
The same credentialed candidates.
02Rank
By reliability: circuit-breaker state folded together with timeout and auth-error history. Breaker-open providers go last. A remote $0 price counts as unknown: it ranks after every priced route, whatever the strategy, and carries priceUnverified: true.
03Route
Up to three ranked candidates are tried. A 5xx or network error rolls to the next; a 4xx comes back as-is. The x-kosha-attempt-chain header lists every attempt.
model: "kosha:balanced"
01Filter
The same credentialed candidates.
02Rank
A blend of price, observed latency and reliability. A remote $0 price counts as unknown: it ranks after every priced route, whatever the strategy, and carries priceUnverified: true.
03Route
Up to three ranked candidates are tried. A 5xx or network error rolls to the next; a 4xx comes back as-is. The x-kosha-attempt-chain header lists every attempt.
model: "kosha:cheapest[400k]"
01Filter
Credentialed routes whose context window is at least 400k tokens. Filters apply before the ranking is cut to its limit, so a narrow filter still gets its best routes.
02Rank
By price, lowest first, among the routes that passed. A remote $0 price counts as unknown: it ranks after every priced route, whatever the strategy, and carries priceUnverified: true.
03Route
Up to three ranked candidates are tried. A 5xx or network error rolls to the next; a 4xx comes back as-is. The x-kosha-attempt-chain header lists every attempt.
Illustration only. Bars stand for abstract candidates; their heights are not prices, latencies or scores from any provider. Hatched bars mark an unknown price. Proxy reference ↗
(03)Put it to work
One install. Three ways in.
Start in the terminal, import the library, or give your agent the registry. The HTTP API and proxy ship in the same package.
$npm install -g @sriinnu/kosha-discovery
01 / 03
CLI
A first look around
kosha discover
kosha list --provider anthropic
kosha search sonnet
kosha model sonnet