Skip to content

AI provider router

Turn your AI chat accounts into an API — and chat with all of them at once


Revoye drives the AI accounts you are already signed into — ChatGPT, Claude, Gemini, DeepSeek, Qwen, Perplexity — from your own browser, on your own machine. Send one prompt to all of them and compare the answers side by side, or point your application at a Revoye endpoint and get the same answers in code. No provider API keys. No per-token bill.

Download for WindowsDownload for macOSRead the API docsLog in

Create a free accountAdd to Chrome — no account needed

Free to start. Revoye never sees your provider logins — they stay in your browser.

  • No provider API keys

    Revoye never holds a ChatGPT, Claude or Gemini credential. It drives the sessions already open in your browser.

  • Six providers, one fleet

    ChatGPT, Claude, Gemini, DeepSeek, Qwen and Perplexity — reachable from the chat window and from the same API request shape.

  • Works with the OpenAI SDK

    Change a base URL and an existing integration keeps working. Streaming is the one thing that does not — and we say so.

You are already paying for AI. You are just not getting much out of it.

You have a ChatGPT subscription. Maybe Claude as well, and Gemini, and a DeepSeek account you opened to compare. You use them every day, in six browser tabs. And then two things happen that have nothing to do with how good the models are.

  • A subscription and an API are two separate purchases

    A monthly plan buys you a web interface. It does not buy you programmatic access. The moment your code needs an answer, you are on a metered bill with no relationship to the flat fee you are already paying.

  • Comparing models means doing everything twice

    The reason you keep three accounts is that they are good at different things. So you paste the same prompt into three tabs, wait three times, and hold three answers in your head to compare them. Every time.

  • Every provider is its own integration

    A different SDK, a different auth scheme, a different response shape, another key in another secret store. Trying a second model to compare quality becomes a day of work before it becomes a comparison.

  • Keys leak, and a leaked key spends your money

    A provider key in a repository, a log line, or a client bundle is someone else’s usage on your card. The safest key is the one that was never issued.

All four have the same root: the access you already have is stuck behind a browser tab, one tab at a time. Revoye is what happens when it is not.

What Revoye is

Revoye is an AI provider router. It drives the AI chat products you are already signed into — ChatGPT, Claude, Gemini, DeepSeek, Qwen or Perplexity — inside a real browser on your own computer. You can use that two ways: a chat window that sends one prompt to several of your accounts at once and shows the answers side by side, or an API endpoint your own applications call to get the same answers in code. Revoye stores no provider credentials, because it never needs any: the sessions stay in your browser, on your machine.

In plain terms

  • It is a router, not a model. Revoye generates nothing. It decides which of your AI accounts answers a given prompt, and gets that answer back to you — to a chat window, or to your code.

  • It is a queue, not a proxy. An API prompt becomes durable the moment Revoye accepts it. If your computer is asleep, the job waits for it. Nothing is dropped because a machine was offline.

  • It is your own infrastructure, operated for you. The accounts are yours, the browser is yours, the machine is yours. Revoye supplies the chat interface, the endpoint, the queue and the routing that connect them.

  • It is straight about what it is not. Revoye is not faster than a real model API, it cannot stream, and the API half does nothing while your computer is off. §15 covers all three.

How a prompt reaches one of your AI accounts, by either of two pathsTwo inputs meet one fleet of agents. Path one: you type on the Revoye chat page in your browser, and the prompt goes straight to your agents without passing through any Revoye server. Path two: your application sends POST /v1/completions to the Revoye API, which puts it in your queue and hands it to the router; the router sends it, signed by your device key, to Revoye Desk on your own computer, which passes it over a local browser bridge to the same agents. Everything from Revoye Desk downwards runs on your machine. The agents are browser tabs in the Revoye extension — Agent 1, Agent 2, Agent 3 and so on — and they are the same agents whichever path asked. From there each agent drives the provider website you are already logged into: chatgpt.com, claude.ai, gemini.google.com, chat.deepseek.com, chat.qwen.ai or perplexity.ai.1 · YOUtyping on the Revoyechat page2 · YOUR APPLICATIONPOST /v1/completionsRevoye API→ your queue→ the RouterRevoye’s serverssigned by yourdevice keyeverything below this line runs on your machineRevoye Desk(desktop app)Your computerbrowser bridgeno Revoye server in this paththe same agents,whichever askedRevoye extension — YOUR AGENTSAgent 1 · Agent 2 · Agent 3 · …Your browserchatgpt.com · claude.ai · gemini.google.comchat.deepseek.com · chat.qwen.ai · perplexity.aiyou are already logged in here

