EveryAPI · VS Code AI Assistant
One key, every model. Use the EveryAPI gateway (240+ models — Claude, GPT, Gemini, DeepSeek, …) two ways inside your editor:
- A built-in AI assistant — its own chat sidebar, inline code completion, workspace-aware context, and a status-bar HUD. Works in VS Code and its forks (Cursor, VSCodium, Windsurf, …).
- A Copilot Chat model provider — EveryAPI models also show up in VS Code's built-in Copilot Chat picker.
Both surfaces share a single key stored in your OS keychain.
The assistant
Open the EveryAPI icon in the activity bar:
- Chat sidebar — pick any model from
/v1/models (with live pricing), stream replies, run slash commands (/explain /fix /test /docs). Conversation persists per workspace.
- Workspace context — chips above the input attach your code to each turn so the model can actually see it:
- the active file (or just the selection),
- @-attached files via the
+ file picker,
- a Workspace overview (file tree +
package.json + README excerpt) for project-level questions.
- Inline completion — press Alt+\ in the editor for a ghost-text suggestion from your selected model. Manual-trigger only, so it never spends your balance on every keystroke.
- Status-bar HUD — current model + remaining balance, with today's tokens/spend in the tooltip.
- Onboarding & settings — connect with a key, pick a default model, set a low-balance alert, and see usage (today / 7-day / top models).
Copilot Chat provider
If you use GitHub Copilot Chat, EveryAPI also registers as a Language Model Chat Provider (VS Code v1.104+): open Copilot Chat's model picker → "Manage Models" → EveryAPI, and its models appear alongside Copilot's own.
⚠ Copilot Business / Enterprise: third-party model providers are gated on a tenant admin enabling "Models from other providers" in your Copilot policy. Individual plans have it on by default. (This only affects the Copilot-Chat surface — the built-in assistant works regardless.)
Setup
- Install from the Marketplace / OpenVSX (search "EveryAPI") or
code --install-extension everyapi-ai.everyapi-vscode.
- Open the EveryAPI sidebar → paste your
sk-everyapi-… key (created at https://app.everyapi.ai) → pick a default model.
- Chat, or hit Alt+\ in code for an inline completion.
The key is stored via vscode.SecretStorage — your OS keychain, never settings.json, and never the webview.
Commands & keybindings
| Command |
Default key |
What it does |
| EveryAPI: Set API Key… |
— |
Connect / replace the key (also the Copilot "Manage Models" entry) |
| EveryAPI: Clear Stored API Key |
— |
Disconnect |
| EveryAPI: Refresh Model List |
— |
Re-fetch models, pricing, and balance |
| EveryAPI: New Chat / Clear Conversation |
— |
(also in the sidebar title bar) |
| EveryAPI: Open Settings |
— |
The in-sidebar settings panel |
| EveryAPI: Inline Completion |
Alt+\ |
Ghost-text completion at the cursor |
Configuration
| Setting |
Default |
What it does |
everyapi.baseUrl |
https://api.everyapi.ai/v1 |
Gateway base URL. Override for staging / self-hosted. |
everyapi.defaultMaxOutputTokens |
4096 |
Fallback when the gateway doesn't expose a per-model output limit. |
everyapi.toolCalling |
true |
Report models as tool-capable so they're selectable in Copilot Chat's Agent/Edit modes. Turn off if a model errors on tool definitions. |
Architecture
apps/vscode/
├── package.json # activity-bar view + webview, commands, keybindings, config,
│ languageModelChatProviders
├── esbuild.mjs # bundles src/ → dist/extension.js (CJS, `vscode` external)
├── assets/icon.png # EveryAPI brand mark
├── media/ # webview assets (served, not bundled)
│ ├── chat.css / chat.js # the sidebar UI (vanilla JS; renders host snapshots)
│ └── everyapi-activity.svg # activity-bar icon
└── src/
├── extension.ts # activate(): wires the assistant + Copilot provider + commands
├── store.ts # host-owned state: key (secrets), models/pricing, wallet,
│ usage, conversation (globalState), settings
├── chatView.ts # WebviewViewProvider: streams turns, owns context state
├── context.ts # workspace context: active file/selection, @-files, overview
├── statusBar.ts # model + balance HUD
├── inlineComplete.ts # manual-trigger InlineCompletionItemProvider
└── provider.ts # EveryApiProvider — the Copilot Chat model provider
The gateway client (/v1/models, streaming /v1/chat/completions, wallet/usage/pricing) is the shared @everyapi-ai/gateway workspace package, bundled in.
Development
cd apps/vscode
bun install # via the monorepo workspace
bun run typecheck # tsc --noEmit
bun run build # tsc --noEmit && esbuild → dist/extension.js
bun run dev # esbuild watch mode
bun run package # → everyapi-vscode.vsix
Press F5 from apps/vscode/ to launch a fresh VS Code window with the extension loaded.
Releases
Merges to main that touch apps/vscode/** auto-release via CI: the version bump level is derived from the conventional-commit messages (feat → minor, fix/chore → patch, type!:/BREAKING → major), then the .vsix is built and published to both the VS Code Marketplace and OpenVSX. Publishing on both reaches the whole ecosystem — every VS Code fork that isn't Microsoft's pulls from OpenVSX.
Roadmap
- [x] Built-in assistant: chat sidebar, inline completion, workspace context, status-bar HUD.
- [x] Marketplace + OpenVSX publish (auto from CI).
- [x] Per-model capability flags — image input from
input_modalities; tool calling via everyapi.toolCalling.
- [ ] Cross-surface shared conversation (VS Code ↔ Raycast ↔ menubar) — needs a backend conversation store; today the conversation is local per workspace.
- [ ]
@-mention autocomplete inside the input (today the picker is a QuickPick).
License
MIT — see LICENSE in the repository root.