Noeza — Think. Build. Secure.
The Noeza AI coding agent for VS Code, by NT-R LTD. Free.
Noeza brings an autonomous coding agent into a VS Code side panel — it reads your project, plans work, proposes reviewed diffs, and runs commands in your own visible terminal, only with your approval. You bring your own model; Noeza brings the agent, the safety, and the transparency.
Two things make Noeza different:
- Every command runs in your terminal, in the open. When the agent builds, tests, or runs a tool, it does so in your real, visible terminal — the same one you use — so you see the exact command and its output as they happen, and can interrupt it. Not a replay of a hidden process: the terminal doing the work.
- You bring your own model. Noeza runs none of its own, and NT-R runs no model in the path. Connect a frontier provider under your own key, or any OpenAI-compatible endpoint you host — with one
/connect command. Your key and your code go to the model you chose; they never pass through NT-R.
Install
From the Marketplace, or from your terminal:
code --install-extension NT-R.noeza
That is the whole install, and it is the route that keeps itself up to date.
NT-R also self-hosts the same build. Those downloads are account-gated, so the
commands below need a free Noeza account: sign up at
https://noeza.ntr-kenya.org/sign-up, then copy the install command from
https://noeza.ntr-kenya.org/download — it carries your token. Without one,
both URLs answer 403.
It downloads one checksummed .vsix (NT-R does not yet code-sign its
artifacts; the integrity chain is the published SHA-256 plus TLS to
noeza.ntr-kenya.org), verifies it, and installs it with your own code CLI.
Requires a VS Code-family editor (VS Code 1.93+, VSCodium, Cursor) with the code command on your PATH.
First run
Press Ctrl/Cmd + Shift + A to open the Noeza panel (or click the Noeza icon in the Activity Bar).
Run Noeza: Sign In — free, once per machine. The agent is gated on it; an install that has signed in once keeps working offline afterwards.
Connect a model you already trust:
/connect qwen <api-key>
/connect <base-url> <model> [api-key]
/connect qwen uses Alibaba's monthly Token Plan endpoint with
qwen3.8-max. Coding Plan and workspace/pay-as-you-go Qwen keys must include
the base URL issued for that product. You can also connect any other
OpenAI-compatible endpoint — a frontier provider under your own key, or a
self-hosted one (vLLM, llama.cpp, LM Studio). Your API key is stored in the
editor's secret storage, never in a settings file, and is only ever sent to
the endpoint you set. /connect off disconnects and clears it.
Keys are stored one per provider in the OS keychain, so connecting to a
second provider never overwrites the first — switch back and forth without
re-pasting. /keys lists what is held and where each key came from.
To keep a key across reinstalls, set it in your shell profile. The
environment lives outside Noeza's install directory and profile, so an
upgrade cannot lose it:
export NOEZA_QWEN_API_KEY="sk-ws-..."
export NOEZA_OPENAI_API_KEY="sk-..."
export NOEZA_ANTHROPIC_API_KEY="sk-ant-..."
Noeza reads its own NOEZA_* variables rather than a provider's conventional
name (OPENAI_API_KEY): adopting a variable you set for something else would
send that credential to whatever endpoint Noeza happened to be pointed at. A
key in the keychain wins over one in the environment.
A key is only ever sent to the provider it was stored for. Two consequences
worth knowing:
- A local runtime never receives a key. Ollama and similar ignore the
value, so there is nothing to gain and a credential to lose.
- A self-hosted or unlisted endpoint keeps its key per host, set with
/connect <url> <model> <key>, and is never filled in from the
environment — nothing about such a URL can be verified, so the key has to
be one you typed for that exact endpoint.
Ask for something: /plan add rate limiting to the login route.
Two Noeza products, one free plan
They are independent — neither needs the other, both free:
|
|
| Noeza Extension (this) |
Adds the Noeza agent to the VS Code you already use. Your extensions, keybindings, and settings stay exactly as they are. |
| Noeza Editor |
A standalone desktop editor with the agent built into the application. Does not require VS Code or this extension. Signed installers in progress. |
See https://noeza.ntr-kenya.org/docs.
What that means for your code
The editor runs on your machine: editing, indexing, permissions, and the audit log all stay on-device. NT-R runs no model, so an agent request's code and context go only to the model you connect, under that destination's policy — never to NT-R. Point Noeza at a self-hosted or local endpoint and an agent request stays on your own machine too. NT-R never receives, stores, or proxies the API key you configure.
Commands
Type / in the panel for autocomplete. Highlights:
| Command |
What it does |
/connect <url> <model> [key] |
Connect any OpenAI-compatible model endpoint (/connect off to disconnect) |
/help |
List all commands |
/init |
Detect the stack and scaffold NOEZA.md + .noeza/ |
/plan <goal> |
Make an implementation plan before editing |
/goal <duration> [every <duration>] <objective> |
Persist and retry a verified objective across bounded attempts (/goal status, pause, resume, run, cancel) |
/edit <instruction> |
Edit the current file/selection with a reviewed diff |
/debug |
Structured debug loop (read → locate → patch → verify) |
/test |
Run the project's tests and repair failures |
/review |
Review the current git diff for bugs & quality |
/security-review |
Risk-ranked security findings on changed code |
/threatmodel · /harden · /secrets · /audit |
Security suite: threat model, hardening, secret scan, dependency audit |
/compact |
Summarize the session to free context |
/keys |
Which provider keys are stored, and where each came from |
/context · /status |
Inspect loaded context / connection |
/permissions [mode] |
Show or switch permission mode |
You can also right-click a selection → Noeza: Explain / Edit Selection, or press Ctrl/Cmd+Shift+A to focus the panel.
Permission modes (security-first)
| Mode |
Behavior |
readonly |
Inspect & explain only — never writes or runs commands |
ask |
(default) Approve every file write and terminal command |
auto-edit |
Auto-write files, but still ask before running commands |
auto-all |
Act freely — but high-risk commands still ask (use in a trusted sandbox) |
A command line is read command by command, so ordinary chains — pwd && ls, a project's own test run piped through tail — go ahead in auto-all, while commands that can do lasting damage (rm -rf, git push, curl | sh, sudo, …) still ask. On any approval, Allow until done approves the rest of the current task in one click; it ends with the task, on Stop, or with a new session. Some things are refused in every mode: reading your SSH keys or cloud credentials, and commands like rm -rf ~. Every command runs in your visible terminal regardless of mode — you always see what ran.
How execution works
When the agent runs a command, Noeza runs it in the editor's real integrated terminal and reads its output and exit code from there — the same terminal you type into. There is no hidden subprocess: if shell integration is available it captures output directly; if not, the command still runs visibly (piped through tee) so you watch it live. A timeout or your stop sends the same Ctrl+C you would.
Seeing every change
Every file the agent changes appears on one Noeza Changes page in the editor:
each file once, from what it held before Noeza first touched it this session to
the file as it is now. It opens by itself on the first change of a task and then
updates as the work goes on — edits made by commands (formatters, codemods,
generators) included. The Show Changes button in the Noeza panel's title bar
reopens it. A change that is waiting for your approval opens on its own in the
side-by-side diff view, so you can read it before you decide.
Long-running work
/goal keeps a longer objective going across bounded attempts. For example, /goal 2h every 10m make the build pass starts now, saves progress to workspace state, and schedules another bounded attempt when verification says work remains. Goals resume when the workspace and Noeza panel reopen; a verified result completes them, a real blocker pauses them, and their deadline expires them.
Security & robustness built in:
- Prompt-injection defense — all repo-derived content (file reads, search results, git diffs, selections) is wrapped as untrusted data so a hostile repo can't hijack the agent.
- Undoable edits — writes apply through VS Code
WorkspaceEdit, so every change is visible in the editor and reversible with Ctrl/Cmd+Z.
- Visible execution — commands run in your real terminal; nothing runs where you can't see it.
- Context budgeting — conversation is trimmed to a token budget;
/compact summarizes and resets. Auto-compaction preserves long-running work at the next safe turn boundary after 60 minutes (and whenever context nears its limit), without interrupting a tool call.
- Audit + redaction — actions logged to
.noeza/audit/; secrets redacted from context and logs; .env/key files refused.
License & attribution
© 2026 NT-R LTD. Noeza is proprietary, licensed under the Noeza Commercial Licence (see LICENSE).