One fleet of agents. Two ways to use it.

An agent is one browser tab dedicated to one of your AI accounts. You create as many as you want — three for ChatGPT, one for Claude, two for DeepSeek — and they are your unit of everything: more agents means more answers at once.

Those agents do not care who is asking. That is the whole design.

The multi-agent chat

Ask several of your AI accounts the same question at once, and read the answers together.

  • Send once, ask everything. Type a prompt and send it to one agent or to every enabled agent at the same time. The tabs work in parallel, so six answers take about as long as one.

  • Compare properly. Read the replies in a single thread, one agent at a time, or side by side in columns. The comparison you have been doing by hand across six tabs, in one window.

  • Pick up where you left off. Conversations are saved and can be reopened and continued.

Needs nothing but the extension. No Revoye account, no desktop app, no setup. This half never contacts a Revoye server at all — the only network traffic is your browser talking to the providers you were already using.

Your chats as an API

Point your own application at a Revoye endpoint and get answers from the same accounts, in code.

  • One endpoint, six providers. POST /v1/completions with a bearer token. Name a provider or let your routing policy choose. There is an OpenAI-compatible surface too, so an existing integration moves by changing a base URL.

  • A queue that belongs to you. Prompts are durable the moment they are accepted. Close the laptop mid-run and the work is still there when it wakes up.

  • Routing you control. Rotation across your accounts, hourly limits per agent and per provider, automatic retry onto another agent when one gets stuck.

Needs an account, the desktop app and the extension. The desktop app is what gives your machine a signed identity and an authenticated connection; without it there is nowhere for the router to send work. §9 explains why each piece exists.

They are the same agents

The chat window and the API do not run separate automation. They call the same code, drive the same tabs, and use the same agents you configured once in the extension. The only difference is which window the tab opens in.

That is why a busy agent is never double-booked. An agent working on a chat prompt is one the router is told to skip, not one that tries to answer twice.

And it is why the two halves improve together. A fix for a provider whose website changed lands in both at once, because there is only one thing to fix.

Most people start with the chat because it takes a minute, then add the account and the desktop app when they want their code to have the same access.

Set it up →

How to set it up

Only want the chat? Install the extension and you are done — skip to step 3. The rest of this is for the API half.

  1. API path

    Create a Revoye account

    Sign up and verify your email at revoye.degird.com. Your account owns everything on the API side: your devices, your providers, your agents, your API keys, and your job history. It takes about a minute, and the dashboard stays empty until step 2 — that is expected.

  2. API path

    Install Revoye Desk, the desktop app

    Revoye Desk runs on your computer, on Windows or macOS. In the dashboard, click Pair a device and you get a one-time code in the form XXXX-XXXX. Paste it into Revoye Desk. The app generates a keypair, keeps the private half in your operating system’s keychain, registers the public half with Revoye, and opens an authenticated connection. Your machine is now somewhere work can be sent.

  3. Both paths

    Install the browser extension and create your agents

    Add the Revoye extension to the browser where you are already signed into your AI accounts — Chrome, Edge, Brave or another Chromium browser. Open its settings and create agents: Agent 1 → ChatGPT, Agent 2 → ChatGPT, Agent 3 → Claude, and so on.

    You can stop here. Open the chat page from the toolbar icon or with Alt+Shift+E, and start sending prompts to all of them at once. Nothing else is required for that.

  4. API path

    Connect it up and send prompts from your code

    With the desktop app paired, the extension reports its agents through it and your dashboard fills in: every provider, every agent, live status. Create an API key, point your application at https://revoyeapi.degird.com/v1/completions, and send a prompt. It goes to your queue, out to your device, into a free agent, into the provider’s web UI — and the answer comes back the same way.

  5. API path

    Build on the public API (for developers)

    Wait for the answer, or queue it and take a webhook. Pin a provider or let the router choose. Point an existing OpenAI SDK at Revoye by changing one base URL. The full reference is in the developer documentation.

