Noah Code
Noah Code (noah-code) is a terminal coding agent for understanding repositories, planning
changes, editing files, running commands, and carrying work across persistent sessions. It is
built on the NVIDIA OO Agents (NOOA) runtime.
Install
Install Noah Code and its managed Python runtime with one command. No existing Python, Homebrew, or system package setup is required.
curl -LsSf https://raw.githubusercontent.com/skundu42/noah-code/main/install.sh | sh
Open a new terminal, move into a repository, and run:
noah .
Noah Code supports macOS on Apple Silicon and Intel, plus Linux on arm64 and x86_64 with Landlock and seccomp support. You also need an LLM provider account such as OpenAI, Anthropic, OpenRouter or NVIDIA.
Features
- Read files, search with ripgrep, and inspect Git status, diffs, and history.
- Navigate definitions, implementations, references, symbols, hover types, and diagnostics through lazily launched language servers plus an mtime-cached repository map.
- Edit files with anchored replacements or atomic multi-file patches with exact preimages, rollback, immediate diagnostics, and concurrent-change detection.
- Run permission-gated shell commands with timeouts and streamed output, or own long-running servers and watchers as bounded background jobs with cursor-based logs.
- Follow repository instructions from
AGENTS.md,CLAUDE.md, and.noah-code/instructions.md. - Switch between implementation-focused build mode and read-only plan mode.
- Approve actions once or for a session with ordered
allow,ask, anddenyrules. - Undo and redo journaled file edits across process restarts.
- Work in an adaptive Atom One Dark cockpit, a classic console, or one-shot non-interactive mode.
- Type
/for a live-filtering command and configuration reference; press Enter to send. - Follow batched live tool output, then inspect compact execution records with
F2. - Review
/diffin a keyboard-driven staged/worktree ledger with per-file patches, line deltas, validation state, changed symbols, explicit revert, and checkpoint undo. - Resume workspace-scoped sessions with todos and automatic context compaction.
- Keep full oversized tool results privately while sending the model a focused, reopenable preview.
- Inspect token, prompt-cache, model-wait, and tool-output usage with
/tokens; switch livefast,balanced, anddeepbudgets with/efficiency. - Switch AI models between turns, with optional cross-repository defaults.
- Extend workflows with slash commands, opt-in skills, MCP servers, model selection, and tracing.
Quick start
Start the TUI in the current repository and describe the desired end state in plain language:
noah .
Find the cause of the failing parser tests, implement the smallest safe fix, and run the
focused test file.
Common commands:
# Open another workspace
noah /path/to/repository
# Use the line-oriented console
noah --console .
# Run one task and exit
noah run "Explain how authentication is wired" .
# Allow actions that would normally ask; explicit deny rules still apply
noah run --auto "Fix the failing unit test" .
# Inspect and plan without editing
noah --mode plan .
# Resume work
noah --continue .
noah --session SESSION_ID .
Check the installation or inspect resolved configuration with:
noah --version
noah doctor .
noah config show .
noah update --check
noah benchmark .
Bring your own API key from inside the TUI by entering /model: choose the provider, paste the
key into the masked field, choose the model, then select its reasoning effort. Noah saves the key to the operating system's
credential store when one is available; otherwise it remains available only to that Noah process.
API-key values are never written to Noah config, repository, or session files.
Environment variables and the CLI remain available for scripts and headless use:
export OPENAI_API_KEY="..." # or ANTHROPIC_API_KEY / OPENROUTER_API_KEY
noah providers list
noah providers add openai --model MODEL_NAME
noah .
For reasoning models, choose default, none, minimal, low, medium, high, or xhigh.
Provider and model support varies; default omits the parameter. You can set it in the guided
/model flow, switch it live with /reasoning high, or launch with:
uv run noah --model openai/MODEL --reasoning-effort high .
Custom OpenAI-compatible gateways, vLLM, LM Studio, Ollama, Azure OpenAI, Bedrock, Gemini, Groq, Mistral, xAI, DeepSeek, Together AI, and Perplexity are also supported. See the provider configuration guide.
The package also installs noah-code and nc as equivalent entry points. Because nc commonly
refers to netcat, noah or noah-code is recommended. Keep provider API keys in the OS
credential store or environment, never in a repository or Noah Code session metadata.
Inside a session, bare /model opens guided provider, API-key, model, and reasoning setup. /model MODEL
switches the active model immediately and remembers it when that session is resumed. It does not
change other sessions. Use /model --global MODEL when the new model should also become the
default for future sessions in every repository.
The TUI keeps the conversation central and adds a session-and-plan rail on terminals at least
110 columns wide. Tool output streams in a bounded activity panel and compacts after completion,
keeping long runs responsive without deleting persisted session data. Press F2 for activity
details or F3 for paginated conversation history.
The default fast profile uses compact NOOA trajectory rendering, bounded tool results, batched
repository inspection, cache-friendly turn-boundary context refresh, and lazy MCP connections. A
configured lightweight_model handles coding-session compaction; deterministic titles avoid an
otherwise unnecessary model request. Run noah benchmark . for the deterministic offline fixture
and /tokens for real provider-reported usage in the current run.
Documentation
- Interactive interface and sessions
- Configuration, modes, permissions, and updates
- Generated-code security
- Custom commands, skills, MCP, and tracing
- Development, CI, and releases
- Release notes
Updates
Noah Code checks PyPI for new versions at most once every 24 hours and updates uv-managed installations automatically. To check or update immediately:
noah update --check
noah update
Development
uv sync --extra dev --extra mcp --extra tracing
uv run ruff check src tests
uv run pytest tests
uv build
See the development guide for platform checks and the release process.
License
Apache-2.0, as declared in the project metadata. NOOA remains separately licensed by its upstream project.
Credits
Built on NVIDIA OO Agents (NOOA). Thanks to the NVIDIA NeMo team and NOOA contributors for the agent runtime that powers Noah Code.
Release files for noah-code 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| noah_code-0.2.0.tar.gz | 224.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| noah_code-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 342.3 kB
Release files / noah_code-0.2.0.tar.gz
| Download URL | noah_code-0.2.0.tar.gz |
|---|---|
| Size | 224.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6fbaa39542e40104787fb9ec93a2a34fee0933aed483a8875b0fd1528d914f71
|
|
BLAKE2b-256 checksum How to use checksums |
45452269876869da6f1c94f138aba987237a94e2adb63b5518b83dd39eaf1319
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / noah_code-0.2.0-py3-none-any.whl
| Download URL | noah_code-0.2.0-py3-none-any.whl |
|---|---|
| Size | 118.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bf3da00c526c299e58d5de594e4d6e1af9cd8a9d3c6b9b33b69af85c720017e
|
|
BLAKE2b-256 checksum How to use checksums |
2ff1b9815c7e365545143413c0b5492a258a76ea85e826d69e57fd2d8b37561a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency log