Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Who pays & who serves (model vendors)

Who pays for a DeepSeek, GLM, Kimi, MiniMax, Meta, Qwen or OpenRouter session, and which company answers it: one ordered list per model family, walked each time a session connects. Covers the settings card, what each row state means, limiting a DeepSeek row to DeepSeek's peak-price hours, what happens when a row runs out of credit, how cloud sessions use your keys without ever receiving them, and how older settings were carried over.

What it is

When you run a session on a model that is not Claude — DeepSeek, GLM, Kimi, MiniMax, Meta, Qwen or OpenRouter — two things have to be settled before it can start: who pays for it, and which company answers it. Omniscio settles both from one ordered list per model family, called that family's supply list.

Each row of a list is one way to pay:

  • Your own account — a key or account you saved with a company. The row also names the company that serves it: the model's maker (DeepSeek, Z.ai for GLM, Moonshot for Kimi, MiniMax, Meta, Alibaba for Qwen, OpenRouter) or a reseller that runs some of the same models (DeepInfra, RunInfra, InferX).
  • Omniscio credits — Omniscio's own key, paid from your prepaid credit balance. Omniscio picks the company that serves its credits.
  • Company lane for Omniscio developers — company money for enrolled Omniscio developers, on DeepSeek only.

When a session connects, Omniscio walks the family's list from the top and uses the first row that can serve right now. The model you picked never changes — only who pays and which company answers it.

Which companies can serve which model, today:

Model Maker Resellers that also serve it
GLM 5.2 GLM (Z.ai) DeepInfra
GLM 5.3 Flash GLM (Z.ai) RunInfra
DeepSeek V4.1 Flash DeepSeek DeepInfra
DeepSeek V4 Flash DeepSeek DeepInfra, RunInfra, InferX
DeepSeek V4 Pro DeepSeek DeepInfra, RunInfra
Kimi K2.7 Code Kimi (Moonshot) DeepInfra
MiniMax M3 MiniMax DeepInfra
MiniMax M2.5 MiniMax DeepInfra

Every other model of these families, and every Meta, Qwen and OpenRouter model, is served only by its maker — or through Omniscio credits.

Where to find it

Settings → Accounts → Who pays & who serves. The card sits in the list of other AI tools, just above the Usage cascade card, and shows while Show alternative AI providers is on (the switch that reveals every non-Claude engine). It holds one list per family, each row with its live state, and a List / JSON text switch at the top. The same card is on the phone.

Searching Settings for "who pays", "own key", "Omniscio credits", "vendor", "reseller" or "model vendors" lands on it.

How it behaves

How a row is chosen

A row can serve right now when all three of these hold:

  • A credential exists — a key or account is saved for that company. A reseller row also needs that reseller's own card in Settings → Accounts switched on ("Allow … sessions"), and — for every reseller except DeepInfra, which Omniscio reaches directly — Omniscio's local model proxy able to start. An Omniscio credits row needs you signed in, on a plan that includes that family (GLM credits need Pro; the other families are open to every plan).
  • Its account is not known to be out of credit (see below).
  • Its company serves the model you picked.

A row limited to DeepSeek's peak hours is also passed over outside those hours (see below).

The walk happens every time a session connects — when it starts, and again whenever it is restarted or continued — so a change to a list reaches every session at its next connection. A new user's lists start as their own account with the maker first, then Omniscio credits — except GLM, whose list starts with your own account only (add an Omniscio credits row to pay for GLM with credits). A list with no rows means that family's sessions cannot connect, and the card says so.

What each row state means

The states are worked out for sessions on this computer.

State What it means
Serving now New sessions for this family connect here.
Ready if needed Used when the rows above it can't serve.
Not set up No key or account is saved for this company yet, or it is switched off.
Out of credit Skipped until the time shown, when Omniscio tries it again — for example "Skipped until 2:40 PM, when Omniscio tries it again."
Not signed in Sign in to Omniscio to use this row.
Daily spending cap reached Today's spending cap for this company is used up; it opens again tomorrow.
Not available to you Your plan or account doesn't include this row yet.
Doesn't serve the usual model This company doesn't offer the model this family starts on.
Not used for this kind of session Only some rows can serve this kind of session, and this is not one of them.
Waiting for peak hours This row is limited to DeepSeek's peak-price hours and it is outside them right now; the next row serves.