Add to Chrome— start chatting nowCreate a free account— start with the API

What happens to a single API prompt

  1. your app
  2. Revoye API
  3. your queue
  4. is your device online?
  5. Revoye Desk
  6. Revoye extension
  7. a free agent
  8. the provider’s web UI
  9. the agent reads the finished answer
  10. back through the extension
  11. Revoye Desk
  12. Revoye
  13. your app

One HTTP request from your application’s point of view. Typically 20 to 90 seconds, because a real browser is typing and a real model is answering. A chat prompt takes the same time and skips the first four hops entirely.

The four parts, and why each one exists

Revoye is deliberately split across three places: our servers, your computer, and your browser. The split is not an implementation detail — it is what lets the whole thing work without Revoye ever holding one of your AI logins.

  • Revoye Web and the personal API router

    Runs on: Revoye’s serversYou use it: in a browser tab

    This is the product. Your account, your API keys, your devices, your provider and agent list with live status, your routing rules, and your job history all live here — and so does the router itself, the part that decides which of your agents answers which prompt.

    The router is what makes it your personal API router rather than a shared gateway. It holds a queue that belongs only to you, applies only your rules, and dispatches only to your machines. Two Revoye users share nothing but the code.

    You touch this when: signing up, pairing a device, creating an API key, changing rotation or rate limits, or looking at what ran.

  • Revoye Desk, the desktop app

    Runs on: your computer, Windows or macOSYou use it: once, then it stays out of the way

    Revoye Desk is your machine’s identity and its front door. At pairing it generates an Ed25519 keypair and puts the private half in your OS keychain, then holds an authenticated connection to Revoye so the router knows whether your machine is reachable right now. When work arrives it makes sure the browser is running and hands the work to the extension.

    It exists because the browser extension cannot be trusted with an account credential and should not be reachable from the internet. Revoye Desk is the boundary: it talks to Revoye over an authenticated socket, and to the extension over a local browser bridge that the operating system pins to exactly one extension ID.

    You touch this when: installing, pairing once, and — rarely — checking why your device shows as offline. Not needed for the chat half at all.

  • The browser extension

    Runs on: Chrome, Edge, Brave or another Chromium browserYou use it: every day

    The extension is where all the work actually happens, for both halves. Each agent it runs opens a provider’s normal web page, types the prompt in as a person would, waits for the answer to finish generating, and reads it back. Because it runs inside the browser you are already signed in to, there is no login for Revoye to store and none for an attacker to steal from us.

    It is also the chat window: one prompt to every enabled agent, answers in a thread or in columns, conversations saved and resumable. That half needs nothing else installed and never contacts a Revoye server.

    You touch this when: chatting, adding or removing agents, or switching one off.

  • The public API

    Runs on: Revoye’s serversYou use it: from your own code

    One endpoint, one bearer token, six providers. Send a prompt and hold the connection until the answer arrives, or queue it and take a webhook. Ask for a specific provider or let your rotation policy choose. There is also an OpenAI-compatible surface, so an existing integration can be pointed at Revoye by changing a base URL.

    You touch this when: building anything.

    Read the developer documentation

What happens between “send” and “answer”

