nemocode 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.
- nemocode-0.1.0/.github/workflows/ci.yml +31 -0
- nemocode-0.1.0/.github/workflows/publish.yml +48 -0
- nemocode-0.1.0/.gitignore +53 -0
- nemocode-0.1.0/LICENSE +21 -0
- nemocode-0.1.0/PKG-INFO +160 -0
- nemocode-0.1.0/README.md +108 -0
- nemocode-0.1.0/defaults.yaml +319 -0
- nemocode-0.1.0/docs/INDEX.md +40 -0
- nemocode-0.1.0/docs/_scripts/sync-docs.sh +129 -0
- nemocode-0.1.0/docs/agentic/README.md +53 -0
- nemocode-0.1.0/docs/agentic/agent-toolkit.md +93 -0
- nemocode-0.1.0/docs/agentic/examples.md +74 -0
- nemocode-0.1.0/docs/agentic/guardrails.md +104 -0
- nemocode-0.1.0/docs/api/README.md +52 -0
- nemocode-0.1.0/docs/api/authentication.md +59 -0
- nemocode-0.1.0/docs/api/build-nvidia.md +56 -0
- nemocode-0.1.0/docs/api/endpoints.md +87 -0
- nemocode-0.1.0/docs/enterprise/README.md +64 -0
- nemocode-0.1.0/docs/inference/README.md +64 -0
- nemocode-0.1.0/docs/inference/dynamo.md +80 -0
- nemocode-0.1.0/docs/inference/tensorrt-llm.md +105 -0
- nemocode-0.1.0/docs/inference/tensorrt.md +80 -0
- nemocode-0.1.0/docs/inference/triton.md +105 -0
- nemocode-0.1.0/docs/models/README.md +34 -0
- nemocode-0.1.0/docs/models/digital-human.md +68 -0
- nemocode-0.1.0/docs/models/embedding.md +93 -0
- nemocode-0.1.0/docs/models/nemotron.md +65 -0
- nemocode-0.1.0/docs/models/speech-asr.md +86 -0
- nemocode-0.1.0/docs/models/speech-tts.md +89 -0
- nemocode-0.1.0/docs/models/video.md +81 -0
- nemocode-0.1.0/docs/models/vision.md +58 -0
- nemocode-0.1.0/docs/models/visual-genai.md +82 -0
- nemocode-0.1.0/docs/nemo/README.md +50 -0
- nemocode-0.1.0/docs/nemo/automodel.md +37 -0
- nemocode-0.1.0/docs/nemo/curator.md +57 -0
- nemocode-0.1.0/docs/nemo/export-deploy.md +45 -0
- nemocode-0.1.0/docs/nemo/microservices.md +78 -0
- nemocode-0.1.0/docs/nemo/rl.md +41 -0
- nemocode-0.1.0/docs/nemo/run.md +55 -0
- nemocode-0.1.0/docs/nemo/skills.md +37 -0
- nemocode-0.1.0/docs/nim/README.md +51 -0
- nemocode-0.1.0/docs/nim/llm.md +74 -0
- nemocode-0.1.0/docs/nim/retrieval.md +71 -0
- nemocode-0.1.0/docs/nim/safety.md +63 -0
- nemocode-0.1.0/docs/nim/specialized.md +75 -0
- nemocode-0.1.0/docs/nim/speech.md +72 -0
- nemocode-0.1.0/docs/nim/vision.md +78 -0
- nemocode-0.1.0/docs/resources/README.md +11 -0
- nemocode-0.1.0/docs/resources/github-repos.md +45 -0
- nemocode-0.1.0/docs/resources/learning.md +54 -0
- nemocode-0.1.0/docs/resources/ngc-catalog.md +63 -0
- nemocode-0.1.0/pyproject.toml +77 -0
- nemocode-0.1.0/src/nemocode/__init__.py +6 -0
- nemocode-0.1.0/src/nemocode/cli/__init__.py +3 -0
- nemocode-0.1.0/src/nemocode/cli/commands/__init__.py +3 -0
- nemocode-0.1.0/src/nemocode/cli/commands/auth.py +144 -0
- nemocode-0.1.0/src/nemocode/cli/commands/chat.py +75 -0
- nemocode-0.1.0/src/nemocode/cli/commands/code.py +163 -0
- nemocode-0.1.0/src/nemocode/cli/commands/endpoint.py +132 -0
- nemocode-0.1.0/src/nemocode/cli/commands/formation.py +93 -0
- nemocode-0.1.0/src/nemocode/cli/commands/hardware.py +97 -0
- nemocode-0.1.0/src/nemocode/cli/commands/init_cmd.py +80 -0
- nemocode-0.1.0/src/nemocode/cli/commands/model.py +108 -0
- nemocode-0.1.0/src/nemocode/cli/commands/obs.py +43 -0
- nemocode-0.1.0/src/nemocode/cli/commands/repl.py +1004 -0
- nemocode-0.1.0/src/nemocode/cli/commands/session.py +78 -0
- nemocode-0.1.0/src/nemocode/cli/commands/setup.py +247 -0
- nemocode-0.1.0/src/nemocode/cli/main.py +64 -0
- nemocode-0.1.0/src/nemocode/config/__init__.py +229 -0
- nemocode-0.1.0/src/nemocode/config/schema.py +221 -0
- nemocode-0.1.0/src/nemocode/core/__init__.py +3 -0
- nemocode-0.1.0/src/nemocode/core/context.py +133 -0
- nemocode-0.1.0/src/nemocode/core/credentials.py +181 -0
- nemocode-0.1.0/src/nemocode/core/first_run.py +164 -0
- nemocode-0.1.0/src/nemocode/core/hardware.py +376 -0
- nemocode-0.1.0/src/nemocode/core/metrics.py +106 -0
- nemocode-0.1.0/src/nemocode/core/persistence.py +146 -0
- nemocode-0.1.0/src/nemocode/core/registry.py +112 -0
- nemocode-0.1.0/src/nemocode/core/scheduler.py +373 -0
- nemocode-0.1.0/src/nemocode/core/sessions.py +117 -0
- nemocode-0.1.0/src/nemocode/core/streaming.py +86 -0
- nemocode-0.1.0/src/nemocode/defaults.yaml +345 -0
- nemocode-0.1.0/src/nemocode/providers/__init__.py +26 -0
- nemocode-0.1.0/src/nemocode/providers/nim_chat.py +367 -0
- nemocode-0.1.0/src/nemocode/providers/nim_embeddings.py +47 -0
- nemocode-0.1.0/src/nemocode/providers/nim_parse.py +69 -0
- nemocode-0.1.0/src/nemocode/providers/nim_rerank.py +37 -0
- nemocode-0.1.0/src/nemocode/py.typed +0 -0
- nemocode-0.1.0/src/nemocode/tools/__init__.py +177 -0
- nemocode-0.1.0/src/nemocode/tools/bash.py +108 -0
- nemocode-0.1.0/src/nemocode/tools/fs.py +154 -0
- nemocode-0.1.0/src/nemocode/tools/git.py +98 -0
- nemocode-0.1.0/src/nemocode/tools/http.py +45 -0
- nemocode-0.1.0/src/nemocode/tools/loader.py +32 -0
- nemocode-0.1.0/src/nemocode/tools/mcp.py +203 -0
- nemocode-0.1.0/src/nemocode/tools/rg.py +72 -0
- nemocode-0.1.0/src/nemocode/tui/__init__.py +3 -0
- nemocode-0.1.0/src/nemocode/tui/app.py +269 -0
- nemocode-0.1.0/src/nemocode/tui/screens/__init__.py +3 -0
- nemocode-0.1.0/src/nemocode/voice/__init__.py +3 -0
- nemocode-0.1.0/src/nemocode/voice/detector.py +88 -0
- nemocode-0.1.0/src/nemocode/voice/session.py +76 -0
- nemocode-0.1.0/src/nemocode/voice/stt.py +124 -0
- nemocode-0.1.0/src/nemocode/voice/tts.py +109 -0
- nemocode-0.1.0/src/nemocode/workflows/__init__.py +3 -0
- nemocode-0.1.0/src/nemocode/workflows/code_agent.py +157 -0
- nemocode-0.1.0/tests/__init__.py +3 -0
- nemocode-0.1.0/tests/conftest.py +106 -0
- nemocode-0.1.0/tests/test_cli.py +109 -0
- nemocode-0.1.0/tests/test_config.py +136 -0
- nemocode-0.1.0/tests/test_context.py +96 -0
- nemocode-0.1.0/tests/test_coverage_expansion.py +532 -0
- nemocode-0.1.0/tests/test_credentials.py +78 -0
- nemocode-0.1.0/tests/test_first_run.py +48 -0
- nemocode-0.1.0/tests/test_hardware.py +143 -0
- nemocode-0.1.0/tests/test_mcp.py +38 -0
- nemocode-0.1.0/tests/test_registry.py +64 -0
- nemocode-0.1.0/tests/test_repl.py +256 -0
- nemocode-0.1.0/tests/test_retry.py +106 -0
- nemocode-0.1.0/tests/test_sandbox.py +71 -0
- nemocode-0.1.0/tests/test_scheduler.py +133 -0
- nemocode-0.1.0/tests/test_sessions.py +86 -0
- nemocode-0.1.0/tests/test_streaming.py +52 -0
- nemocode-0.1.0/tests/test_tools.py +157 -0
- nemocode-0.1.0/tests/test_voice.py +60 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
15
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: ${{ matrix.python-version }}
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: |
|
|
24
|
+
python -m pip install --upgrade pip
|
|
25
|
+
pip install -e ".[dev]"
|
|
26
|
+
- name: Lint
|
|
27
|
+
run: ruff check src/ tests/
|
|
28
|
+
- name: Format check
|
|
29
|
+
run: ruff format --check src/ tests/
|
|
30
|
+
- name: Test
|
|
31
|
+
run: pytest tests/ -v --tb=short
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
18
|
+
uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: ${{ matrix.python-version }}
|
|
21
|
+
- name: Install dependencies
|
|
22
|
+
run: |
|
|
23
|
+
python -m pip install --upgrade pip
|
|
24
|
+
pip install -e ".[dev]"
|
|
25
|
+
- name: Lint
|
|
26
|
+
run: ruff check src/ tests/
|
|
27
|
+
- name: Test
|
|
28
|
+
run: pytest tests/ -v --tb=short
|
|
29
|
+
|
|
30
|
+
publish:
|
|
31
|
+
needs: test
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
34
|
+
environment: pypi
|
|
35
|
+
permissions:
|
|
36
|
+
id-token: write
|
|
37
|
+
steps:
|
|
38
|
+
- uses: actions/checkout@v4
|
|
39
|
+
- name: Set up Python
|
|
40
|
+
uses: actions/setup-python@v5
|
|
41
|
+
with:
|
|
42
|
+
python-version: "3.12"
|
|
43
|
+
- name: Build package
|
|
44
|
+
run: |
|
|
45
|
+
pip install build
|
|
46
|
+
python -m build
|
|
47
|
+
- name: Publish to PyPI
|
|
48
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.egg-info/
|
|
6
|
+
*.egg
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
.eggs/
|
|
10
|
+
*.whl
|
|
11
|
+
|
|
12
|
+
# Virtual environments
|
|
13
|
+
.venv/
|
|
14
|
+
venv/
|
|
15
|
+
ENV/
|
|
16
|
+
|
|
17
|
+
# IDE
|
|
18
|
+
.vscode/
|
|
19
|
+
.idea/
|
|
20
|
+
*.swp
|
|
21
|
+
*.swo
|
|
22
|
+
*~
|
|
23
|
+
|
|
24
|
+
# OS
|
|
25
|
+
.DS_Store
|
|
26
|
+
Thumbs.db
|
|
27
|
+
|
|
28
|
+
# Testing
|
|
29
|
+
.pytest_cache/
|
|
30
|
+
.coverage
|
|
31
|
+
htmlcov/
|
|
32
|
+
.tox/
|
|
33
|
+
|
|
34
|
+
# Ruff
|
|
35
|
+
.ruff_cache/
|
|
36
|
+
|
|
37
|
+
# NeMoCode local config
|
|
38
|
+
.nemocode.yaml
|
|
39
|
+
|
|
40
|
+
# Sessions
|
|
41
|
+
~/.local/share/nemocode/
|
|
42
|
+
|
|
43
|
+
# Database files
|
|
44
|
+
*.db
|
|
45
|
+
*.sqlite
|
|
46
|
+
|
|
47
|
+
# Secrets
|
|
48
|
+
.env
|
|
49
|
+
.env.local
|
|
50
|
+
firebase-debug.log
|
|
51
|
+
counterpoint.copilot.db
|
|
52
|
+
CODEX_HANDOFF.md
|
|
53
|
+
scripts/setup_nim_key.sh
|
nemocode-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES.
|
|
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.
|
nemocode-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nemocode
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Terminal-first control plane for NVIDIA Nemotron 3 — agentic coding, RAG, doc-ops, and multi-model formations.
|
|
5
|
+
Project-URL: Homepage, https://github.com/Hmbown/NeMoCode
|
|
6
|
+
Project-URL: Repository, https://github.com/Hmbown/NeMoCode
|
|
7
|
+
Project-URL: Documentation, https://github.com/Hmbown/NeMoCode#readme
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/Hmbown/NeMoCode/issues
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: agentic-ai,formations,nemocode,nemotron,nim,nvidia
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Typing :: Typed
|
|
22
|
+
Requires-Python: >=3.11
|
|
23
|
+
Requires-Dist: anyio>=4.0
|
|
24
|
+
Requires-Dist: httpx>=0.27
|
|
25
|
+
Requires-Dist: prompt-toolkit>=3.0
|
|
26
|
+
Requires-Dist: pydantic>=2.0
|
|
27
|
+
Requires-Dist: pygments>=2.17
|
|
28
|
+
Requires-Dist: pyyaml>=6.0
|
|
29
|
+
Requires-Dist: rich>=13.0
|
|
30
|
+
Requires-Dist: textual>=1.0.0
|
|
31
|
+
Requires-Dist: typer>=0.12
|
|
32
|
+
Provides-Extra: aiq
|
|
33
|
+
Requires-Dist: agentiq>=1.0; extra == 'aiq'
|
|
34
|
+
Provides-Extra: all
|
|
35
|
+
Requires-Dist: faster-whisper>=1.0; extra == 'all'
|
|
36
|
+
Requires-Dist: grpcio>=1.60; extra == 'all'
|
|
37
|
+
Requires-Dist: keyring>=25.0; extra == 'all'
|
|
38
|
+
Requires-Dist: sounddevice>=0.4; extra == 'all'
|
|
39
|
+
Provides-Extra: dev
|
|
40
|
+
Requires-Dist: keyring>=25.0; extra == 'dev'
|
|
41
|
+
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
|
|
42
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
43
|
+
Requires-Dist: ruff>=0.5; extra == 'dev'
|
|
44
|
+
Provides-Extra: keyring
|
|
45
|
+
Requires-Dist: keyring>=25.0; extra == 'keyring'
|
|
46
|
+
Provides-Extra: speech
|
|
47
|
+
Requires-Dist: grpcio>=1.60; extra == 'speech'
|
|
48
|
+
Provides-Extra: voice
|
|
49
|
+
Requires-Dist: faster-whisper>=1.0; extra == 'voice'
|
|
50
|
+
Requires-Dist: sounddevice>=0.4; extra == 'voice'
|
|
51
|
+
Description-Content-Type: text/markdown
|
|
52
|
+
|
|
53
|
+
# NeMoCode
|
|
54
|
+
|
|
55
|
+
Agentic coding CLI for [NVIDIA NIM](https://build.nvidia.com). Reads your code, makes edits, runs commands — powered by any model on the NIM API or your own GPU via vLLM.
|
|
56
|
+
|
|
57
|
+
> **Community project** — not affiliated with or endorsed by NVIDIA.
|
|
58
|
+
|
|
59
|
+
## Install
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pip install -e .
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Setup
|
|
66
|
+
|
|
67
|
+
Get a free API key from [build.nvidia.com](https://build.nvidia.com):
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
export NVIDIA_API_KEY="nvapi-..."
|
|
71
|
+
nemo code
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Or serve a model locally with [vLLM](https://docs.vllm.ai/) on any NVIDIA GPU:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
vllm serve nvidia/NVIDIA-Nemotron-Nano-9B-v2 \
|
|
78
|
+
--trust-remote-code --mamba_ssm_cache_dtype float32 \
|
|
79
|
+
--enable-auto-tool-choice \
|
|
80
|
+
--tool-parser-plugin nemotron_toolcall_parser.py \
|
|
81
|
+
--tool-call-parser nemotron_json
|
|
82
|
+
nemo code -e local-vllm-nano9b
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
No GPU? Rent one via [Brev](https://console.brev.dev) — L40S from $1.03/hr:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
nemo setup brev
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Usage
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
nemo code # interactive REPL
|
|
95
|
+
nemo code "fix the bug in auth.py" -y # one-shot, auto-approve tools
|
|
96
|
+
nemo chat "explain this error" # chat, no tools
|
|
97
|
+
cat log.txt | nemo code "diagnose" # pipe input
|
|
98
|
+
nemo code -f super-nano "refactor" # multi-model formation
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Endpoints
|
|
102
|
+
|
|
103
|
+
Works with any OpenAI-compatible API. Pre-configured:
|
|
104
|
+
|
|
105
|
+
| Endpoint | Model | Access |
|
|
106
|
+
|----------|-------|--------|
|
|
107
|
+
| `nim-super` | Nemotron 3 Super (12B/120B MoE) | NIM API key |
|
|
108
|
+
| `nim-nano` | Nemotron 3 Nano (3B/30B MoE) | NIM API key |
|
|
109
|
+
| `nim-nano-9b` | Nemotron Nano 9B v2 | NIM API key |
|
|
110
|
+
| `openrouter-super` | Super via OpenRouter | OpenRouter key |
|
|
111
|
+
| `together-super` | Super via Together AI | Together key |
|
|
112
|
+
| `local-vllm-*` | Any model on local vLLM | GPU + vLLM |
|
|
113
|
+
| `local-nim-*` | Local NIM container | GPU + Docker |
|
|
114
|
+
|
|
115
|
+
## Formations
|
|
116
|
+
|
|
117
|
+
Multi-model pipelines — Super plans, Nano executes, Super reviews:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
nemo code -f super-nano "implement caching"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
| Formation | Pipeline |
|
|
124
|
+
|-----------|----------|
|
|
125
|
+
| `solo` | Super does everything (default) |
|
|
126
|
+
| `super-nano` | Super plans + reviews, Nano executes |
|
|
127
|
+
| `local` | Nano on local GPU, no internet needed |
|
|
128
|
+
|
|
129
|
+
## Local GPU setup
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
nemo setup # show all options
|
|
133
|
+
nemo setup vllm # vLLM serving guide
|
|
134
|
+
nemo setup nim # NIM container guide
|
|
135
|
+
nemo setup brev # rent a cloud GPU
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## More commands
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
nemo endpoint ls / test # manage endpoints
|
|
142
|
+
nemo model ls / show # inspect model manifests
|
|
143
|
+
nemo formation ls / show # inspect formations
|
|
144
|
+
nemo hardware recommend # GPU-based recommendations
|
|
145
|
+
nemo session ls # past conversations
|
|
146
|
+
nemo obs pricing # token pricing
|
|
147
|
+
nemo init # create .nemocode.yaml
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Contributing
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
pip install -e ".[dev]"
|
|
154
|
+
ruff check src/ tests/ && ruff format --check src/ tests/
|
|
155
|
+
pytest tests/ -v
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## License
|
|
159
|
+
|
|
160
|
+
[MIT](LICENSE). NVIDIA, Nemotron, and NIM are trademarks of NVIDIA Corporation.
|
nemocode-0.1.0/README.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# NeMoCode
|
|
2
|
+
|
|
3
|
+
Agentic coding CLI for [NVIDIA NIM](https://build.nvidia.com). Reads your code, makes edits, runs commands — powered by any model on the NIM API or your own GPU via vLLM.
|
|
4
|
+
|
|
5
|
+
> **Community project** — not affiliated with or endorsed by NVIDIA.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install -e .
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Setup
|
|
14
|
+
|
|
15
|
+
Get a free API key from [build.nvidia.com](https://build.nvidia.com):
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
export NVIDIA_API_KEY="nvapi-..."
|
|
19
|
+
nemo code
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Or serve a model locally with [vLLM](https://docs.vllm.ai/) on any NVIDIA GPU:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
vllm serve nvidia/NVIDIA-Nemotron-Nano-9B-v2 \
|
|
26
|
+
--trust-remote-code --mamba_ssm_cache_dtype float32 \
|
|
27
|
+
--enable-auto-tool-choice \
|
|
28
|
+
--tool-parser-plugin nemotron_toolcall_parser.py \
|
|
29
|
+
--tool-call-parser nemotron_json
|
|
30
|
+
nemo code -e local-vllm-nano9b
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
No GPU? Rent one via [Brev](https://console.brev.dev) — L40S from $1.03/hr:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
nemo setup brev
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
nemo code # interactive REPL
|
|
43
|
+
nemo code "fix the bug in auth.py" -y # one-shot, auto-approve tools
|
|
44
|
+
nemo chat "explain this error" # chat, no tools
|
|
45
|
+
cat log.txt | nemo code "diagnose" # pipe input
|
|
46
|
+
nemo code -f super-nano "refactor" # multi-model formation
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Endpoints
|
|
50
|
+
|
|
51
|
+
Works with any OpenAI-compatible API. Pre-configured:
|
|
52
|
+
|
|
53
|
+
| Endpoint | Model | Access |
|
|
54
|
+
|----------|-------|--------|
|
|
55
|
+
| `nim-super` | Nemotron 3 Super (12B/120B MoE) | NIM API key |
|
|
56
|
+
| `nim-nano` | Nemotron 3 Nano (3B/30B MoE) | NIM API key |
|
|
57
|
+
| `nim-nano-9b` | Nemotron Nano 9B v2 | NIM API key |
|
|
58
|
+
| `openrouter-super` | Super via OpenRouter | OpenRouter key |
|
|
59
|
+
| `together-super` | Super via Together AI | Together key |
|
|
60
|
+
| `local-vllm-*` | Any model on local vLLM | GPU + vLLM |
|
|
61
|
+
| `local-nim-*` | Local NIM container | GPU + Docker |
|
|
62
|
+
|
|
63
|
+
## Formations
|
|
64
|
+
|
|
65
|
+
Multi-model pipelines — Super plans, Nano executes, Super reviews:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
nemo code -f super-nano "implement caching"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
| Formation | Pipeline |
|
|
72
|
+
|-----------|----------|
|
|
73
|
+
| `solo` | Super does everything (default) |
|
|
74
|
+
| `super-nano` | Super plans + reviews, Nano executes |
|
|
75
|
+
| `local` | Nano on local GPU, no internet needed |
|
|
76
|
+
|
|
77
|
+
## Local GPU setup
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
nemo setup # show all options
|
|
81
|
+
nemo setup vllm # vLLM serving guide
|
|
82
|
+
nemo setup nim # NIM container guide
|
|
83
|
+
nemo setup brev # rent a cloud GPU
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## More commands
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
nemo endpoint ls / test # manage endpoints
|
|
90
|
+
nemo model ls / show # inspect model manifests
|
|
91
|
+
nemo formation ls / show # inspect formations
|
|
92
|
+
nemo hardware recommend # GPU-based recommendations
|
|
93
|
+
nemo session ls # past conversations
|
|
94
|
+
nemo obs pricing # token pricing
|
|
95
|
+
nemo init # create .nemocode.yaml
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Contributing
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
pip install -e ".[dev]"
|
|
102
|
+
ruff check src/ tests/ && ruff format --check src/ tests/
|
|
103
|
+
pytest tests/ -v
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## License
|
|
107
|
+
|
|
108
|
+
[MIT](LICENSE). NVIDIA, Nemotron, and NIM are trademarks of NVIDIA Corporation.
|