Keep every AI API key in one wallet. Apps connect to the wallet, the wallet makes their calls, and your keys never leave Byoky.
Install the wallet, set a master password, and add your API keys or a Claude setup token. They're encrypted on this device.
Open any Byoky-enabled app. It asks for access to the providers it needs, and you decide.
Requests go from your wallet straight to the provider. The app gets a session token, never your key.
Works with any AI provider
Apps connect to your wallet instead of asking for your keys. One click to approve, one click to revoke. Pick an app below to see what it could look like.
Create apps and websites by chatting with AI.
Running on your own keys · unlimited prompts
This is a preview of how the Connect Byoky wallet button could appear on these apps. Byoky is not affiliated with any of them.
A key pasted into a settings page is a key you no longer control. With Byoky, apps connect to your wallet the way dapps connect to MetaMask.
Anthropic, OpenAI, Gemini, Mistral and nine more, plus custom endpoints. Add a key once and use it in every Byoky-enabled app.
Approve an app, see every request it makes, set spending caps, and revoke it with one click. No more sk-... in a settings page.
Bucket connected apps by purpose (“Personal”, “Work”), pin each group to a credential, then drag apps between groups to change which key they use. Live sessions reroute without code changes.
Drag an app from a Claude group into a GPT group and the wallet translates on the fly: Anthropic ↔ OpenAI ↔ Gemini ↔ Cohere request bodies, response bodies and SSE streams.
Byoky doesn't run anything that sits between you and your provider. The wallet talks only to the AI providers you add. There is nothing to sign up for and nothing to sync.
Your keys are encrypted on your device. Moving them to another device is up to you, with an encrypted backup file.
Each wallet serves the apps on its own device. Every path ends at a wallet you hold.
Web apps connect through the Byoky browser extension. Keys live in the extension.
The Byoky Safari extension, included with the iOS app, brings the wallet to Safari. Add your keys in its popup and web apps in Safari connect to it.
Open any https app by URL in the built-in browser of the iOS or Android app. It connects through an injected wallet bridge, no extension needed.
@byoky/bridge is a localhost proxy that hands requests to the extension over native messaging. Works with OpenClaw, Claude Code and Hermes.
Your server makes calls through the user’s browser over a WebSocket you host. Your backend never sees the key, and no Byoky server is involved.
Wallets don’t pair or sync. To use your keys on another device, export a password-protected .byoky backup and import it there.
Use the keys already in your wallet, or an existing Claude Pro/Max subscription via a setup token. The plugin routes through the local bridge, so your keys stay in the wallet even when the agent runs in your terminal.
Integrate with any AI provider using their native SDK. Just swap in Byoky's fetch. Keys never touch your app, and your users pay their provider directly.
npm install @byoky/sdk to add to an existing project · npx create-byoky-app to scaffold a new one
Works with official SDKs from Anthropic, OpenAI, Gemini, Mistral, and 9 more providers. Just swap in Byoky's fetch.
Full SSE streaming support through the wallet proxy. No special handling needed.
modal: true handles the connect flow. No wallet yet? It shows install links, and on phones it points users to the Byoky app's built-in browser.
Your server makes LLM calls through the user's browser over a WebSocket you host. Keys never leave the wallet, even server-side.
The Byoky Bridge lets CLI tools and desktop apps route through the wallet via a local HTTP proxy. Keys stay in the extension.
import Anthropic from '@anthropic-ai/sdk';
import { Byoky } from '@byoky/sdk';
const byoky = new Byoky();
const session = await byoky.connect({
providers: [{ id: 'anthropic', required: true }],
modal: true, // built-in connect + install UI
});
// Use the native Anthropic SDK — keys never exposed
const client = new Anthropic({
apiKey: session.sessionKey,
fetch: session.createFetch('anthropic'),
});