A browser is a slower and more fragile place to run a prompt than a model API. Every part of the API path is built around that.

  1. It is queued before it is anything else

    The moment Revoye accepts your request, the job is written down and durable. If your connection drops, the job keeps running and the result waits for you at GET /v1/completions/{id} — or is delivered to your webhook. A client timeout loses nothing.

  2. Your device is checked, not assumed

    Before anything is dispatched, the router checks whether one of your paired devices is actually connected. If none is, the work stays in your queue. When your machine comes back, the queue drains into it. A laptop that was closed overnight is a delay, not an error.

  3. An eligible agent is chosen

    A candidate agent has to clear every one of these: enabled in your dashboard, enabled in your extension, idle, its provider enabled, its device connected, not already failed on this job, and under your agent, provider and global hourly limits. Whatever survives, your rotation strategy picks from. An agent busy with a chat prompt is skipped, not interrupted.

  4. The prompt is typed, and the answer is read

    The agent opens the provider’s page, enters the prompt, and waits for generation to finish — not for a fixed timer, but for the page to actually stop producing. Then it reads the answer back.

  5. A stuck agent does not become a stuck request

    Every attempt has a timeout. When one is hit, the job is taken off that agent and given to the next eligible one, which never includes an agent that already failed this job. The whole job has its own deadline covering all attempts, so retries cannot run forever.

  6. The answer comes back the way it came

    The response returns through the extension, the desktop app and the router to your waiting HTTP request, or to your callback_url. Along with it: which provider answered, which agent, how many attempts it took, how long it queued, and how long it ran.

Nothing is authoritative in two places. Your job state lives in the database, your agents exist in your extension, and your provider sessions never leave your browser.

You decide how prompts are spread across your accounts

Your accounts, your pace. Every rule here is set in the dashboard and applied by the router before a single prompt reaches a provider.

  • Round robin

    Rotates between agents on each provider, then across providers

    Suits The default. Even wear on everything

  • Least recently used

    Always picks the agent that has been idle longest

    Suits Spreading load across accounts

  • Priority

    Prefers your highest-priority provider that has a free agent, and falls back

    Suits “Use ChatGPT; if it is busy, DeepSeek”

  • Time window

    Only uses providers whose configured hours include right now

    Suits “Use Gemini overnight”

  • Hourly rate limits, at three levels. Set a cap per agent, per provider, and across everything at once. When one is reached, the router simply routes elsewhere — or, if you asked it not to wait, tells your application so explicitly rather than failing vaguely.

  • Turn anything off, from either end. Disable a provider or a single agent in the dashboard, or switch an agent off inside the extension. Both are honoured; nothing is dispatched to something you have switched off.

  • Ask for a provider, or don’t. A request can name chatgpt and get ChatGPT or nothing, or name nothing at all and let your strategy decide. Asking for one provider and quietly getting another would be a bug, not a feature, so it never happens.

What you actually get

Your AI spend stops being two bills

A subscription is a flat monthly fee. A model API is metered — you pay per token, forever, and the bill grows with your usage whether or not the subscription you are already paying for went unused that month.

Revoye routes your programmatic prompts through the subscriptions you have already bought. There is no per-token charge on top, because there is no provider API call to meter: the prompt goes through the same web interface you would have used by hand.

The honest trade is in §15: you are trading tokens-per-second for cost. If your workload is bursty, batch, background or overnight, that trade is very good. If it is a real-time chat UI with users waiting, it is not.

A model API compared with Revoye, on the four axes that decide cost
AxisModel APIRevoye
What you pay the providerSubscription and metered usageThe subscription you already have
Cost per extra promptPer tokenNone
What limits your throughputYour budgetHow many agents you run
Provider credentials held by a third partyYour API keyNone
  • Six answers to one question

    Send a prompt to every account you have and read the replies together — in a thread or in columns. The model comparison you were doing across six tabs, done once, in one place, in the time the slowest one takes.

  • One integration for six providers

    One base URL, one bearer token, one request shape. Switching from ChatGPT to Claude is a string in a field, not a new SDK, a new auth scheme and a new response parser.

  • No key to leak

    Revoye holds no provider credential, so there is no provider credential to steal from Revoye. Your Revoye key can be scoped down to write-only or read-only, rotated, and revoked from the dashboard without touching any provider account.

  • Work that survives being offline

    Your queue is durable. Close the laptop mid-run and the job is still there when it wakes up. For anything overnight or unattended, this is the difference between a pipeline and a babysitting job.

  • It plugs into what you already wrote

    Point an OpenAI SDK at Revoye by changing base_url. revoye/auto lets your routing policy pick the provider; revoye/chatgpt pins one. Your model picker keeps working, because /v1/models answers in the shape it expects.

  • One place to see everything

    Every device, every provider, every agent and its live status, your queue depth, and the history of what ran, on which agent, and how long it took. Not six dashboards on six provider sites.