A reseller row carries a No cache discount tag when that company publishes no discounted price for repeated (cached) text — today CrofAI, RunInfra and InferX — because the same work can cost several times more there. DeepInfra does give the discount, so its DeepSeek rows carry no tag.

A DeepInfra row connects straight to DeepInfra's own Claude-style connection (api.deepinfra.com/anthropic) with your DeepInfra key, so the cached text DeepInfra reports is counted and Omniscio's cost figures for a DeepInfra session match the bill DeepInfra sends. The other resellers are reached through Omniscio's local model proxy, which keeps the discount but drops the cached count from streamed replies, so their cost figures in Omniscio can read higher than their bills. One small gap remains on DeepInfra: a reply cut off mid-way (for example when a session is stopped while it is answering) is not counted, because DeepInfra reports usage only when a reply finishes.

Cloud sessions and your keys

A cloud session never receives your API key. When its list picks your own account — at the maker (DeepSeek, GLM, Kimi and the rest) or at DeepInfra — the cloud machine is given a one-time pass instead, and its requests travel back over its existing connection to your computer, where Omniscio adds your key and passes them on to that company. Your keys stay on your computer, and a pass stops working the moment that session's run ends.

  • Your computer's internet carries the cloud session's model traffic — each request goes cloud machine → your computer → the company, and the reply comes back the same way.
  • Omniscio must be running for a cloud session to use your own account. If the part of Omniscio that relays these calls is not running, cloud sessions skip your own-account rows and use the next row in the list (for example Omniscio credits).
  • Which rows a cloud session can use: your own account at the maker or at DeepInfra, and Omniscio credits. CrofAI, RunInfra and InferX (reached through the local model proxy) and the developer company lane are used only by sessions on this computer.
  • If a cloud session reports "This cloud run has ended", send it another message — that starts a new run with a new pass.
  • Your Claude account works the same way. A cloud session running on your Claude sign-in or your Anthropic API key is given a one-time pass too, so your sign-in never leaves your computer; your computer keeps the sign-in fresh for as long as the session runs. If Omniscio cannot relay right then, the cloud session is stopped before any cloud machine starts, and nothing is charged.

Changing a list

  • Move up / Move down change the order.
  • Remove takes a row off; a toast offers Undo.
  • Peak hours only (the moon button, on DeepSeek rows) limits a row to DeepSeek's peak-price hours; the row then carries a Peak hours only tag. Press it again to let the row serve at any hour.
  • Add a row… offers the rows the list doesn't have yet; a new row goes to the bottom. A reseller is offered only while the model-proxy providers are shown (Settings → Lab → "GPT, Grok, CrofAI & DeepInfra via model proxy", on by default), and the company lane only to an enrolled Omniscio developer.
  • JSON text shows the same lists as plain text. In each row, "pay" is "you", "omniscio" or "company", and "vendor" names the company that serves your own account. Save (or Ctrl/Cmd+Enter) checks every row first and, if one can't be used, names the family and the row instead of saving; Discard changes puts the text back. A family you leave out gets its starting list back.

When a row runs out of credit

