novacode-tui 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 NovaCode
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,253 @@
1
+ Metadata-Version: 2.4
2
+ Name: novacode-tui
3
+ Version: 0.1.0
4
+ Summary: The most powerful TUI AI Coding Agent — surpasses Claude Code & OpenCode with NVIDIA NIM, multi-key rotation, KIMI K2.6 & DeepSeek V4 Pro support
5
+ Author: NovaCode Team
6
+ License: MIT
7
+ Keywords: ai,coding,agent,tui,nvidia-nim,claude-code-alternative
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Environment :: Console
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Software Development :: Code Generators
17
+ Classifier: Topic :: Software Development :: Debuggers
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: textual>=1.0.0
22
+ Requires-Dist: httpx>=0.27.0
23
+ Requires-Dist: httpx-sse>=0.4.0
24
+ Requires-Dist: rich>=13.7.0
25
+ Requires-Dist: pyyaml>=6.0
26
+ Requires-Dist: click>=8.1.0
27
+ Requires-Dist: pathspec>=0.12.0
28
+ Requires-Dist: platformdirs>=4.0.0
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=7.0; extra == "dev"
31
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
32
+ Requires-Dist: mypy>=1.0; extra == "dev"
33
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # NovaCode ⚡
37
+
38
+ **The most powerful TUI AI Coding Agent — surpasses Claude Code and OpenCode.**
39
+
40
+ [![pip install](https://img.shields.io/badge/pip-install%20novacode--tui-blue)](https://pypi.org/project/novacode-tui/)
41
+ [![npm install](https://img.shields.io/badge/npm-install%20novacode--tui-red)](https://www.npmjs.com/package/novacode-tui)
42
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-green)](https://python.org)
43
+ [![MIT License](https://img.shields.io/badge/license-MIT-purple)](LICENSE)
44
+
45
+ ```
46
+ ╔══════════════════════════════════════════╗
47
+ ║ NovaCode — AI Coding Agent ║
48
+ ║ More powerful than Claude Code ✨ ║
49
+ ╚══════════════════════════════════════════╝
50
+ ```
51
+
52
+ ---
53
+
54
+ ## ✨ What makes NovaCode special?
55
+
56
+ | Feature | NovaCode | Claude Code | OpenCode |
57
+ |---------|----------|-------------|----------|
58
+ | **Multi-key rotation** | ✅ Auto-failover | ❌ | ❌ |
59
+ | **NVIDIA NIM** | ✅ Native | ❌ | ❌ |
60
+ | **KIMI K2.6 via NIM** | ✅ No separate key | ❌ | ❌ |
61
+ | **DeepSeek V4 Pro streaming** | ✅ True SSE streaming | ❌ | ❌ |
62
+ | **Agentic tool loop** | ✅ Parallel execution | ✅ Sequential | ✅ Sequential |
63
+ | **Web search** | ✅ Built-in | ❌ | ❌ |
64
+ | **Context windowing** | ✅ Smart | ✅ | ✅ |
65
+ | **Plan/Build modes** | ✅ | ✅ | ✅ |
66
+ | **File tree sidebar** | ✅ Coming | ❌ | ❌ |
67
+ | **Token tracking** | ✅ Real-time | ✅ | ❌ |
68
+
69
+ ## 🚀 Quick Start
70
+
71
+ ### Install via pip (recommended)
72
+
73
+ ```bash
74
+ pip install novacode-tui
75
+ ```
76
+
77
+ ### Install via npm
78
+
79
+ ```bash
80
+ npm install -g novacode-tui
81
+ # npm wrapper will detect Python and prompt to install the Python package
82
+ ```
83
+
84
+ ### Install from source
85
+
86
+ ```bash
87
+ git clone https://github.com/novacode-ai/novacode.git
88
+ cd novacode
89
+ pip install -e .
90
+ # Or via npm:
91
+ npm link ./npm
92
+ ```
93
+
94
+ ## 🔑 Configuration
95
+
96
+ ### 1. Add NVIDIA NIM API Keys
97
+
98
+ Get free NIM keys from [build.nvidia.com](https://build.nvidia.com/):
99
+
100
+ ```bash
101
+ novacode keys add
102
+ # Paste your NVIDIA NIM API key
103
+
104
+ # Add multiple keys for auto-rotation:
105
+ novacode keys add
106
+ novacode keys add
107
+ ```
108
+
109
+ ### 2. Add NIM API keys (same keys used for all models, including KIMI K2.6)
110
+
111
+ ```bash
112
+ # Add as many keys as you want — NovaCode auto-rotates
113
+ novacode keys add
114
+ # Paste your NVIDIA NIM API key
115
+ ```
116
+
117
+ ### 3. List configured keys
118
+
119
+ ```bash
120
+ novacode keys list
121
+ ```
122
+
123
+ ## 🎮 Usage
124
+
125
+ ```bash
126
+ # Launch the TUI (interactive chat)
127
+ novacode
128
+
129
+ # Use a specific model
130
+ novacode --model moonshotai/kimi-k2.6
131
+ novacode --model deepseek/deepseek-v4-pro
132
+
133
+ # Send a one-off message (non-TUI)
134
+ novacode chat "refactor this code to use async/await"
135
+
136
+ # List available models
137
+ novacode models
138
+
139
+ # Edit configuration
140
+ novacode config
141
+ ```
142
+
143
+ ### TUI Keyboard Shortcuts
144
+
145
+ | Key | Action |
146
+ |-----|--------|
147
+ | `Ctrl+C` | Quit |
148
+ | `Ctrl+L` | Clear chat |
149
+ | `Ctrl+N` | New session |
150
+ | `Ctrl+S` | Focus input |
151
+ | `Ctrl+A` | Toggle auto-approve |
152
+ | `Esc` | Focus input |
153
+
154
+ ## 🤖 Supported Models
155
+
156
+ | Model ID | Description |
157
+ |----------|-------------|
158
+ | `nvidia/llama-3.3-nemotron-super-49b` | NVIDIA's best — speed + quality |
159
+ | `moonshotai/kimi-k2.6` | KIMI K2.6 thinking model (served via NVIDIA NIM) |
160
+ | `deepseek/deepseek-v4-pro` | DeepSeek V4 Pro with true reasoning streaming |
161
+ | `nvidia/llama-3.1-8b-instruct` | Fast, lightweight |
162
+
163
+ ### Model-specific behavior
164
+
165
+ - **KIMI K2.6**: Served via NVIDIA NIM (uses the same NIM keys). Thinking mode requires `temperature=1.0`, non-thinking requires `0.6`. No `tool_choice: "required"`.
166
+ - **DeepSeek V4 Pro**: Uses `reasoning_content` field for CoT streaming (no chunked dump). Can disable thinking via config.
167
+
168
+ ## 🛠 Agentic Capabilities
169
+
170
+ NovaCode includes a powerful suite of tools:
171
+
172
+ | Tool | Description | Auto-confirm |
173
+ |------|-------------|:---:|
174
+ | `read` | Read file contents with line offsets | ✅ |
175
+ | `write` | Write content to files | ❌ |
176
+ | `edit` | Targeted find-and-replace edits | ❌ |
177
+ | `search` | Regex codebase search | ✅ |
178
+ | `bash` | Execute shell commands | ❌ |
179
+ | `list_dir` | List directory contents | ✅ |
180
+ | `glob` | Find files by glob pattern | ✅ |
181
+ | `file_info` | Get file metadata | ✅ |
182
+ | `web_search` | Search the web | ✅ |
183
+
184
+ ## 🔄 Multi-Key Rotation
185
+
186
+ NovaCode's key rotation system automatically:
187
+
188
+ - **Round-robins** through available NIM keys
189
+ - **Detects 429 rate limits** and moves to the next key
190
+ - **Cooldowns** rate-limited keys for configurable intervals
191
+ - **Resets** expired cooldowns automatically
192
+ - **Tracks usage** per key (uses least-used strategy when configured)
193
+
194
+ ```bash
195
+ # Configure strategy
196
+ novacode config # Edit rotation_strategy: "round-robin" or "least-used"
197
+ ```
198
+
199
+ ## 🧠 Architecture
200
+
201
+ ```
202
+ novacode/
203
+ ├── __main__.py # CLI entry point (click)
204
+ ├── config.py # JSON config, multi-key, multi-model
205
+ ├── client/
206
+ │ ├── nim.py # NVIDIA NIM + OpenAI-compatible client
207
+ │ └── rotation.py # Multi-key rotation engine
208
+ ├── agent/
209
+ │ ├── engine.py # Tool execution loop
210
+ │ ├── tools.py # Tool definitions (9 built-in tools)
211
+ │ └── context.py # Token-aware context windowing
212
+ ├── ui/
213
+ │ └── app.py # Textual TUI application
214
+ ├── models/
215
+ │ └── ... # Model definitions & configs
216
+ └── utils/
217
+ └── helpers.py # Utility functions
218
+ ```
219
+
220
+ ## 📦 Development
221
+
222
+ ```bash
223
+ git clone https://github.com/novacode-ai/novacode.git
224
+ cd novacode
225
+ pip install -e ".[dev]"
226
+
227
+ # Run tests
228
+ pytest
229
+
230
+ # Type check
231
+ mypy src/novacode
232
+
233
+ # Lint
234
+ ruff check src/novacode
235
+ ```
236
+
237
+ ## 🌟 Roadmap
238
+
239
+ - [ ] LSP integration for context-aware code understanding
240
+ - [ ] Multi-session management
241
+ - [ ] Custom tool creation DSL
242
+ - [ ] Project-level memory & patterns
243
+ - [ ] VSCode / JetBrains extension
244
+ - [ ] Local model support (Ollama, llama.cpp)
245
+ - [ ] Collaborative sessions
246
+
247
+ ## 📄 License
248
+
249
+ MIT License — see [LICENSE](LICENSE)
250
+
251
+ ---
252
+
253
+ > **NovaCode** — Because your code deserves the best agent.
@@ -0,0 +1,218 @@
1
+ # NovaCode ⚡
2
+
3
+ **The most powerful TUI AI Coding Agent — surpasses Claude Code and OpenCode.**
4
+
5
+ [![pip install](https://img.shields.io/badge/pip-install%20novacode--tui-blue)](https://pypi.org/project/novacode-tui/)
6
+ [![npm install](https://img.shields.io/badge/npm-install%20novacode--tui-red)](https://www.npmjs.com/package/novacode-tui)
7
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-green)](https://python.org)
8
+ [![MIT License](https://img.shields.io/badge/license-MIT-purple)](LICENSE)
9
+
10
+ ```
11
+ ╔══════════════════════════════════════════╗
12
+ ║ NovaCode — AI Coding Agent ║
13
+ ║ More powerful than Claude Code ✨ ║
14
+ ╚══════════════════════════════════════════╝
15
+ ```
16
+
17
+ ---
18
+
19
+ ## ✨ What makes NovaCode special?
20
+
21
+ | Feature | NovaCode | Claude Code | OpenCode |
22
+ |---------|----------|-------------|----------|
23
+ | **Multi-key rotation** | ✅ Auto-failover | ❌ | ❌ |
24
+ | **NVIDIA NIM** | ✅ Native | ❌ | ❌ |
25
+ | **KIMI K2.6 via NIM** | ✅ No separate key | ❌ | ❌ |
26
+ | **DeepSeek V4 Pro streaming** | ✅ True SSE streaming | ❌ | ❌ |
27
+ | **Agentic tool loop** | ✅ Parallel execution | ✅ Sequential | ✅ Sequential |
28
+ | **Web search** | ✅ Built-in | ❌ | ❌ |
29
+ | **Context windowing** | ✅ Smart | ✅ | ✅ |
30
+ | **Plan/Build modes** | ✅ | ✅ | ✅ |
31
+ | **File tree sidebar** | ✅ Coming | ❌ | ❌ |
32
+ | **Token tracking** | ✅ Real-time | ✅ | ❌ |
33
+
34
+ ## 🚀 Quick Start
35
+
36
+ ### Install via pip (recommended)
37
+
38
+ ```bash
39
+ pip install novacode-tui
40
+ ```
41
+
42
+ ### Install via npm
43
+
44
+ ```bash
45
+ npm install -g novacode-tui
46
+ # npm wrapper will detect Python and prompt to install the Python package
47
+ ```
48
+
49
+ ### Install from source
50
+
51
+ ```bash
52
+ git clone https://github.com/novacode-ai/novacode.git
53
+ cd novacode
54
+ pip install -e .
55
+ # Or via npm:
56
+ npm link ./npm
57
+ ```
58
+
59
+ ## 🔑 Configuration
60
+
61
+ ### 1. Add NVIDIA NIM API Keys
62
+
63
+ Get free NIM keys from [build.nvidia.com](https://build.nvidia.com/):
64
+
65
+ ```bash
66
+ novacode keys add
67
+ # Paste your NVIDIA NIM API key
68
+
69
+ # Add multiple keys for auto-rotation:
70
+ novacode keys add
71
+ novacode keys add
72
+ ```
73
+
74
+ ### 2. Add NIM API keys (same keys used for all models, including KIMI K2.6)
75
+
76
+ ```bash
77
+ # Add as many keys as you want — NovaCode auto-rotates
78
+ novacode keys add
79
+ # Paste your NVIDIA NIM API key
80
+ ```
81
+
82
+ ### 3. List configured keys
83
+
84
+ ```bash
85
+ novacode keys list
86
+ ```
87
+
88
+ ## 🎮 Usage
89
+
90
+ ```bash
91
+ # Launch the TUI (interactive chat)
92
+ novacode
93
+
94
+ # Use a specific model
95
+ novacode --model moonshotai/kimi-k2.6
96
+ novacode --model deepseek/deepseek-v4-pro
97
+
98
+ # Send a one-off message (non-TUI)
99
+ novacode chat "refactor this code to use async/await"
100
+
101
+ # List available models
102
+ novacode models
103
+
104
+ # Edit configuration
105
+ novacode config
106
+ ```
107
+
108
+ ### TUI Keyboard Shortcuts
109
+
110
+ | Key | Action |
111
+ |-----|--------|
112
+ | `Ctrl+C` | Quit |
113
+ | `Ctrl+L` | Clear chat |
114
+ | `Ctrl+N` | New session |
115
+ | `Ctrl+S` | Focus input |
116
+ | `Ctrl+A` | Toggle auto-approve |
117
+ | `Esc` | Focus input |
118
+
119
+ ## 🤖 Supported Models
120
+
121
+ | Model ID | Description |
122
+ |----------|-------------|
123
+ | `nvidia/llama-3.3-nemotron-super-49b` | NVIDIA's best — speed + quality |
124
+ | `moonshotai/kimi-k2.6` | KIMI K2.6 thinking model (served via NVIDIA NIM) |
125
+ | `deepseek/deepseek-v4-pro` | DeepSeek V4 Pro with true reasoning streaming |
126
+ | `nvidia/llama-3.1-8b-instruct` | Fast, lightweight |
127
+
128
+ ### Model-specific behavior
129
+
130
+ - **KIMI K2.6**: Served via NVIDIA NIM (uses the same NIM keys). Thinking mode requires `temperature=1.0`, non-thinking requires `0.6`. No `tool_choice: "required"`.
131
+ - **DeepSeek V4 Pro**: Uses `reasoning_content` field for CoT streaming (no chunked dump). Can disable thinking via config.
132
+
133
+ ## 🛠 Agentic Capabilities
134
+
135
+ NovaCode includes a powerful suite of tools:
136
+
137
+ | Tool | Description | Auto-confirm |
138
+ |------|-------------|:---:|
139
+ | `read` | Read file contents with line offsets | ✅ |
140
+ | `write` | Write content to files | ❌ |
141
+ | `edit` | Targeted find-and-replace edits | ❌ |
142
+ | `search` | Regex codebase search | ✅ |
143
+ | `bash` | Execute shell commands | ❌ |
144
+ | `list_dir` | List directory contents | ✅ |
145
+ | `glob` | Find files by glob pattern | ✅ |
146
+ | `file_info` | Get file metadata | ✅ |
147
+ | `web_search` | Search the web | ✅ |
148
+
149
+ ## 🔄 Multi-Key Rotation
150
+
151
+ NovaCode's key rotation system automatically:
152
+
153
+ - **Round-robins** through available NIM keys
154
+ - **Detects 429 rate limits** and moves to the next key
155
+ - **Cooldowns** rate-limited keys for configurable intervals
156
+ - **Resets** expired cooldowns automatically
157
+ - **Tracks usage** per key (uses least-used strategy when configured)
158
+
159
+ ```bash
160
+ # Configure strategy
161
+ novacode config # Edit rotation_strategy: "round-robin" or "least-used"
162
+ ```
163
+
164
+ ## 🧠 Architecture
165
+
166
+ ```
167
+ novacode/
168
+ ├── __main__.py # CLI entry point (click)
169
+ ├── config.py # JSON config, multi-key, multi-model
170
+ ├── client/
171
+ │ ├── nim.py # NVIDIA NIM + OpenAI-compatible client
172
+ │ └── rotation.py # Multi-key rotation engine
173
+ ├── agent/
174
+ │ ├── engine.py # Tool execution loop
175
+ │ ├── tools.py # Tool definitions (9 built-in tools)
176
+ │ └── context.py # Token-aware context windowing
177
+ ├── ui/
178
+ │ └── app.py # Textual TUI application
179
+ ├── models/
180
+ │ └── ... # Model definitions & configs
181
+ └── utils/
182
+ └── helpers.py # Utility functions
183
+ ```
184
+
185
+ ## 📦 Development
186
+
187
+ ```bash
188
+ git clone https://github.com/novacode-ai/novacode.git
189
+ cd novacode
190
+ pip install -e ".[dev]"
191
+
192
+ # Run tests
193
+ pytest
194
+
195
+ # Type check
196
+ mypy src/novacode
197
+
198
+ # Lint
199
+ ruff check src/novacode
200
+ ```
201
+
202
+ ## 🌟 Roadmap
203
+
204
+ - [ ] LSP integration for context-aware code understanding
205
+ - [ ] Multi-session management
206
+ - [ ] Custom tool creation DSL
207
+ - [ ] Project-level memory & patterns
208
+ - [ ] VSCode / JetBrains extension
209
+ - [ ] Local model support (Ollama, llama.cpp)
210
+ - [ ] Collaborative sessions
211
+
212
+ ## 📄 License
213
+
214
+ MIT License — see [LICENSE](LICENSE)
215
+
216
+ ---
217
+
218
+ > **NovaCode** — Because your code deserves the best agent.
@@ -0,0 +1,253 @@
1
+ Metadata-Version: 2.4
2
+ Name: novacode-tui
3
+ Version: 0.1.0
4
+ Summary: The most powerful TUI AI Coding Agent — surpasses Claude Code & OpenCode with NVIDIA NIM, multi-key rotation, KIMI K2.6 & DeepSeek V4 Pro support
5
+ Author: NovaCode Team
6
+ License: MIT
7
+ Keywords: ai,coding,agent,tui,nvidia-nim,claude-code-alternative
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Environment :: Console
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Software Development :: Code Generators
17
+ Classifier: Topic :: Software Development :: Debuggers
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: textual>=1.0.0
22
+ Requires-Dist: httpx>=0.27.0
23
+ Requires-Dist: httpx-sse>=0.4.0
24
+ Requires-Dist: rich>=13.7.0
25
+ Requires-Dist: pyyaml>=6.0
26
+ Requires-Dist: click>=8.1.0
27
+ Requires-Dist: pathspec>=0.12.0
28
+ Requires-Dist: platformdirs>=4.0.0
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=7.0; extra == "dev"
31
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
32
+ Requires-Dist: mypy>=1.0; extra == "dev"
33
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # NovaCode ⚡
37
+
38
+ **The most powerful TUI AI Coding Agent — surpasses Claude Code and OpenCode.**
39
+
40
+ [![pip install](https://img.shields.io/badge/pip-install%20novacode--tui-blue)](https://pypi.org/project/novacode-tui/)
41
+ [![npm install](https://img.shields.io/badge/npm-install%20novacode--tui-red)](https://www.npmjs.com/package/novacode-tui)
42
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-green)](https://python.org)
43
+ [![MIT License](https://img.shields.io/badge/license-MIT-purple)](LICENSE)
44
+
45
+ ```
46
+ ╔══════════════════════════════════════════╗
47
+ ║ NovaCode — AI Coding Agent ║
48
+ ║ More powerful than Claude Code ✨ ║
49
+ ╚══════════════════════════════════════════╝
50
+ ```
51
+
52
+ ---
53
+
54
+ ## ✨ What makes NovaCode special?
55
+
56
+ | Feature | NovaCode | Claude Code | OpenCode |
57
+ |---------|----------|-------------|----------|
58
+ | **Multi-key rotation** | ✅ Auto-failover | ❌ | ❌ |
59
+ | **NVIDIA NIM** | ✅ Native | ❌ | ❌ |
60
+ | **KIMI K2.6 via NIM** | ✅ No separate key | ❌ | ❌ |
61
+ | **DeepSeek V4 Pro streaming** | ✅ True SSE streaming | ❌ | ❌ |
62
+ | **Agentic tool loop** | ✅ Parallel execution | ✅ Sequential | ✅ Sequential |
63
+ | **Web search** | ✅ Built-in | ❌ | ❌ |
64
+ | **Context windowing** | ✅ Smart | ✅ | ✅ |
65
+ | **Plan/Build modes** | ✅ | ✅ | ✅ |
66
+ | **File tree sidebar** | ✅ Coming | ❌ | ❌ |
67
+ | **Token tracking** | ✅ Real-time | ✅ | ❌ |
68
+
69
+ ## 🚀 Quick Start
70
+
71
+ ### Install via pip (recommended)
72
+
73
+ ```bash
74
+ pip install novacode-tui
75
+ ```
76
+
77
+ ### Install via npm
78
+
79
+ ```bash
80
+ npm install -g novacode-tui
81
+ # npm wrapper will detect Python and prompt to install the Python package
82
+ ```
83
+
84
+ ### Install from source
85
+
86
+ ```bash
87
+ git clone https://github.com/novacode-ai/novacode.git
88
+ cd novacode
89
+ pip install -e .
90
+ # Or via npm:
91
+ npm link ./npm
92
+ ```
93
+
94
+ ## 🔑 Configuration
95
+
96
+ ### 1. Add NVIDIA NIM API Keys
97
+
98
+ Get free NIM keys from [build.nvidia.com](https://build.nvidia.com/):
99
+
100
+ ```bash
101
+ novacode keys add
102
+ # Paste your NVIDIA NIM API key
103
+
104
+ # Add multiple keys for auto-rotation:
105
+ novacode keys add
106
+ novacode keys add
107
+ ```
108
+
109
+ ### 2. Add NIM API keys (same keys used for all models, including KIMI K2.6)
110
+
111
+ ```bash
112
+ # Add as many keys as you want — NovaCode auto-rotates
113
+ novacode keys add
114
+ # Paste your NVIDIA NIM API key
115
+ ```
116
+
117
+ ### 3. List configured keys
118
+
119
+ ```bash
120
+ novacode keys list
121
+ ```
122
+
123
+ ## 🎮 Usage
124
+
125
+ ```bash
126
+ # Launch the TUI (interactive chat)
127
+ novacode
128
+
129
+ # Use a specific model
130
+ novacode --model moonshotai/kimi-k2.6
131
+ novacode --model deepseek/deepseek-v4-pro
132
+
133
+ # Send a one-off message (non-TUI)
134
+ novacode chat "refactor this code to use async/await"
135
+
136
+ # List available models
137
+ novacode models
138
+
139
+ # Edit configuration
140
+ novacode config
141
+ ```
142
+
143
+ ### TUI Keyboard Shortcuts
144
+
145
+ | Key | Action |
146
+ |-----|--------|
147
+ | `Ctrl+C` | Quit |
148
+ | `Ctrl+L` | Clear chat |
149
+ | `Ctrl+N` | New session |
150
+ | `Ctrl+S` | Focus input |
151
+ | `Ctrl+A` | Toggle auto-approve |
152
+ | `Esc` | Focus input |
153
+
154
+ ## 🤖 Supported Models
155
+
156
+ | Model ID | Description |
157
+ |----------|-------------|
158
+ | `nvidia/llama-3.3-nemotron-super-49b` | NVIDIA's best — speed + quality |
159
+ | `moonshotai/kimi-k2.6` | KIMI K2.6 thinking model (served via NVIDIA NIM) |
160
+ | `deepseek/deepseek-v4-pro` | DeepSeek V4 Pro with true reasoning streaming |
161
+ | `nvidia/llama-3.1-8b-instruct` | Fast, lightweight |
162
+
163
+ ### Model-specific behavior
164
+
165
+ - **KIMI K2.6**: Served via NVIDIA NIM (uses the same NIM keys). Thinking mode requires `temperature=1.0`, non-thinking requires `0.6`. No `tool_choice: "required"`.
166
+ - **DeepSeek V4 Pro**: Uses `reasoning_content` field for CoT streaming (no chunked dump). Can disable thinking via config.
167
+
168
+ ## 🛠 Agentic Capabilities
169
+
170
+ NovaCode includes a powerful suite of tools:
171
+
172
+ | Tool | Description | Auto-confirm |
173
+ |------|-------------|:---:|
174
+ | `read` | Read file contents with line offsets | ✅ |
175
+ | `write` | Write content to files | ❌ |
176
+ | `edit` | Targeted find-and-replace edits | ❌ |
177
+ | `search` | Regex codebase search | ✅ |
178
+ | `bash` | Execute shell commands | ❌ |
179
+ | `list_dir` | List directory contents | ✅ |
180
+ | `glob` | Find files by glob pattern | ✅ |
181
+ | `file_info` | Get file metadata | ✅ |
182
+ | `web_search` | Search the web | ✅ |
183
+
184
+ ## 🔄 Multi-Key Rotation
185
+
186
+ NovaCode's key rotation system automatically:
187
+
188
+ - **Round-robins** through available NIM keys
189
+ - **Detects 429 rate limits** and moves to the next key
190
+ - **Cooldowns** rate-limited keys for configurable intervals
191
+ - **Resets** expired cooldowns automatically
192
+ - **Tracks usage** per key (uses least-used strategy when configured)
193
+
194
+ ```bash
195
+ # Configure strategy
196
+ novacode config # Edit rotation_strategy: "round-robin" or "least-used"
197
+ ```
198
+
199
+ ## 🧠 Architecture
200
+
201
+ ```
202
+ novacode/
203
+ ├── __main__.py # CLI entry point (click)
204
+ ├── config.py # JSON config, multi-key, multi-model
205
+ ├── client/
206
+ │ ├── nim.py # NVIDIA NIM + OpenAI-compatible client
207
+ │ └── rotation.py # Multi-key rotation engine
208
+ ├── agent/
209
+ │ ├── engine.py # Tool execution loop
210
+ │ ├── tools.py # Tool definitions (9 built-in tools)
211
+ │ └── context.py # Token-aware context windowing
212
+ ├── ui/
213
+ │ └── app.py # Textual TUI application
214
+ ├── models/
215
+ │ └── ... # Model definitions & configs
216
+ └── utils/
217
+ └── helpers.py # Utility functions
218
+ ```
219
+
220
+ ## 📦 Development
221
+
222
+ ```bash
223
+ git clone https://github.com/novacode-ai/novacode.git
224
+ cd novacode
225
+ pip install -e ".[dev]"
226
+
227
+ # Run tests
228
+ pytest
229
+
230
+ # Type check
231
+ mypy src/novacode
232
+
233
+ # Lint
234
+ ruff check src/novacode
235
+ ```
236
+
237
+ ## 🌟 Roadmap
238
+
239
+ - [ ] LSP integration for context-aware code understanding
240
+ - [ ] Multi-session management
241
+ - [ ] Custom tool creation DSL
242
+ - [ ] Project-level memory & patterns
243
+ - [ ] VSCode / JetBrains extension
244
+ - [ ] Local model support (Ollama, llama.cpp)
245
+ - [ ] Collaborative sessions
246
+
247
+ ## 📄 License
248
+
249
+ MIT License — see [LICENSE](LICENSE)
250
+
251
+ ---
252
+
253
+ > **NovaCode** — Because your code deserves the best agent.
@@ -0,0 +1,10 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ novacode_tui.egg-info/PKG-INFO
6
+ novacode_tui.egg-info/SOURCES.txt
7
+ novacode_tui.egg-info/dependency_links.txt
8
+ novacode_tui.egg-info/entry_points.txt
9
+ novacode_tui.egg-info/requires.txt
10
+ novacode_tui.egg-info/top_level.txt
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ novacode = novacode.__main__:cli_entry
3
+ nv = novacode.__main__:cli_entry
@@ -0,0 +1,14 @@
1
+ textual>=1.0.0
2
+ httpx>=0.27.0
3
+ httpx-sse>=0.4.0
4
+ rich>=13.7.0
5
+ pyyaml>=6.0
6
+ click>=8.1.0
7
+ pathspec>=0.12.0
8
+ platformdirs>=4.0.0
9
+
10
+ [dev]
11
+ pytest>=7.0
12
+ pytest-asyncio>=0.21.0
13
+ mypy>=1.0
14
+ ruff>=0.1.0
@@ -0,0 +1,56 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "novacode-tui"
7
+ version = "0.1.0"
8
+ description = "The most powerful TUI AI Coding Agent — surpasses Claude Code & OpenCode with NVIDIA NIM, multi-key rotation, KIMI K2.6 & DeepSeek V4 Pro support"
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ authors = [
12
+ {name = "NovaCode Team"}
13
+ ]
14
+ requires-python = ">=3.10"
15
+ keywords = ["ai", "coding", "agent", "tui", "nvidia-nim", "claude-code-alternative"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "License :: OSI Approved :: MIT License",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Topic :: Software Development :: Code Generators",
26
+ "Topic :: Software Development :: Debuggers",
27
+ ]
28
+
29
+ dependencies = [
30
+ "textual>=1.0.0",
31
+ "httpx>=0.27.0",
32
+ "httpx-sse>=0.4.0",
33
+ "rich>=13.7.0",
34
+ "pyyaml>=6.0",
35
+ "click>=8.1.0",
36
+ "pathspec>=0.12.0",
37
+ "platformdirs>=4.0.0",
38
+ ]
39
+
40
+ [project.scripts]
41
+ novacode = "novacode.__main__:cli_entry"
42
+ nv = "novacode.__main__:cli_entry"
43
+
44
+ [project.optional-dependencies]
45
+ dev = [
46
+ "pytest>=7.0",
47
+ "pytest-asyncio>=0.21.0",
48
+ "mypy>=1.0",
49
+ "ruff>=0.1.0",
50
+ ]
51
+
52
+ [tool.setuptools.packages.find]
53
+ include = ["novacode*"]
54
+
55
+ [tool.setuptools.package-data]
56
+ novacode = ["py.typed"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,4 @@
1
+ """Setup.py for NovaCode — required for pip install -e . compatibility."""
2
+ from setuptools import setup
3
+
4
+ setup()