Who Revoye is for

  • Developers and indie builders

    the API

    You are building a side project, a tool, or a product feature that calls a model, and the metered bill arrives before the first user does. You already pay for the chat products; Revoye lets the code you are writing use them. One endpoint, an OpenAI-compatible surface, webhooks, and a durable queue — so a prototype does not need a billing account to exist.

  • Automation and script writers

    the API

    Batch jobs, content pipelines, data cleanup, scheduled research, a nightly summarisation run. These are exactly the workloads that do not care whether an answer takes forty seconds, and exactly the workloads whose metered cost is highest, because they run without anyone watching. Queue them, go to bed, take the webhooks in the morning.

  • Anyone who keeps three AI subscriptions open

    the chat

    You pay for ChatGPT and Claude and maybe Gemini precisely because they are good at different things, and you have been finding that out by pasting the same prompt into three tabs. The Revoye chat window sends it once and shows you all three answers together. This half costs you one extension install and no account, which makes it the cheapest thing on this page to try.

  • Researchers, writers and analysts

    the chat

    When the disagreement between models is the finding — comparing how three systems summarise the same document, or checking whether an answer holds across providers — a side-by-side view is the tool, and doing it by hand is the reason it does not get done.

  • Application builders and integrators

    the API

    You are putting an AI feature into someone else’s product, and the customer’s own AI subscription is the natural place for it to draw from. Revoye gives that customer a personal router they control: their accounts, their machine, their rate limits, their revocable key — and one integration on your side.

  • Small teams

    Every member has their own subscriptions and their own machine, and a shared internal tool has nowhere to draw from without a company-wide metered account. Revoye gives each person a personal router and an API key of their own. Today, an account is a single owner: there are no shared workspaces, no seats and no team roles. If you need one billing account and five users under it, Revoye is not there yet.

For developers

One POST, a bearer token, and an answer. Here is the whole thing.

curl https://revoyeapi.degird.com/v1/completions \
  -H "Authorization: Bearer $REVOYE_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "prompt": "Summarise the CAP theorem in three sentences.",
    "provider": "chatgpt",
    "wait": true
  }'

Response

{
  "id": "job_01JAY7Q2K8XYZ",
  "status": "succeeded",
  "response": "The CAP theorem states that…",
  "provider": "chatgpt",
  "agent_id": "agt_01JAY7…",
  "attempts": 1,
  "queue_ms": 240,
  "run_ms": 18432
}
  • wait: true is a long poll, not a synchronous call. The job is durable from the moment it is accepted. If your connection drops the job keeps running, and the result is at GET /v1/completions/{id}.

  • Idempotency-Key makes a retry safe. Same key and same body returns the original job in whatever state it is in. Same key with a different body is a 409 — silently returning the first answer would be worse than an error.

  • Errors are codes, not prose. code is the contract and message is for humans. NO_AGENT_AVAILABLE and NO_DEVICE_ONLINE are retryable and mean something specific about your fleet, not about us.

  • Check before you send. GET /v1/status returns your online devices, idle agents per provider, hourly usage against your limits, and your queue depth.

Read the full API reference →QuickstartErrors

Integrating with an AI coding agent? Download the Node.js integration skill — the whole public API in one Markdown file: authentication, every endpoint, the error table, retries, webhooks and a reusable client. Hand it to the agent and it has everything it needs in a single pass.

What Revoye is not

