Keyquill tekijä R-Okauchi
Securely store LLM API keys in your browser. Use your own keys from any web app without trusting their server.
Laajennuksen metatiedot
Kuvakaappaukset
Tietoja tästä laajennuksesta
Keyquill is a Bring-Your-Own-Key (BYOK) wallet for LLM APIs. You register your OpenAI, Anthropic, Gemini, or any OpenAI-compatible API key inside the extension. Approved web apps can then stream chat completions using your key — and neither the web app nor its server ever sees the key material.
The problem
Web apps that use LLM APIs usually make you either:
- Let them store your API key on their server (trust and breach risk)
- Paste your key into
- Go without AI features
Keyquill offers a fourth option: keep the key in an isolated extension process, and let web apps request completions through a narrow, user-approved channel.
How it works
Security properties
What's new in v1.0 — policy broker
Every request is brokered through a user-owned policy before reaching the provider:
Supported providers
Anything that speaks the OpenAI Chat Completions format works out of the box. Native translation is provided for the Anthropic Messages API.
Confirmed: OpenAI, Anthropic, Google Gemini, Groq, Mistral, DeepSeek, Together AI, Fireworks AI, xAI (Grok), Ollama (local), and any OpenAI-compatible endpoint.
For developers
Integrate Keyquill in your web app with the official SDK:
v1 SDK users can keep pinning
Full documentation: https://github.com/R-Okauchi/keyquill
Links
The problem
Web apps that use LLM APIs usually make you either:
- Let them store your API key on their server (trust and breach risk)
- Paste your key into
localStorage (XSS risk)- Go without AI features
Keyquill offers a fourth option: keep the key in an isolated extension process, and let web apps request completions through a narrow, user-approved channel.
How it works
- Click the Keyquill toolbar icon. Register a provider (OpenAI, Anthropic, Gemini, Groq, Mistral, DeepSeek, Together, Fireworks, xAI, Ollama, or any OpenAI-compatible endpoint) and paste your API key.
- Visit any web app that integrates the Keyquill SDK.
- First access triggers a consent popup showing the origin name. Approve or deny.
- Approved apps can call for completions. The extension's service worker contacts the provider directly over HTTPS. The web page only receives the streamed response.
Security properties
- Keys live in
browser.storage.session— ephemeral, cleared when the browser closes, inaccessible to regular web-page JavaScript. - Per-origin consent (MetaMask style). Every origin that uses Keyquill must be explicitly approved via a popup. Approvals are stored in
browser.storage.localand can be revoked from the extension popup at any time. - Key registration and deletion are popup-only. Web pages cannot register, delete, or exfiltrate keys.
- Zero telemetry. The extension opens no connections to any Keyquill-controlled server (there isn't one). Network destinations are limited to LLM providers the user has chosen.
What's new in v1.0 — policy broker
Every request is brokered through a user-owned policy before reaching the provider:
- Model policy: allowlist / denylist / capability-only modes per key.
- Budget caps: per-request, daily, and monthly USD ceilings; choose block / confirm / warn.
- Privacy rules: HTTPS-only endpoints, provider allowlists, origin regex filters.
- Capability-first API: apps declare what they need (tool use, reasoning, long context); your policy picks the actual model.
- Consent popups for out-of-allowlist models or high-cost requests, with once/always/reject choices.
- Audit ledger: every request recorded locally with tokens + estimated + actual cost. Filter by origin, export to CSV, 90-day retention.
- Localized errors (English / Japanese).
Supported providers
Anything that speaks the OpenAI Chat Completions format works out of the box. Native translation is provided for the Anthropic Messages API.
Confirmed: OpenAI, Anthropic, Google Gemini, Groq, Mistral, DeepSeek, Together AI, Fireworks AI, xAI (Grok), Ollama (local), and any OpenAI-compatible endpoint.
For developers
Integrate Keyquill in your web app with the official SDK:
npm install keyquill
import { Keyquill } from "keyquill";
const quill = new Keyquill();
if (await quill.isAvailable()) {
await quill.connect();
const { completion } = await quill.chat({
messages: [{ role: "user", content: "Hello" }],
requires: ["tool_use"],
tone: "precise",
maxOutput: 1024,
});
}
v1 SDK users can keep pinning
keyquill@0.3.x — the extension accepts both wire shapes.Full documentation: https://github.com/R-Okauchi/keyquill
Links
- Live demo: https://r-okauchi.github.io/keyquill/demo/
- Source code (MIT): https://github.com/R-Okauchi/keyquill
- Privacy policy: https://r-okauchi.github.io/keyquill/privacy-policy
- Report issues: https://github.com/R-Okauchi/keyquill/issues
Arvio 0 0 arvostelijan toimesta
Käyttöoikeudet ja data
Vaaditut käyttöoikeudet:
- Pääsy tietoihisi kaikilla verkkosivuilla
Vaadittu tiedonkeruu kehittäjän mukaan:
- Todennustiedot
- Henkilökohtainen yhteydenpito
Lisätietoja
- Versio
- 1.1.0
- Koko
- 2,1 Mt
- Viimeksi päivitetty
- neljä päivää sitten (27. huhti 2026)
- Liittyvät luokat
- Lisenssi
- MIT-lisenssi
- Tietosuojakäytäntö
- Lue tämän lisäosan tietosuojakäytäntö
- Versiohistoria
- Lisää kokoelmaan