A row runs out when its company refuses a turn for lack of credit — a payment-required or an insufficient-balance answer, even one that arrives as an empty turn. A hiccup that Omniscio's gateway only passes along from another company does not count.

  • GLM's backup key goes first. If the row is your own GLM account and you saved a GLM fallback key, the session switches to that key before the row is given up.
  • The account is marked out of credit for every session. Omniscio remembers the account behind the row, not just the row: when your Omniscio credits run out, the credits row of every family is skipped; when your DeepInfra account runs out, every DeepInfra row is skipped, whichever family it serves.
  • Omniscio tries it again every ten minutes. One session at a time is let through to use the account. If its turn is answered, the account is open again for everyone; if it is refused again, the account waits another ten minutes. With Auto-continue on balance refund switched on, your own DeepSeek or Kimi account reopens the moment its balance check sees money. After a restart, each account is simply tried again once.
  • The session moves to the next row and resends your message, on the first message or in the middle of a conversation. A cloud session moves only to a row a cloud session can use. The session notes the switch once in its own history — for example "This session switched to your Omniscio credits because your own DeepSeek account ran out of credit, and is carrying on." A session that simply starts on the next row says nothing.
  • One inbox card per account. The first time an account is marked, the inbox shows "Out of credit: your own DeepSeek account" (or "your Omniscio credits", …): "New sessions skip it and use whoever is next in their list. Omniscio tries it again every 10 minutes." The card goes away by itself when the account serves again or a balance check sees money; a card left from before a restart goes away on that account's first answered turn.
  • If no row is left, the running session stops with a message that names who paid: your own account (with an Add credit link to that company's billing page), or your Omniscio credits (top them up, or add your own key).
  • A session that cannot start is refused with a message that names the model — "everything in its Who pays & who serves list is out of credit right now" (Omniscio tries again every 10 minutes; add credit to any of them), or "its Who pays & who serves list is empty". If a row is only waiting on setup — no key, not signed in — the usual "add a key" or "sign in" message shows instead. Omniscio never falls back to a way of paying that your list doesn't name.
  • The developer lane is company money. When it refuses a turn without saying why, the session moves to the next row without marking the lane out of credit for anyone else; when it reports its cap, the lane is marked like any other account. When no later row can serve, the session stops and says so: send a message to retry — a busy lane clears within minutes, but a spending limit only once it resets or is raised — or add your own key for that provider to keep going sooner.

Paying less while DeepSeek charges double

DeepSeek charges double Monday to Friday from 01:00 to 04:00 and from 06:00 to 10:00 UTC — in Eastern time, 9 PM to midnight Sunday to Thursday and 2 to 6 AM Monday to Friday while daylight time lasts, an hour earlier in winter. The screen names each window's days and hours on your own clock. During those hours DeepInfra served the same DeepSeek V4.1 Flash for about half DeepSeek's price at 2026-09-28's sale prices (about 20% less at its regular prices), while DeepSeek itself is cheaper the rest of the week.

  • Set it up by putting a DeepInfra row first in the DeepSeek list and pressing its moon button, with your own DeepSeek account and Omniscio credits below it. The DeepInfra row needs your DeepInfra key and "Allow DeepInfra sessions" switched on.
  • Sessions move at their next connection when the hours start or end. The first reply after a move re-reads the conversation at the full input price once; after that the cache discount applies again.
  • The hours follow DeepSeek's own clock — the same one Omniscio prices DeepSeek with — so they stay right when clocks change. Chinese public holidays, when DeepSeek is cheap all day, are not known to it: the row is still used during the usual hours then.
  • Cloud sessions stay on DeepSeek — a cloud session never uses a reseller row.
  • Quality — DeepInfra serves a compressed (fp8) build of the model; Omniscio's model test on 2026-09-23 found it answering as well as DeepSeek's own on coding and long documents.

Where the list works differently

  • Cloud sessions use your own account with the model's maker, or Omniscio credits. A reseller row and the company lane are skipped there, because a cloud box runs no local model proxy.
  • Side questions (asides) walk the same list, but never use the company lane.
  • A brand-new user's first free session is paid by Omniscio ahead of the list.
  • Claude has no supply list — Claude sessions use your Claude accounts.
  • The usage cascade is a different feature: it moves a session to a different model when a plan's usage runs out. The supply list never changes the model.

Which row actually served

Omniscio records the row that actually served each connection, and what follows reads that record: a refusal is read as coming from the company that served, a turn is priced at that company's rate, and an "Add credit" link opens that company's billing page.

You can see it too: on a started session, hover the model pill in the session header to read Paid by: … — for example "Paid by: Omniscio credits" or "Paid by: Your own DeepSeek account". It names the row that served the session's latest connection. Phones have no hover, so the line does not show there. Right after you switch a session to another engine, the line stays hidden until that engine's first connection.

What it replaced

  • Resellers are no longer engines. DeepInfra, RunInfra and InferX no longer appear as the engine for a DeepSeek, GLM, Kimi or MiniMax model, or as a default engine: you pick the model under its maker, and the family's list decides who serves it. A model only a reseller offers (for example a Llama model on DeepInfra) can still be picked under that reseller. CrofAI is retired. OpenRouter stays an engine for the models no other engine offers, with its own list for your OpenRouter key and Omniscio credits.
  • The old switches are gone or ignored: the Model vendors section with its "Auto (cheapest ready)" choice and per-model vendor pins, automatic cheapest-vendor routing, the per-provider payment order, the "Omniscio lane" pin and the payer choices under "How each AI connects", the "Use Omniscio … credits" switches, and the "Omniscio GLM credits" entry in the GLM account list.
  • Your older settings were carried over. The first time any family connects (or you open the card), each list is built from what really happened before — a saved key beat an old "Omniscio lane" pin, for example, so the key stays first. The old settings stay in the settings file, ignored, for one release, so going back to an older version loses nothing.
  • Usage cascade rungs that named a reseller now run on that model's family, and the family's list decides who serves.
  • A session already on a reseller engine keeps working: at its next connection it uses its model family's list.

For agents

  • The setting — supplyLists in AppSettings: an object mapping each family (deepseek, glm, kimi, minimax, meta, qwen, openrouter) to at most 16 rows of { "pay": "you" }, { "pay": "you", "vendor": "<provider id>" }, { "pay": "omniscio" } or { "pay": "company" }. A "you" row with no vendor means the maker; "company" is valid only for deepseek. A deepseek row may add "onlyDuring": "deepseek-peak": it then serves only inside DeepSeek's peak-price hours (rowInItsHours, judged by the same isOffPeakAt(DEEPSEEK_OFF_PEAK) clock that prices DeepSeek) and is skipped as outside-its-hours otherwise — checked last, so a real setup gap still shows first. A row the reader cannot use (a retired vendor, a payer the family has no lane for, hours its family has no window for) is dropped when the list is read. {} means not converted yet; the conversion then builds every missing family from the older settings (empty older settings give maker-then-credits, and GLM gets its maker row only).
  • The live states — IPC provider:get-supply-lists answers every family's rows with their states for a local session, and an out-of-credit row's emptyUntil (when its account is tried again); it never carries a key or a balance. Writes go through the ordinary settings update.
  • The out-of-credit memory — held in the main process by the list service, never saved: one mark per account (supplyAccountKey: you:<vendor>, omniscio or company), re-checked every 10 minutes by exactly one connection, and reopened by that session's answered turn or by the balance sweeper (restoreFundedKeys, DeepSeek and Kimi, while balance auto-resume is on).
  • The one handler — supplyFallbackGate in supply-fallback.ts, row 1 of the turn-end gate table and the first line of the placeholder-stuck recovery. Its transcript note is recovery.supplySwitch; the inbox card's dedup key is supply-row-empty:<account>; the refusals that name the model are supply.refusal.allEmpty and supply.refusal.emptyList.
  • Retired keys, kept in the file for one release and ignored — providerFunding, modelVendorOverrides, providerKeyExhausted (the old per-provider "key is out of balance" flag), and the payer pins (company-credits, managed-provider) inside providerRouteOverrides, which now carries only Codex's own routes.
  • The code — the rows, the reader and the road rules live in supply-list.ts; the conversion of older settings in supply-list-upgrade.ts; the served-by record (stored on sessions.served_by) in served-by.ts; the main-process reader, converter and row judge in supply-list-service.ts; the one connection walk for every road in supply-connect.ts; the card in SupplyListsSection.tsx.
  • The log line — each connection writes one [supply] <family>: <row> — passed over <row> (<reason>) line to the process log, naming the row that served and why earlier rows were skipped.
  • The rules and the orientation — who-pays-who-serves-contract.md and supply-list-map.md.

Related

Last verified 2026-09-30