Every one of these is a consequence of the design, not a roadmap item we are embarrassed about. If one of them is a dealbreaker for your workload, better to find out here.

  1. It is not faster than a model API

    A real browser is typing, and a real model is generating into a page. Expect roughly 20 to 90 seconds for a prompt, in the chat window and through the API alike. You get more throughput by running more agents, not by waiting less. For a user-facing chat where somebody is watching a cursor blink, use a model API.

  2. It cannot stream

    The agent reads a finished answer out of the page — there is no partial output to forward. stream: true returns a 400 rather than pretending. This is also why token usage comes back as null: Revoye has no token counts, and inventing numbers would be worse than admitting there are none.

  3. The API half needs your computer to be on

    No paired device online means nothing can run. Your prompts are not lost — they queue until a device returns — but if you need answers at 3 a.m. from a laptop that sleeps at midnight, the answers arrive when the laptop does. The chat half has no such constraint: you are at the machine already.

  4. It depends on interfaces we do not control

    Providers redesign their web apps. When one does, the agent for that provider can break until we ship a fix. That is a real operational cost of this approach, and running agents on more than one provider is the honest mitigation.

  5. It is one account, one owner

    No teams, no shared workspaces, no roles, no seats. An API key belongs to a person. This is a deliberate V1 scope decision, not an oversight.

Where your credentials live

The short version: not with us. The architecture is arranged around that one commitment, and everything else follows from it.

  • Your provider sessions never leave your browser

    Revoye has no ChatGPT password, no Claude session cookie, no Gemini token. The agent works inside the browser where you are already signed in. There is no provider credential in our database because there is no step in the design that would put one there.

  • Your device key never leaves your machine

    At pairing, Revoye Desk generates a keypair and stores the private half in your operating system’s keychain — Credential Manager on Windows, Keychain on macOS. Revoye receives only the public half. Every message from your device is signed with a key we do not have and could not disclose.

  • The extension has no credential at all

    It cannot reach a Revoye server, and it holds no key, token or account identity. Its only outbound channel is a local bridge to Revoye Desk, which the operating system pins to exactly one extension ID. An attacker who reads your browser profile finds nothing of Revoye’s to use. It is also why the chat half works with no account: there is nothing for it to log in to.

  • Your Revoye key is scoped, revocable, and shown once

    API keys carry scopes: write-only for a key embedded in a client, read-only for a monitor. We store a hash, never the key, so no endpoint exists that could show it again. An API key can never perform an account action — it cannot create another key, revoke a device, or read your audit log. A leaked key cannot become account access.

  • We automate your session; we do not disguise it

    Revoye types at human speed, paces requests with the hourly limits you set, and behaves like a foreground tab so a background one still works. What it deliberately does not do: no user-agent or fingerprint spoofing, and no attempt to defeat a provider’s bot challenge. Revoye automates a session you are legitimately signed into, at human pace. That is the line, and it is why per-agent hourly limits are a real product feature rather than an afterthought.

What Revoye stores, and what it never stores, row by row
Revoye storesRevoye never stores
Your email and a password hashAny provider password, cookie or session
A hash of each API key, plus its first characters so you can tell them apartThe API key itself
Your devices’ public keysAny device private key
Your provider, agent and routing configurationAny provider API key
Your API jobs: prompt, response, timings, and which agent ran them, under a retention policyAnything from the chat window — it never reaches a Revoye server

API prompts and responses are stored so your job history works, and they are deleted on a retention schedule. If you need them gone sooner, delete the job. Chat conversations are saved in your own browser and go nowhere else.

Get started

The one-minute version

Install the extension, create a couple of agents, start chatting.

No account, no desktop app, no configuration. Works in Chrome, Edge, Brave and other Chromium browsers.

Add to Chrome

The full ecosystem

  1. Create your account — free, about a minute. Sign up

  2. Install Revoye Desk — Windows or macOS. Pair it with the code from your dashboard.

  3. Add the browser extension — in the profile where your AI accounts are signed in, and create your agents.

  4. Create an API key and send your first prompt — the quickstart is four commands long.

  • Revoye for your browser

    The extension that runs your agents, and the multi-agent chat.

    Add to Chrome

    Not released yet. The link goes to the download page, which says what is still outstanding.

  • Revoye Desk for Windows

    The desktop agent. Pairs your machine and keeps it reachable.

    Download for Windows

    Not released yet. The link goes to the download page, which says what is still outstanding.

  • Revoye Desk for macOS

    The same, for Mac.

    Download for macOS

    Not released yet. The link goes to the download page, which says what is still outstanding.

