neuroncli 2.3.0__tar.gz → 3.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.
- neuroncli-3.1.0/PKG-INFO +132 -0
- neuroncli-3.1.0/README.md +107 -0
- neuroncli-3.1.0/neuroncli/bin/neuron.exe +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/cli.py +43 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/openrouter_client.py +231 -220
- neuroncli-3.1.0/neuroncli/repo_map.py +212 -0
- neuroncli-3.1.0/neuroncli/validators.py +169 -0
- neuroncli-3.1.0/neuroncli.egg-info/PKG-INFO +132 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli.egg-info/SOURCES.txt +3 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/pyproject.toml +6 -3
- neuroncli-2.3.0/PKG-INFO +0 -161
- neuroncli-2.3.0/README.md +0 -136
- neuroncli-2.3.0/neuroncli.egg-info/PKG-INFO +0 -161
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/__init__.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/__main__.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/agent.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/auth.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/config.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/git_integration.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/ollama_client.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/prompts.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/provider.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/session.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/tools.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli/ui.py +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli.egg-info/dependency_links.txt +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli.egg-info/entry_points.txt +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli.egg-info/requires.txt +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/neuroncli.egg-info/top_level.txt +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/setup.cfg +0 -0
- {neuroncli-2.3.0 → neuroncli-3.1.0}/tests/test_agent.py +0 -0
neuroncli-3.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: neuroncli
|
|
3
|
+
Version: 3.1.0
|
|
4
|
+
Summary: AI Coding Agent — Free Claude Code alternative. Native Rust binary with plan mode, shell escapes, and Azure AI + OpenRouter support.
|
|
5
|
+
Author-email: Rahul S <rahultech72216@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://zero-x.live
|
|
8
|
+
Project-URL: Repository, https://github.com/RAHUL-DevelopeRR/neuroncli
|
|
9
|
+
Project-URL: Issues, https://github.com/RAHUL-DevelopeRR/neuroncli/issues
|
|
10
|
+
Keywords: ai,coding,agent,cli,llm,claude-code,rust,code-assistant,neuron
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Topic :: Software Development
|
|
15
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Operating System :: OS Independent
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
Requires-Dist: requests>=2.28.0
|
|
25
|
+
|
|
26
|
+
# NeuronCLI
|
|
27
|
+
|
|
28
|
+
**Free AI Coding Agent** — Claude Code alternative. Native Rust binary with Azure AI + OpenRouter support.
|
|
29
|
+
|
|
30
|
+
> Built by [zero-x Corporation](https://zero-x.live)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Install
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Windows / macOS / Cloud VMs
|
|
38
|
+
pip install neuroncli
|
|
39
|
+
|
|
40
|
+
# Debian / Ubuntu (Python 3.11+)
|
|
41
|
+
pip install neuroncli --break-system-packages
|
|
42
|
+
|
|
43
|
+
# Or use pipx (recommended for Debian)
|
|
44
|
+
pipx install neuroncli
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
> **v3.0.0** ships a native Rust binary (14MB) for maximum performance.
|
|
48
|
+
> On systems without the binary, the Python implementation runs as fallback.
|
|
49
|
+
|
|
50
|
+
## Quick Start
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Start interactive REPL
|
|
54
|
+
neuron
|
|
55
|
+
|
|
56
|
+
# One-shot task
|
|
57
|
+
neuron "fix the bug in main.py"
|
|
58
|
+
|
|
59
|
+
# Plan mode — architecture first, execute later
|
|
60
|
+
neuron --plan "add authentication to this API"
|
|
61
|
+
|
|
62
|
+
# YOLO mode — no permission prompts
|
|
63
|
+
neuron --yolo "refactor src/ to use async"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Zero Setup — First Run
|
|
67
|
+
|
|
68
|
+
1. Type `neuron` in any project directory
|
|
69
|
+
2. Browser opens to **OpenRouter** login (free account)
|
|
70
|
+
3. API key auto-provisioned + encrypted in `~/.neuroncli/vault.enc`
|
|
71
|
+
4. **Done.** No manual config, no copy-paste.
|
|
72
|
+
|
|
73
|
+
## Features
|
|
74
|
+
|
|
75
|
+
| Feature | Description |
|
|
76
|
+
|---------|-------------|
|
|
77
|
+
| **Native Rust Binary** | 14MB single binary, instant startup |
|
|
78
|
+
| **Plan Mode** | `/plan` generates architecture plans, `/plan off` to execute |
|
|
79
|
+
| **? Shortcuts Panel** | Press `?` for Claude Code-style two-column cheatsheet |
|
|
80
|
+
| **Shell Escape** | `!git status`, `!ls` — run commands without burning tokens |
|
|
81
|
+
| **Dynamic Prompt** | Shows current mode: `>`, `[plan] >`, `[edit] >`, `[auto] >` |
|
|
82
|
+
| **Azure AI Foundry** | GPT-5.5 primary (44K tokens/day free quota) |
|
|
83
|
+
| **OpenRouter Fallback** | Free-tier model when Azure quota is exhausted |
|
|
84
|
+
| **Directory Trust** | Interactive security prompt on first use per directory |
|
|
85
|
+
| **Session Persistence** | Resume previous conversations with `/resume` |
|
|
86
|
+
| **Git Auto-Commit** | Every AI edit is auto-committed |
|
|
87
|
+
| **Context Compression** | `/compact` prevents context bloat |
|
|
88
|
+
| **NEURON.md** | Project context file (like Claude's CLAUDE.md) |
|
|
89
|
+
|
|
90
|
+
## Shortcuts (press `?` in REPL)
|
|
91
|
+
|
|
92
|
+
| Key | Action | Key | Action |
|
|
93
|
+
|-----|--------|-----|--------|
|
|
94
|
+
| `?` | Shortcuts panel | `/help` | Full command list |
|
|
95
|
+
| `!cmd` | Shell command | `/plan` | Toggle plan mode |
|
|
96
|
+
| `Up/Down` | History | `/compact` | Compress context |
|
|
97
|
+
| `Ctrl+C` | Cancel | `/clear` | Reset session |
|
|
98
|
+
| `Ctrl+D` | Exit | `/model` | Switch model |
|
|
99
|
+
|
|
100
|
+
## Plan Mode
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
> /plan ← Enter plan mode
|
|
104
|
+
[plan] > add user authentication ← Agent generates architecture plan
|
|
105
|
+
[plan] > /plan off ← Exit plan mode
|
|
106
|
+
> execute the plan ← Agent implements with full access
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## CLI Flags
|
|
110
|
+
|
|
111
|
+
| Flag | Description |
|
|
112
|
+
|------|-------------|
|
|
113
|
+
| `--yolo` | Skip all permission prompts |
|
|
114
|
+
| `--plan` | Plan mode — reason before coding |
|
|
115
|
+
| `--model`, `-m` | Model to use |
|
|
116
|
+
| `--provider`, `-p` | `openrouter` or `ollama` |
|
|
117
|
+
| `--dir`, `-d` | Working directory |
|
|
118
|
+
| `--no-stream` | Disable token streaming |
|
|
119
|
+
|
|
120
|
+
## Requirements
|
|
121
|
+
|
|
122
|
+
- **Windows:** Works out of the box (native Rust binary)
|
|
123
|
+
- **Linux/macOS:** Python 3.10+ (Python fallback), or install Rust binary separately
|
|
124
|
+
- Internet connection for Azure AI / OpenRouter
|
|
125
|
+
|
|
126
|
+
## License
|
|
127
|
+
|
|
128
|
+
MIT — free to use, modify, and distribute commercially.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
*By [zero-x Corporation](https://zero-x.live) — Tamil Nadu, India*
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# NeuronCLI
|
|
2
|
+
|
|
3
|
+
**Free AI Coding Agent** — Claude Code alternative. Native Rust binary with Azure AI + OpenRouter support.
|
|
4
|
+
|
|
5
|
+
> Built by [zero-x Corporation](https://zero-x.live)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Windows / macOS / Cloud VMs
|
|
13
|
+
pip install neuroncli
|
|
14
|
+
|
|
15
|
+
# Debian / Ubuntu (Python 3.11+)
|
|
16
|
+
pip install neuroncli --break-system-packages
|
|
17
|
+
|
|
18
|
+
# Or use pipx (recommended for Debian)
|
|
19
|
+
pipx install neuroncli
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
> **v3.0.0** ships a native Rust binary (14MB) for maximum performance.
|
|
23
|
+
> On systems without the binary, the Python implementation runs as fallback.
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Start interactive REPL
|
|
29
|
+
neuron
|
|
30
|
+
|
|
31
|
+
# One-shot task
|
|
32
|
+
neuron "fix the bug in main.py"
|
|
33
|
+
|
|
34
|
+
# Plan mode — architecture first, execute later
|
|
35
|
+
neuron --plan "add authentication to this API"
|
|
36
|
+
|
|
37
|
+
# YOLO mode — no permission prompts
|
|
38
|
+
neuron --yolo "refactor src/ to use async"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Zero Setup — First Run
|
|
42
|
+
|
|
43
|
+
1. Type `neuron` in any project directory
|
|
44
|
+
2. Browser opens to **OpenRouter** login (free account)
|
|
45
|
+
3. API key auto-provisioned + encrypted in `~/.neuroncli/vault.enc`
|
|
46
|
+
4. **Done.** No manual config, no copy-paste.
|
|
47
|
+
|
|
48
|
+
## Features
|
|
49
|
+
|
|
50
|
+
| Feature | Description |
|
|
51
|
+
|---------|-------------|
|
|
52
|
+
| **Native Rust Binary** | 14MB single binary, instant startup |
|
|
53
|
+
| **Plan Mode** | `/plan` generates architecture plans, `/plan off` to execute |
|
|
54
|
+
| **? Shortcuts Panel** | Press `?` for Claude Code-style two-column cheatsheet |
|
|
55
|
+
| **Shell Escape** | `!git status`, `!ls` — run commands without burning tokens |
|
|
56
|
+
| **Dynamic Prompt** | Shows current mode: `>`, `[plan] >`, `[edit] >`, `[auto] >` |
|
|
57
|
+
| **Azure AI Foundry** | GPT-5.5 primary (44K tokens/day free quota) |
|
|
58
|
+
| **OpenRouter Fallback** | Free-tier model when Azure quota is exhausted |
|
|
59
|
+
| **Directory Trust** | Interactive security prompt on first use per directory |
|
|
60
|
+
| **Session Persistence** | Resume previous conversations with `/resume` |
|
|
61
|
+
| **Git Auto-Commit** | Every AI edit is auto-committed |
|
|
62
|
+
| **Context Compression** | `/compact` prevents context bloat |
|
|
63
|
+
| **NEURON.md** | Project context file (like Claude's CLAUDE.md) |
|
|
64
|
+
|
|
65
|
+
## Shortcuts (press `?` in REPL)
|
|
66
|
+
|
|
67
|
+
| Key | Action | Key | Action |
|
|
68
|
+
|-----|--------|-----|--------|
|
|
69
|
+
| `?` | Shortcuts panel | `/help` | Full command list |
|
|
70
|
+
| `!cmd` | Shell command | `/plan` | Toggle plan mode |
|
|
71
|
+
| `Up/Down` | History | `/compact` | Compress context |
|
|
72
|
+
| `Ctrl+C` | Cancel | `/clear` | Reset session |
|
|
73
|
+
| `Ctrl+D` | Exit | `/model` | Switch model |
|
|
74
|
+
|
|
75
|
+
## Plan Mode
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
> /plan ← Enter plan mode
|
|
79
|
+
[plan] > add user authentication ← Agent generates architecture plan
|
|
80
|
+
[plan] > /plan off ← Exit plan mode
|
|
81
|
+
> execute the plan ← Agent implements with full access
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## CLI Flags
|
|
85
|
+
|
|
86
|
+
| Flag | Description |
|
|
87
|
+
|------|-------------|
|
|
88
|
+
| `--yolo` | Skip all permission prompts |
|
|
89
|
+
| `--plan` | Plan mode — reason before coding |
|
|
90
|
+
| `--model`, `-m` | Model to use |
|
|
91
|
+
| `--provider`, `-p` | `openrouter` or `ollama` |
|
|
92
|
+
| `--dir`, `-d` | Working directory |
|
|
93
|
+
| `--no-stream` | Disable token streaming |
|
|
94
|
+
|
|
95
|
+
## Requirements
|
|
96
|
+
|
|
97
|
+
- **Windows:** Works out of the box (native Rust binary)
|
|
98
|
+
- **Linux/macOS:** Python 3.10+ (Python fallback), or install Rust binary separately
|
|
99
|
+
- Internet connection for Azure AI / OpenRouter
|
|
100
|
+
|
|
101
|
+
## License
|
|
102
|
+
|
|
103
|
+
MIT — free to use, modify, and distribute commercially.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
*By [zero-x Corporation](https://zero-x.live) — Tamil Nadu, India*
|
|
Binary file
|
|
@@ -353,6 +353,19 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
353
353
|
except Exception:
|
|
354
354
|
pass
|
|
355
355
|
|
|
356
|
+
# ── Try native Rust binary first ─────────────────────────
|
|
357
|
+
|
|
358
|
+
native = _find_native_binary()
|
|
359
|
+
if native:
|
|
360
|
+
import subprocess
|
|
361
|
+
args_list = argv if argv is not None else sys.argv[1:]
|
|
362
|
+
try:
|
|
363
|
+
result = subprocess.run([native] + args_list)
|
|
364
|
+
return result.returncode
|
|
365
|
+
except (OSError, FileNotFoundError):
|
|
366
|
+
pass # Fall through to Python implementation
|
|
367
|
+
|
|
368
|
+
# ── Python fallback ──────────────────────────────────────
|
|
356
369
|
parser = build_parser()
|
|
357
370
|
args = parser.parse_args(argv)
|
|
358
371
|
|
|
@@ -405,5 +418,35 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
405
418
|
return 0
|
|
406
419
|
|
|
407
420
|
|
|
421
|
+
def _find_native_binary() -> str | None:
|
|
422
|
+
"""Locate the native Rust binary — bundled in package or in PATH."""
|
|
423
|
+
import shutil
|
|
424
|
+
|
|
425
|
+
# Check bundled binary in package
|
|
426
|
+
pkg_dir = os.path.dirname(os.path.abspath(__file__))
|
|
427
|
+
ext = ".exe" if sys.platform == "win32" else ""
|
|
428
|
+
bundled = os.path.join(pkg_dir, "bin", f"neuron{ext}")
|
|
429
|
+
if os.path.isfile(bundled) and os.access(bundled, os.X_OK):
|
|
430
|
+
return bundled
|
|
431
|
+
|
|
432
|
+
# Check PATH (but not ourselves — avoid infinite recursion)
|
|
433
|
+
path_binary = shutil.which(f"neuron{ext}")
|
|
434
|
+
if path_binary:
|
|
435
|
+
# Verify it's the Rust binary by checking --version output
|
|
436
|
+
import subprocess
|
|
437
|
+
try:
|
|
438
|
+
result = subprocess.run(
|
|
439
|
+
[path_binary, "--version"],
|
|
440
|
+
capture_output=True, text=True, timeout=3
|
|
441
|
+
)
|
|
442
|
+
if "NeuronCLI" in result.stdout:
|
|
443
|
+
return path_binary
|
|
444
|
+
except (OSError, subprocess.TimeoutExpired):
|
|
445
|
+
pass
|
|
446
|
+
|
|
447
|
+
return None
|
|
448
|
+
|
|
449
|
+
|
|
408
450
|
if __name__ == "__main__":
|
|
409
451
|
raise SystemExit(main())
|
|
452
|
+
|