Editors and extensions
Zed
Add NoviaHub to the Zed editor as an OpenAI-compatible provider so the Agent Panel and other AI features use NoviaHub models.
Zed is a code editor with a built-in Agent Panel. In Zed’s own words, the Agent Panel is where you interact with AI agents that can read, write and run code in your project.
Once NoviaHub is added to Zed as an “OpenAI-compatible” provider, Zed’s own AI features, such as the Zed Agent, the Inline Assistant, Git commit message generation and thread summaries, can use NoviaHub models. External agents and terminal threads running inside Zed usually get their model from that agent’s or CLI’s own settings, not from this configuration.
Prerequisites
Section titled “Prerequisites”- A NoviaHub account with an API key. See API keys.
- Funds in your account. See Wallet and top-ups.
- No Zed account sign-in. Zed’s docs say you can use AI without signing in when you bring your own API keys.
Install Zed
Section titled “Install Zed”Download it from the download page, or use Homebrew:
brew install --cask zedDownload it from the download page, or use winget:
winget install -e --id ZedIndustries.ZedThe official install script supports x86_64 and AArch64 and common distributions such as Ubuntu, Arch, Debian and Fedora:
curl -f https://zed.dev/install.sh | shConfigure NoviaHub
Section titled “Configure NoviaHub”The examples use deepseek-v4-flash. Zed needs the context window size of every model: open the model under Models & Pricing and read the Context field. On 2026-09-28, deepseek-v4-flash listed a context of 1,000,000 tokens.
Use either method. The settings UI is simpler; settings.json is handy for adding several models at once.
Method 1: add it in the settings UI
Section titled “Method 1: add it in the settings UI”-
Open the command palette and run
agent: open settingsto open Agent Settings (also reachable under Settings → AI → LLM Providers). -
In the LLM Providers section, click Add Provider, then pick OpenAI under Compatible APIs in the menu. The Add OpenAI-Compatible Provider page opens.
-
Fill in the provider:
Field Value Provider Name noviahub(the provider ID; it also determines the environment variable name below)API URL https://noviahub.com/v1(include/v1)API Key Your NoviaHub key (starts with sk-). It is stored in the system keychain, not insettings.json -
Under Models, fill in the model:
Field Value Model Name deepseek-v4-flash(must match the model ID on NoviaHub exactly)Max Tokens 1000000(the model’s context window)Max Output Tokens The length limit for a single reply. The form pre-fills 32000; you can leave itLeave the other fields at their pre-filled values. To add more models, click Add Model.
-
Click Save Provider.
Method 2: edit settings.json
Section titled “Method 2: edit settings.json”-
Open Zed’s
settings.jsonand add anopenai_compatibleentry underlanguage_models:settings.json {"language_models": {"openai_compatible": {"noviahub": {"api_url": "https://noviahub.com/v1","available_models": [{"name": "deepseek-v4-flash","display_name": "DeepSeek V4 Flash (NoviaHub)","max_tokens": 1000000}]}}}}Key Purpose noviahubThe provider ID. You can pick any name; it also determines the environment variable name below. api_urlThe endpoint, including /v1:https://noviahub.com/v1.nameThe model ID. It must match the model ID on NoviaHub exactly. display_nameThe name shown in Zed’s model selector. Anything you like. max_tokensRequired. Here it means the model’s context window, not the per-reply output length. -
Provide the key. Do not put the key in
settings.json; Zed’s docs say so explicitly. Choose one:-
Enter the key in the provider’s section of Agent Settings (it is saved to the system keychain).
-
Or set an environment variable. Zed turns the provider ID into upper snake case and appends
_API_KEY. With the provider IDnoviahub, the variable is exactlyNOVIAHUB_API_KEY:终端窗口 export NOVIAHUB_API_KEY="sk-..."The variable must be present in the Zed process’s environment. A non-empty environment variable takes precedence over a key saved in the keychain.
-
Calling Claude models through an Anthropic-compatible provider (optional)
Section titled “Calling Claude models through an Anthropic-compatible provider (optional)”An OpenAI-compatible provider can call Claude models too, but the request goes through protocol conversion and some features are lost; see Protocol conversion. To send Claude models over Anthropic Messages, add a second, Anthropic-compatible provider. This only works for models whose details show the Anthropic endpoint label.
-
Settings UI: click Add Provider and pick Anthropic under Compatible APIs. Enter
noviahub-claudeas the Provider Name,https://noviahub.comas the API URL (no/v1) and the same NoviaHub key as the API Key; under the model, enterclaude-sonnet-5as the Model Name,1000000as Max Tokens and64000as Max Output Tokens, then click Save Provider. -
settings.json: add an
anthropic_compatibleentry underlanguage_models, next toopenai_compatible:settings.json {"language_models": {"anthropic_compatible": {"noviahub-claude": {"api_url": "https://noviahub.com","available_models": [{"name": "claude-sonnet-5","display_name": "Claude Sonnet 5 (NoviaHub)","max_tokens": 1000000,"max_output_tokens": 64000}]}}}}Key Purpose api_urlhttps://noviahub.com, without/v1. Zed appends/v1/messages;https://noviahub.com/v1would turn into/v1/v1/messages.max_tokensRequired. The model’s context window. On 2026-09-29, claude-sonnet-5listed a context of 1,000,000 tokens.max_output_tokensThe length limit for a single reply. If you leave it out, Zed uses 4,096. On 2026-09-29, claude-sonnet-5listed a max output of 64,000 tokens.Provide the key the same way as above: in the UI, or through an environment variable. With the provider ID
noviahub-claude, the variable isNOVIAHUB_CLAUDE_API_KEY, set to the same NoviaHub key.
Verify
Section titled “Verify”-
Open the Agent Panel: run
agent: new threadfrom the command palette, or click the ✨ icon in the status bar. -
Click the model selector on the message editor (shortcut:
cmd-alt-/on macOS,ctrl-alt-/on Windows / Linux) and pick a model undernoviahub. The logo to the left of each model shows which provider it belongs to. -
Send something simple, such as “Introduce yourself in one sentence.” A reply means the setup works.
-
Check the call and its cost under Usage logs in the NoviaHub console.
Switch and add models
Section titled “Switch and add models”- Switch between the models you added in the model selector.
- To add models, append another entry to
available_models(nameandmax_tokensare required), or add another model in the settings UI. - An OpenAI-compatible provider calls models through the Chat Completions API by default, so pick models that carry the Chat label under Models & Pricing. On 2026-09-28 every model on the site carried it.
- If a model works only through the Responses API, set
chat_completionstofalsein that model’scapabilitiesand Zed uses the Responses endpoint instead. This only works for models whose page shows the Response label.
- Image input is off by default.
capabilities.imagesdefaults tofalsefor both OpenAI-compatible and Anthropic-compatible models. If the model accepts images (see Input types on its page) and you want to send them, add"capabilities": { "images": true }to that model, or turn on Supports images when you add the model in the settings UI. - Tool calling. If the selected model does not support tool calling, Zed shows a “No tools” label, and the agent cannot read or write files or run commands.
- Small contexts are not compacted automatically. When a model’s context window is under 80,000 tokens, Zed does not compact the conversation automatically; it only suggests starting a new thread as you approach the limit.
- Remote projects. In SSH, dev container and other remote projects, Zed still reads keys from the local keychain and from the local Zed process’s environment.
References
Section titled “References”Checked on 2026-09-28 and 2026-09-29:
- Installation: https://zed.dev/docs/installation
- Use API access (OpenAI-compatible and Anthropic-compatible providers, keys and environment variables): https://zed.dev/docs/ai/use-api-access
- Agent Panel: https://zed.dev/docs/ai/agent-panel
- Authentication (no sign-in needed with your own API keys): https://zed.dev/docs/authentication
- The Add Provider menu and form labels in the settings UI: https://github.com/zed-industries/zed/blob/main/crates/settings_ui/src/pages/llm_providers_page.rs
- The
/v1/messagespath an Anthropic-compatible provider appends, themax_output_tokensdefault and the environment variable naming rule: https://github.com/zed-industries/zed/blob/main/crates/anthropic/src/anthropic.rs, https://github.com/zed-industries/zed/blob/main/crates/language_models/src/provider/anthropic_compatible.rs, https://github.com/zed-industries/zed/blob/main/crates/language_models/src/provider/api_compatible.rs