Revoye Desk is Windows and macOS today; Linux is not supported yet. The extension needs no desktop app if you only want the chat.

FAQ

Do I need a ChatGPT or Claude API key to use Revoye?

No. That is the point. Revoye works through the accounts you are already signed into in your browser, so there is no provider API key anywhere in the system — not in your code, not in our database.

Can I use Revoye without creating an account?

Yes, for the chat half. Install the browser extension, create a couple of agents, and you can send one prompt to several of your AI accounts at once and compare the answers. That half never contacts a Revoye server. The API half needs an account, because it needs a queue, a key and a paired device.

Can I really send one prompt to several AI models at once?

Yes. Each agent is a browser tab on one of your accounts, and the chat window can send a prompt to every enabled agent at the same time. The tabs work in parallel, so six answers take about as long as the slowest one. You can read them in a single thread or side by side in columns, and conversations are saved so you can reopen and continue them.

Which AI providers does Revoye support?

ChatGPT, Claude, Gemini, DeepSeek, Qwen and Perplexity. All six work in the chat window and through the same API request shape, so switching between them is one field in your request.

Do I have to install the desktop app and the browser extension?

Only for the API half, and they do different jobs: the desktop app is your machine’s identity and its authenticated connection to Revoye, and the extension is what actually drives the provider pages. For the chat, the extension alone is enough.

How does Revoye reduce API costs?

By using access you have already bought. A model API bills per token on top of any subscription you hold. Revoye sends your prompts through the web interface your subscription already covers, so there is no metered provider charge for a prompt that Revoye routes.

How fast is it?

Roughly 20 to 90 seconds per prompt, because a browser is typing and a model is generating. You scale by running more agents in parallel, not by making a single prompt faster. It is not a replacement for a model API in a real-time interface.

Can I stream responses?

No. The agent reads a finished answer from the page, so there is nothing partial to stream. stream: true returns a 400 rather than silently ignoring the flag.

What happens if my computer is off?

API prompts queue. Nothing is lost — when a paired device reconnects, the queue drains into it. If you asked not to wait and gave no webhook, you get an immediate NO_DEVICE_ONLINE instead, because there would be nobody to deliver the answer to. The chat half is unaffected: you are at the machine.

Can I use my existing OpenAI SDK code?

Yes — change the base URL and use revoye/chatgpt or revoye/auto as the model. Three things behave differently and are documented rather than hidden: messages are flattened into a single prompt, streaming is rejected, and usage is null.

What if an agent gets stuck?

Each attempt has a timeout. When it expires the job moves to the next eligible agent, and never back to one that already failed it. The whole job has its own deadline across all attempts, so a retry loop cannot run forever.

Does the chat interfere with the API, or the other way round?

No. They use the same agents, and an agent busy with one is simply skipped by the other rather than being asked to answer twice. If you want to guarantee capacity for one, create more agents or switch individual ones off.

Is my prompt data stored?

API prompts and responses are stored so that your job history and async retrieval work, and they are removed on a retention schedule; you can delete a job yourself. Chat conversations are saved in your own browser and never reach a Revoye server. Your provider logins are never stored at all.

Which browsers does the extension work in?

Chrome, Edge, Brave and other Chromium-based browsers, version 111 or newer.

Does Revoye work on Linux?

The extension does, in any Chromium browser — so the chat half works on Linux today. Revoye Desk, which the API half needs, is Windows and macOS only for now.

Is Revoye affiliated with OpenAI, Anthropic, Google or any other provider?

No. Revoye is an independent tool that drives the provider websites you are already logged into. Provider names are used only to identify which service an agent connects to. You are responsible for using your own accounts in line with each provider’s terms.

Put the AI accounts you already pay for to work

Chat with all of them at once, or give your code the same access. Free to start, no provider API keys, and your prompts run on your machine under your own accounts.