Repository navigation
Releases: MBarc/nectra
Release list
v0.4.5
See what Nectra saves you
After each chat answer, Nectra shows what the conversation has cost so far at API list prices, next to the same tokens at Opus prices:
This chat: $0.005 at API prices; the same tokens at opus prices: $0.18.
nectra usage now has a COST column and the same comparison over all your chats. It also counts model switches, handoff notes and /again retries. --baseline MODEL compares against another model.
nectra usage --direct adds the Claude Code and Codex sessions you ran without Nectra, with the cost per turn on each side. To compare for yourself, use Nectra for some of your work and the CLIs directly for the rest, then run nectra usage --days 14 --direct.
Costs are list prices for the same tokens. Plans don't bill per token, and they don't publish how much each model uses. Treat the numbers as a yardstick, not a bill.
What Nectra does on your machine
docs/trust.md lists what Nectra reads, writes and sends, and what each provider's terms say about tools like it. In short:
- Nectra runs each provider's own CLI under your login and never touches your credentials.
- Anthropic's consumer terms restrict scripted use of Pro and Max plans. Stream view and handoff notes use
claude -p. The page says how to avoid that.
Changes
- Gemini CLI uses stream view. Since 0.64, Gemini loads per-launch settings only from files an administrator owns, so Nectra can't add the hooks its terminal view needs.
nectra mcp --syncwrites each CLI's config itself. Each CLI's ownmcp addtakes environment values, often tokens, as command-line arguments, which other users on the machine can see. Nectra now writes each config file directly. It keeps the file's permissions and won't overwrite a file that changed during the sync.nectra usageworks while a chat is open. On Windows it used to fail. An open chat's own usage is left out, and the report says so.- The reference docs are accurate again about cooldowns (they persist across restarts), how the conversation is sent (sessions resume), and CI.
Chat logs written by 0.4.5 can't be opened by Nectra 0.4.4 or older.
For contributors
scripts/compat/schedule.ps1 runs the CLI compatibility check daily on a Windows PC, against the CLIs you actually use, and shows a notification if anything fails.
The macOS builds are still cross-compiled and haven't run on a real Mac yet. Please open an issue if anything breaks.
v0.4.4
macOS builds
Prebuilt for Apple silicon and Intel Macs. Install the same way as on Linux:
curl -fsSL https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.sh | shThese are cross-compiled and haven't yet been run on a real Mac. Please open an issue if anything breaks.
See why each answer went where it did
Every chat answer now starts with its model and the reason it was picked, for example:
sonnet (anthropic) · writing or explaining · preferred for this
When Nectra switches models mid-task, it tells you, because the new model starts without the old one's cached context.
/again
/againsends your last message again to the best other model: any model but the one that answered, judged on capability, ignoring a/modelpin./again opussends it to the model you name.- The replaced answer stays in the session log but leaves the conversation. Files it changed stay changed.
- If no other model can take the retry, nothing is replaced.
- After a failed turn,
/againresends the message as it was.
Session logs that use /again can't be opened by Nectra 0.4.3 or older.
For contributors
scripts/compat/check.py checks Nectra against the installed provider CLIs (flags, settings and MCP channels). With --live, it also runs one tiny turn per provider in stream and terminal view. A daily workflow runs it against the latest CLI releases.
v0.4.3
MCP servers follow your task between providers
Each provider CLI keeps its own list of MCP servers, so a tool you set up in Claude Code vanished when Nectra routed a turn to Codex. Now:
- Automatic for Claude and Codex. When Nectra launches either one, it adds the local (stdio) servers from your user configs that only the other CLIs have. No config file is changed, and env values are passed in the environment, never on the command line. Example: Codex can use a Roblox Studio server you added to Claude.
nectra mcpshows which CLI has each server and which ones Nectra shares.nectra mcp --syncadds the servers to each installed CLI's own config, Gemini included. Gemini 0.64 reads extra settings files only when an administrator owns them, so it can't be handed servers at launch.
Not shared:
- HTTP servers, because each CLI needs its own sign-in.
- Servers limited to certain tools.
- Servers tied to a working directory.
- Gemini servers whose env values Nectra can't reproduce exactly.
A server name a CLI already has is never replaced.
Fixes
- On Windows, Nectra can launch npm-installed Gemini CLI 0.64 again. Gemini moved its entry point, and Nectra now reads it from the package instead of a fixed path.
Known issue
- Gemini 0.64 ignores the settings file Nectra uses to install its terminal-view hooks, so Gemini turns in terminal view may not be captured. Stream view (
--provider-view stream) isn't affected.
v0.4.2
Built and packaged by hand, because GitHub Actions isn't running on this repository yet. There are no macOS builds; on macOS, build from source.
Install
Windows (PowerShell):
irm https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.ps1 | iexLinux:
curl -fsSL https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.sh | shWhat's in it
Found by driving real nectra chat sessions against Claude Code 2.1.302, Codex 0.162.1 and Gemini CLI 0.26.0:
- Provider prompts are no longer hidden. Folder-trust questions, sign-in screens and approval prompts used to sit behind a ticking "Working…" in the default view, so a new project could appear to hang forever. When a provider goes quiet mid-turn, Nectra now shows its screen with WAITING FOR YOU. Pressing F2 still switches back and forth, and a message you're typing stays in Nectra's queue.
- Codex works in the terminal view again. Codex 0.162 reports its own thread-title request as a finished turn, and Nectra was saving
{"title":…}as the answer before the real work ran. Only the reply to Nectra's own prompt counts now. - Startup errors are shown. A provider that exits before answering, for example because of a rejected setting, now shows its own error instead of "no completed answer was captured".
- New:
nectra skills. Claude Code, Codex and Gemini read skills from different folders, so a skill one of them has comes and goes as Nectra routes between them.nectra skillsshows which CLI sees each skill.nectra skills --linklinks your user skills between~/.claude/skillsand~/.agents/skillsso all three see them; it never replaces anything.
Assets
| File | Target |
|---|---|
nectra-x86_64-pc-windows-gnu.zip |
Windows x64 |
nectra-x86_64-unknown-linux-gnu.tar.gz |
Linux x64, glibc 2.17 or newer |
Each archive has a .sha256 file beside it, and the installers check it.
v0.4.1
Built and packaged by hand, because GitHub Actions isn't running on this repository yet. There are no macOS builds; on macOS, build from source.
Install
Windows (PowerShell):
irm https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.ps1 | iexLinux:
curl -fsSL https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.sh | shWhat's in it
Fixes from a daily-driver review of v0.4.0 by gpt-6-astra:
- First run sets you up. Starting a chat with no config runs
nectra setupinstead of quietly using defaults that assume providers you may not have. Any run on the built-in defaults says so. nectra -cpicks up the provider's own session, so a resumed chat keeps Claude's or Codex's tool context and prompt cache instead of replaying the transcript into a cold agent. A turn that was interrupted is never resumed into.- Handoff notes are read-only. When a task moves to another model, the outgoing agent writes its note with no tools at all (Claude) or in its read-only sandbox (Codex), whatever permissions it was working with.
- The Linux installer tells you when
~/.local/binisn't on your PATH and prints the line to add for bash, zsh or fish. - Saved chats are private on Linux and macOS (files 0600, folder 0700).
Assets
| File | Target |
|---|---|
nectra-x86_64-pc-windows-gnu.zip |
Windows x64 |
nectra-x86_64-unknown-linux-gnu.tar.gz |
Linux x64, glibc 2.17 or newer |
Each archive has a .sha256 file beside it, and the installers check it.
v0.4.0
Built and packaged by hand, because GitHub Actions isn't running on this repository yet. There are no macOS builds; on macOS, build from source.
Install
Windows (PowerShell):
irm https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.ps1 | iexLinux:
curl -fsSL https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.sh | shWhat's in it
- Balanced mode now tries the cheap coder first. Ordinary coding goes to your
simple-codingmodel (gpt-5.6-luna in the bundled registry). Demanding work still escalates. In scripted multi-turn coding chats, the new default cost 4–18% of an all-Opus run, with no checks lost (measurements). The previous default sent all coding to gpt-5.6-sol and cost about as much as Opus. - Demanding work with no
demandingmodel goes to your strongest model, never the cheap one. /modetakes effect right away, even in the middle of a task that would otherwise stay on its current model.- Codex sessions resume with sandbox flags. A
--sandboxin Codexextra_argsused to break every resumed turn. It's now translated forcodex exec resume. - Failed turns are recorded, including the provider session, so
nectra usagecounts them. - Usage-limit cooldowns: an exhausted plan with no stated retry time now cools down for an hour instead of a minute.
nectra usage --session FILEreports one chat.- Partial config files work. A
[routing]or[classifier]section with only some keys set takes defaults for the rest.
The savings numbers are token prices, not subscription quota. They come from one small fixture and 1–3 runs per configuration, so they show that no checks were lost, not that quality is unchanged.
Assets
| File | Target |
|---|---|
nectra-x86_64-pc-windows-gnu.zip |
Windows x64 |
nectra-x86_64-unknown-linux-gnu.tar.gz |
Linux x64, glibc 2.17 or newer |
Each archive has a .sha256 file beside it, and the installers check it.
Nectra 0.3.0
First release. Built and packaged by hand. GitHub Actions isn't running on this repository yet, so there are no macOS builds; on macOS, build from source.
Install
Windows (PowerShell):
irm https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.ps1 | iexLinux:
curl -fsSL https://raw.githubusercontent.com/MBarc/nectra/master/scripts/install.sh | shWhat's in it
- The same model picks up where it left off. Claude Code and Codex resume their own session when consecutive messages stay with them. Before this, every message started a cold agent and resent the transcript.
- Routing sticks to a task. A follow-up stays on the model already doing the work. When a task moves to another model, Nectra passes it a handoff note.
- Cheap prompts reach cheap models, with or without a TypeSafe key. Without one, short chit-chat now goes to your
simplemodel. - Code work never lands on a chat-only model while a model that can edit files is available, even under Ollama
prefer-local. nectra -ccontinues the latest chat you started in the current directory.nectra usageshows tokens per model, read from the providers' own logs.- Setup lists only the four providers that can answer: Claude Code, Codex, Gemini CLI and Ollama.
Assets
| File | Target |
|---|---|
nectra-x86_64-pc-windows-gnu.zip |
Windows x64 |
nectra-x86_64-unknown-linux-gnu.tar.gz |
Linux x64, glibc 2.17 or newer |
Each archive has a .sha256 file beside it, and the installers check it.