The most powerful TUI AI Coding Agent — surpasses Claude Code & OpenCode with NVIDIA NIM, multi-key rotation, KIMI K2.6 & DeepSeek V4 Pro support
Project description
NovaCode ⚡
The most powerful TUI AI Coding Agent — surpasses Claude Code and OpenCode.
╔══════════════════════════════════════════╗
║ NovaCode — AI Coding Agent ║
║ More powerful than Claude Code ✨ ║
╚══════════════════════════════════════════╝
✨ What makes NovaCode special?
| Feature | NovaCode | Claude Code | OpenCode |
|---|---|---|---|
| Multi-key rotation | ✅ Auto-failover | ❌ | ❌ |
| NVIDIA NIM | ✅ Native | ❌ | ❌ |
| KIMI K2.6 via NIM | ✅ No separate key | ❌ | ❌ |
| DeepSeek V4 Pro streaming | ✅ True SSE streaming | ❌ | ❌ |
| Agentic tool loop | ✅ Parallel execution | ✅ Sequential | ✅ Sequential |
| Web search | ✅ Built-in | ❌ | ❌ |
| Context windowing | ✅ Smart | ✅ | ✅ |
| Plan/Build modes | ✅ | ✅ | ✅ |
| File tree sidebar | ✅ Coming | ❌ | ❌ |
| Token tracking | ✅ Real-time | ✅ | ❌ |
🚀 Quick Start
Install via pip (recommended)
pip install novacode-tui
Install via npm
npm install -g novacode-tui
# npm wrapper will detect Python and prompt to install the Python package
Install from source
git clone https://github.com/novacode-ai/novacode.git
cd novacode
pip install -e .
# Or via npm:
npm link ./npm
🔑 Configuration
1. Add NVIDIA NIM API Keys
Get free NIM keys from build.nvidia.com:
novacode keys add
# Paste your NVIDIA NIM API key
# Add multiple keys for auto-rotation:
novacode keys add
novacode keys add
2. Add NIM API keys (same keys used for all models, including KIMI K2.6)
# Add as many keys as you want — NovaCode auto-rotates
novacode keys add
# Paste your NVIDIA NIM API key
3. List configured keys
novacode keys list
🎮 Usage
# Launch the TUI (interactive chat)
novacode
# Use a specific model
novacode --model moonshotai/kimi-k2.6
novacode --model deepseek/deepseek-v4-pro
# Send a one-off message (non-TUI)
novacode chat "refactor this code to use async/await"
# List available models
novacode models
# Edit configuration
novacode config
TUI Keyboard Shortcuts
| Key | Action |
|---|---|
Ctrl+C |
Quit |
Ctrl+L |
Clear chat |
Ctrl+N |
New session |
Ctrl+S |
Focus input |
Ctrl+A |
Toggle auto-approve |
Esc |
Focus input |
🤖 Supported Models
| Model ID | Description |
|---|---|
nvidia/llama-3.3-nemotron-super-49b |
NVIDIA's best — speed + quality |
moonshotai/kimi-k2.6 |
KIMI K2.6 thinking model (served via NVIDIA NIM) |
deepseek/deepseek-v4-pro |
DeepSeek V4 Pro with true reasoning streaming |
nvidia/llama-3.1-8b-instruct |
Fast, lightweight |
Model-specific behavior
- KIMI K2.6: Served via NVIDIA NIM (uses the same NIM keys). Thinking mode requires
temperature=1.0, non-thinking requires0.6. Notool_choice: "required". - DeepSeek V4 Pro: Uses
reasoning_contentfield for CoT streaming (no chunked dump). Can disable thinking via config.
🛠 Agentic Capabilities
NovaCode includes a powerful suite of tools:
| Tool | Description | Auto-confirm |
|---|---|---|
read |
Read file contents with line offsets | ✅ |
write |
Write content to files | ❌ |
edit |
Targeted find-and-replace edits | ❌ |
search |
Regex codebase search | ✅ |
bash |
Execute shell commands | ❌ |
list_dir |
List directory contents | ✅ |
glob |
Find files by glob pattern | ✅ |
file_info |
Get file metadata | ✅ |
web_search |
Search the web | ✅ |
🔄 Multi-Key Rotation
NovaCode's key rotation system automatically:
- Round-robins through available NIM keys
- Detects 429 rate limits and moves to the next key
- Cooldowns rate-limited keys for configurable intervals
- Resets expired cooldowns automatically
- Tracks usage per key (uses least-used strategy when configured)
# Configure strategy
novacode config # Edit rotation_strategy: "round-robin" or "least-used"
🧠 Architecture
novacode/
├── __main__.py # CLI entry point (click)
├── config.py # JSON config, multi-key, multi-model
├── client/
│ ├── nim.py # NVIDIA NIM + OpenAI-compatible client
│ └── rotation.py # Multi-key rotation engine
├── agent/
│ ├── engine.py # Tool execution loop
│ ├── tools.py # Tool definitions (9 built-in tools)
│ └── context.py # Token-aware context windowing
├── ui/
│ └── app.py # Textual TUI application
├── models/
│ └── ... # Model definitions & configs
└── utils/
└── helpers.py # Utility functions
📦 Development
git clone https://github.com/novacode-ai/novacode.git
cd novacode
pip install -e ".[dev]"
# Run tests
pytest
# Type check
mypy src/novacode
# Lint
ruff check src/novacode
🌟 Roadmap
- LSP integration for context-aware code understanding
- Multi-session management
- Custom tool creation DSL
- Project-level memory & patterns
- VSCode / JetBrains extension
- Local model support (Ollama, llama.cpp)
- Collaborative sessions
📄 License
MIT License — see LICENSE
NovaCode — Because your code deserves the best agent.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file novacode_tui-0.1.9.tar.gz.
File metadata
- Download URL: novacode_tui-0.1.9.tar.gz
- Upload date:
- Size: 31.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdd5c35f78304557c5e7f9c2b3abe881371ba5b1475481ffd8b3f429539aad94
|
|
| MD5 |
d628b23f60950c6bdefd26340cae8375
|
|
| BLAKE2b-256 |
933ab939e0b1f027f8b1ad7b756449d410fe75b0d8b23eb4bdfa1b7b4d463ac7
|
File details
Details for the file novacode_tui-0.1.9-py3-none-any.whl.
File metadata
- Download URL: novacode_tui-0.1.9-py3-none-any.whl
- Upload date:
- Size: 34.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea6b8bd572004b9e412470ad76ac0c6686ef76a81c116896227f038676330449
|
|
| MD5 |
c107ca17c22766a3f5e7afa6d5d373bd
|
|
| BLAKE2b-256 |
be6571af80a11e7da91d622d2666b45ea61e7b475f6daad14db5e6e7dcd6808c
|