Skip to main content

Nous Portal

Nous Portal is a model provider you can use with Nedura. One OAuth login replaces the juggling act of separate accounts, API keys, and billing relationships across every model lab, search API, image generator, and browser provider you'd otherwise need to wire up by hand.

If you only have time to set up one thing, set up this. The fastest path:

nedura setup --portal

You're ready to nedura chat immediately after.

What's in the subscription​

300+ frontier models, one bill​

FamilyModels
Anthropic ClaudeOpus 4.7, Opus 4.6, Sonnet 4.6, Haiku 4.5
OpenAIGPT-5.5, GPT-5.5 Pro, GPT-5.4 Mini, GPT-5.4 Nano, GPT-5.3 Codex
Google GeminiGemini 3 Pro Preview, Gemini 3 Flash Preview, Gemini 3.1 Pro Preview, Gemini 3.1 Flash Lite Preview
DeepSeekDeepSeek V4 Pro
QwenQwen3.7-Max, Qwen3.6-35B-A3B
Kimi / MoonshotKimi K2.6
GLM / ZhipuGLM-5.1
MiniMaxMiniMax M2.7
xAIGrok 4.3
NVIDIANemotron-3 Super 120B-A12B
TencentHunyuan 3 Preview
XiaomiMiMo V2.5 Pro
StepFunStep 3.5 Flash
NeduraHermes-4-70B, Hermes-4-405B (chat, see note below)
+ everything else280+ additional models — the full agentic frontier

Under the hood, the Portal routes each model to the backend best suited for it — some models go through OpenRouter, others through proprietary or secondary providers, and the routing for a given model can change over time. Switch between Claude Sonnet 4.6 for code and Gemini 3 Pro for long context with /model mid-session — no new credentials, no top-ups, no surprise zero-balance errors.

note

Because routing is per-model and not always through OpenRouter, OpenRouter-specific request extensions (such as provider routing preferences, session_id sticky routing, or top-level cache_control) are not part of the Portal's API contract and may be ignored depending on which backend serves the model.

No credentials in your dotfiles​

Because everything routes through one OAuth-authenticated Portal session, you don't accumulate a .env file with a dozen long-lived API keys. The refresh token at ~/.nedura/auth.json is the only credential on disk, and Nedura mints short-lived JWTs from it per request — see Token handling below.

Cross-platform parity​

Native Windows makes per-tool API key setup its rough edge — installing a web search account, a FAL account, a Browser Use account, an OpenAI key from Windows is the highest-friction part of getting a useful agent. A Portal subscription smooths that out: one OAuth covers the model and every gateway tool, so Windows users get the same experience as macOS/Linux without manually configuring four backends.

A note on Hermes 4​

The Hermes 4 model family (Hermes-4-70B, Hermes-4-405B) is available through the Portal at heavily discounted rates. These are frontier hybrid-reasoning chat models — strong at math, science, instruction following, schema adherence, roleplay, and long-form writing.

They are not recommended for use inside Nedura, however. Hermes 4 is tuned for chat and reasoning, not the rapid-fire tool-calling loop the agent relies on.

/model anthropic/claude-sonnet-4.6 # best general-purpose agentic model
/model openai/gpt-5.5-pro # strong reasoning + tool calling
/model google/gemini-3-pro-preview # huge context window
/model deepseek/deepseek-v4-pro # cost-effective coder

Setup​

Fresh install — one command​

nedura setup --portal

This runs the full setup in one shot:

  1. Opens your browser to portal.nousresearch.com for OAuth login
  2. Stores the refresh token at ~/.nedura/auth.json
  3. Lets you pick a Nous Portal model from the curated list (or skip to keep your current one)
  4. Sets Nous Portal as your inference provider in ~/.nedura/config.yaml (when you pick a model)
  5. Returns you to your terminal ready to nedura chat

Existing install — add Portal alongside other providers​

If you already have Nedura configured with OpenRouter, Anthropic, or any other provider and you want to add the Portal alongside them:

nedura model
# pick "Nous Portal" from the provider list
# browser opens, sign in, done

Your existing providers stay configured. You can switch between them with /model mid-session or nedura model between sessions — the Portal becomes one of your available providers, not your only one.

Headless / SSH / remote setup​

OAuth needs a browser, but the loopback callback runs on the machine where Nedura is running. For remote hosts, see OAuth over SSH / Remote Hosts — the same patterns work for the Portal as for any other OAuth-based provider (ssh -L port forwarding).

Profile setup​

If you use Nedura profiles, the Portal refresh token is automatically shared across all profiles via a shared token store. Sign in once on any profile, and the rest pick it up automatically — no need to repeat the OAuth flow per profile.

Using the Portal day-to-day​

Inspecting what's wired up​

nedura portal # log in to Nous Portal + set it up (one-shot onboarding)
nedura portal info # login status, subscription info, model + gateway routing
nedura portal status # alias for `portal info`
nedura portal open # open the subscription management page in your browser

nedura portal info gives you the high-level overview:

Nous Portal
───────────
Auth: ✓ logged in
Portal: https://portal.nousresearch.com
Model: ✓ using Nous as inference provider

────────────
Web search & extract via Nous Portal
Image generation via Nous Portal
Text-to-speech via Nous Portal
Browser automation via Nous Portal
Cloud terminal not configured

Switching models​

Inside a session:

/model anthropic/claude-sonnet-4.6
/model openai/gpt-5.5-pro
/model google/gemini-3-pro-preview

Or open the picker:

/model
# arrow keys, enter to select

Outside a session (the full setup wizard, useful when adding a new provider):

nedura model

Mixing the gateway with your own backends​

If you already have, say, a Browserbase account and want to keep using it while routing web search and image generation through Nous Portal, that's supported. Use nedura tools to pick backends per tool:

nedura tools
# → Browser → "Browserbase" (your existing key)

Subscription management​

Manage your plan, view usage, or upgrade/cancel at any time:

  • CLI shortcut: nedura portal open (opens the same page in your default browser)

Configuration reference​

After nedura setup --portal, ~/.nedura/config.yaml will look like:

model:
provider: nous
default: anthropic/claude-sonnet-4.6 # or whatever model you picked
base_url: https://inference-api.nousresearch.com/v1
web:

image_gen:
provider: nous

tts:
provider: nous

browser:
cloud_provider: nous

The runtime always follows the stored selection — direct API keys left in .env are ignored while a category is set to nous, and picking a direct provider (e.g. image_gen.provider: fal) without its key produces a clear error rather than silently rerouting through the gateway. (Older configs used a legacy use_gateway: true flag; it is read as equivalent to nous but is no longer written.)

The OAuth refresh token is stored separately at ~/.nedura/auth.json (not in config.yaml — credentials and configuration are kept separate by design).

Token handling​

Nedura mints a short-lived JWT from your stored Portal refresh token on each inference call rather than reusing a long-lived API key. The token lifecycle is fully automatic — refresh, mint, retry on transient 401 — and you never see it.

Long-running gateway and dashboard processes also run a background keepalive that refreshes the token before it expires, so idle agents don't pay a 401 round-trip on their first request of each credential lifetime. The keepalive derives its tick from the lifetime the Portal actually issued (several ticks per lifetime), bounded above by:

nous:
keepalive_interval_seconds: 900 # upper bound on the tick; 0 disables the keepalive

If the Portal invalidates the refresh token (password change, manual revoke, session expiry), the invalid refresh token is quarantined locally so Nedura stops replaying it and you don't see a stream of identical 401s. The next call surfaces a clear "re-authentication required" message. Run nedura auth add nous to log in again; the quarantine clears on the next successful login.

Troubleshooting​

nedura portal info shows "not logged in"​

You haven't completed the OAuth flow, or your refresh token was wiped. Run:

nedura portal

or use nedura model and re-select Nous Portal.

Got a "re-authentication required" message mid-session​

Your Portal refresh token was invalidated (password change, manual revoke, or session expiry). Run nedura auth add nous and your next request will use the new credentials. Any quarantine on the old token clears automatically on successful re-login.

Want to use a specific provider model that the Portal doesn't expose​

The Portal routes each model to a suitable backend — some through OpenRouter, others through proprietary or secondary providers — so most models OpenRouter supports are generally available. If a specific model isn't appearing in /model, try the OpenRouter-style slug directly:

/model anthropic/claude-opus-4.6

If a model is genuinely missing, open an issue — we surface the Portal's catalog to Nedura and gaps usually mean a routing config we can update.

Bills not appearing on my Portal account​

Check nedura portal info first — if it shows you're using a different provider (Model: currently openrouter instead of using Nous Portal as inference provider), your local config has drifted. Run nedura model, pick Nous Portal, and the next request will route through your subscription.

See also​

  • Voice mode — Voice conversations using the Portal's OpenAI TTS
  • AI Providers — Full provider catalog if you want to compare alternatives
  • OAuth over SSH — Login from remote hosts or browser-only environments
  • Profiles — Multiple Nedura configurations sharing one Portal login