noah-code 0.1.0__py3-none-any.whl
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.
- noah_code/__init__.py +3 -0
- noah_code/__main__.py +6 -0
- noah_code/agent.py +378 -0
- noah_code/approvals.py +105 -0
- noah_code/cli.py +422 -0
- noah_code/commands.py +70 -0
- noah_code/config.py +279 -0
- noah_code/custom_commands.py +103 -0
- noah_code/event_bridge.py +132 -0
- noah_code/events.py +27 -0
- noah_code/host.py +662 -0
- noah_code/macos_sandbox.py +142 -0
- noah_code/mcp_setup.py +91 -0
- noah_code/permissions.py +400 -0
- noah_code/sessions.py +157 -0
- noah_code/skills_setup.py +51 -0
- noah_code/snapshots.py +313 -0
- noah_code/tools/__init__.py +6 -0
- noah_code/tools/git_tools.py +44 -0
- noah_code/tools/workspace_tools.py +269 -0
- noah_code/ui/__init__.py +6 -0
- noah_code/ui/console.py +88 -0
- noah_code/ui/protocol.py +33 -0
- noah_code/ui/textual.css +9 -0
- noah_code/ui/textual_app.py +435 -0
- noah_code/updates.py +184 -0
- noah_code/workspace.py +49 -0
- noah_code-0.1.0.dist-info/METADATA +173 -0
- noah_code-0.1.0.dist-info/RECORD +31 -0
- noah_code-0.1.0.dist-info/WHEEL +4 -0
- noah_code-0.1.0.dist-info/entry_points.txt +4 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: noah-code
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Noah Code terminal coding agent, built on NVIDIA OO Agents (NOOA)
|
|
5
|
+
Project-URL: Homepage, https://github.com/skundu42/noah-code
|
|
6
|
+
Project-URL: Documentation, https://github.com/skundu42/noah-code#readme
|
|
7
|
+
Project-URL: Repository, https://github.com/skundu42/noah-code.git
|
|
8
|
+
Project-URL: Issues, https://github.com/skundu42/noah-code/issues
|
|
9
|
+
Project-URL: Releases, https://github.com/skundu42/noah-code/releases
|
|
10
|
+
Author: noah-code contributors
|
|
11
|
+
License: Apache-2.0
|
|
12
|
+
Keywords: agents,coding,nooa,terminal
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
16
|
+
Classifier: Operating System :: MacOS
|
|
17
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Requires-Python: <3.14,>=3.12
|
|
22
|
+
Requires-Dist: click>=8.1.0
|
|
23
|
+
Requires-Dist: litellm<1.92.0,>=1.84.0
|
|
24
|
+
Requires-Dist: nooa-cli==0.0.8
|
|
25
|
+
Requires-Dist: nooa==0.0.8
|
|
26
|
+
Requires-Dist: packaging>=24.0
|
|
27
|
+
Requires-Dist: pydantic>=2.5.0
|
|
28
|
+
Requires-Dist: rich>=13.0.0
|
|
29
|
+
Requires-Dist: textual>=1.0.0
|
|
30
|
+
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: ruff>=0.8.0; extra == 'dev'
|
|
35
|
+
Provides-Extra: mcp
|
|
36
|
+
Requires-Dist: nooa[mcp]==0.0.8; extra == 'mcp'
|
|
37
|
+
Provides-Extra: tracing
|
|
38
|
+
Requires-Dist: nooa[tracing]==0.0.8; extra == 'tracing'
|
|
39
|
+
Provides-Extra: tui
|
|
40
|
+
Requires-Dist: textual>=1.0.0; extra == 'tui'
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
# Noah Code
|
|
44
|
+
|
|
45
|
+
[](https://pypi.org/project/noah-code/)
|
|
46
|
+
[](https://github.com/skundu42/noah-code/actions/workflows/ci.yml)
|
|
47
|
+
[](https://pypi.org/project/noah-code/)
|
|
48
|
+
|
|
49
|
+
**Noah Code** (`noah-code`) is a terminal coding agent for understanding repositories, planning
|
|
50
|
+
changes, editing files, running commands, and carrying work across persistent sessions. It is
|
|
51
|
+
built on the [NVIDIA OO Agents (NOOA)](https://github.com/NVIDIA-NeMo/labs-OO-Agents) runtime.
|
|
52
|
+
|
|
53
|
+
## Install
|
|
54
|
+
|
|
55
|
+
Install Noah Code and its managed Python runtime with one command. No existing Python, Homebrew,
|
|
56
|
+
or system package setup is required.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
curl -LsSf https://raw.githubusercontent.com/skundu42/noah-code/main/install.sh | sh
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The bootstrapper validates macOS/Linux support, installs the standalone uv package manager, and
|
|
63
|
+
downloads an isolated Python 3.12 runtime plus Noah Code. It does not modify a system Python.
|
|
64
|
+
|
|
65
|
+
Open a new terminal, move into a repository, and run:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
noah .
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Noah Code supports macOS on Apple Silicon and Intel, plus Linux on arm64 and x86_64 with Landlock
|
|
72
|
+
and seccomp support. You also need an LLM provider account such as OpenAI, Anthropic, OpenRouter or NVIDIA.
|
|
73
|
+
|
|
74
|
+
## Features
|
|
75
|
+
|
|
76
|
+
- Read files, search with ripgrep, and inspect Git status, diffs, and history.
|
|
77
|
+
- Edit files with anchored replacements, full rewrites, and concurrent-change detection.
|
|
78
|
+
- Run permission-gated shell commands with timeouts and streamed output.
|
|
79
|
+
- Follow repository instructions from `AGENTS.md`, `CLAUDE.md`, and `.noah-code/instructions.md`.
|
|
80
|
+
- Switch between implementation-focused **build** mode and read-only **plan** mode.
|
|
81
|
+
- Approve actions once or for a session with ordered `allow`, `ask`, and `deny` rules.
|
|
82
|
+
- Undo and redo journaled file edits across process restarts.
|
|
83
|
+
- Work in a full-screen TUI, a classic console, or one-shot non-interactive mode.
|
|
84
|
+
- Resume workspace-scoped sessions with todos and automatic context compaction.
|
|
85
|
+
- Extend workflows with slash commands, opt-in skills, MCP servers, model selection, and tracing.
|
|
86
|
+
|
|
87
|
+
## Quick start
|
|
88
|
+
|
|
89
|
+
Start the TUI in the current repository and describe the desired end state in plain language:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
noah .
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
Find the cause of the failing parser tests, implement the smallest safe fix, and run the
|
|
97
|
+
focused test file.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Common commands:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Open another workspace
|
|
104
|
+
noah /path/to/repository
|
|
105
|
+
|
|
106
|
+
# Use the line-oriented console
|
|
107
|
+
noah --console .
|
|
108
|
+
|
|
109
|
+
# Run one task and exit
|
|
110
|
+
noah run "Explain how authentication is wired" .
|
|
111
|
+
|
|
112
|
+
# Allow actions that would normally ask; explicit deny rules still apply
|
|
113
|
+
noah run --auto "Fix the failing unit test" .
|
|
114
|
+
|
|
115
|
+
# Inspect and plan without editing
|
|
116
|
+
noah --mode plan .
|
|
117
|
+
|
|
118
|
+
# Resume work
|
|
119
|
+
noah --continue .
|
|
120
|
+
noah --session SESSION_ID .
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Check the installation or inspect resolved configuration with:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
noah --version
|
|
127
|
+
noah doctor .
|
|
128
|
+
noah config show .
|
|
129
|
+
noah update --check
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
The package also installs `noah-code` and `nc` as equivalent entry points. Because `nc` commonly
|
|
133
|
+
refers to netcat, `noah` or `noah-code` is recommended. Keep provider API keys in the environment
|
|
134
|
+
or trusted NOOA user configuration, never in a repository or Noah Code session metadata.
|
|
135
|
+
|
|
136
|
+
## Documentation
|
|
137
|
+
|
|
138
|
+
- [Interactive interface and sessions](docs/interactive-reference.md)
|
|
139
|
+
- [Configuration, modes, permissions, and updates](docs/configuration.md)
|
|
140
|
+
- [Generated-code security](docs/security.md)
|
|
141
|
+
- [Custom commands, skills, MCP, and tracing](docs/extensions.md)
|
|
142
|
+
- [Development, CI, and releases](docs/development.md)
|
|
143
|
+
|
|
144
|
+
## Updates
|
|
145
|
+
|
|
146
|
+
Noah Code checks PyPI for new versions at most once every 24 hours and updates uv-managed
|
|
147
|
+
installations automatically. To check or update immediately:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
noah update --check
|
|
151
|
+
noah update
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Development
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
uv sync --extra dev
|
|
158
|
+
uv run ruff check src tests
|
|
159
|
+
uv run pytest tests
|
|
160
|
+
uv build
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
See the [development guide](docs/development.md) for platform checks and the release process.
|
|
164
|
+
|
|
165
|
+
## License
|
|
166
|
+
|
|
167
|
+
Apache-2.0, as declared in the project metadata. NOOA remains separately licensed by its upstream
|
|
168
|
+
project.
|
|
169
|
+
|
|
170
|
+
## Credits
|
|
171
|
+
|
|
172
|
+
Built on [NVIDIA OO Agents (NOOA)](https://github.com/NVIDIA-NeMo/labs-OO-Agents). Thanks to the
|
|
173
|
+
NVIDIA NeMo team and NOOA contributors for the agent runtime that powers Noah Code.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
noah_code/__init__.py,sha256=MDl7OQK6NwMlNa3a09kdBCkm-OUokLh0pod6fajnMFA,85
|
|
2
|
+
noah_code/__main__.py,sha256=4xEhswSHLJhoqaA9atd_KxC4IHfCnS9mf3Qv526iW08,128
|
|
3
|
+
noah_code/agent.py,sha256=WPQLULBENQDdCQbfUcyTd8KpjJ-crXRC97KO_yMl2-c,14282
|
|
4
|
+
noah_code/approvals.py,sha256=CaPHFu08_WmHH1x6q6W5Xn5DFHO1vqApe2yHV0BkuBY,3311
|
|
5
|
+
noah_code/cli.py,sha256=K7QH8QLifRKJRV_2lzy4F0yQiwktHO3SDp-bb_w6Q0o,13429
|
|
6
|
+
noah_code/commands.py,sha256=b0T-_G7wLdCZG5nIpGc1ipuoLQpZfDbt7VRjL4FtBVk,2556
|
|
7
|
+
noah_code/config.py,sha256=zNFfIXF-_8iMgX_mTURxal874bz1d5M9QzNbjTOy2RY,9217
|
|
8
|
+
noah_code/custom_commands.py,sha256=dyhx5DxD01r9OSHX-F7vZWhn-u_md4fBPU7_jzUpUQk,3253
|
|
9
|
+
noah_code/event_bridge.py,sha256=ukUwRPdk60AEQIVTQXVEXbvh2oKqw_RnUmhY154u9d4,4422
|
|
10
|
+
noah_code/events.py,sha256=sXq64y7SfyC0exQV_nL5bFsS40XV6YeN4nz2RdEuhwQ,590
|
|
11
|
+
noah_code/host.py,sha256=xIkn0F12_v0Rk5FYP798SH-iISOGIX-Jk3kcEyOWuxg,26310
|
|
12
|
+
noah_code/macos_sandbox.py,sha256=LuII0cFe5xjgqDI7ZFruRF6ahsKf0ExZdWjGye8C5t4,4968
|
|
13
|
+
noah_code/mcp_setup.py,sha256=45gc98sisf4ijD85KgvXMi2eIuUBy1HAQGPQtc7e7Uw,2817
|
|
14
|
+
noah_code/permissions.py,sha256=sgLtDJK6-4Rn5dNnYUy_bdc_GIhmD26lx3Qbj7Xn0jY,13162
|
|
15
|
+
noah_code/sessions.py,sha256=M7ln_fWWPI6uBnM4dSvzqer9CwJqegEEMzGIec-jbD0,5695
|
|
16
|
+
noah_code/skills_setup.py,sha256=6Q4Ronry-dXULtM0N-yzuxTs-_PUIYPfDDpdeTSjVJU,1792
|
|
17
|
+
noah_code/snapshots.py,sha256=yyJyxPctBai07R2BKDtIWLl_aG5BQNZz4KG2Km4cxhs,11464
|
|
18
|
+
noah_code/updates.py,sha256=1rdQk_nw_VgfLRWxZnCw8Be35-n9N-FFN7Q--pa3whM,6181
|
|
19
|
+
noah_code/workspace.py,sha256=8s6vR2j5uTqp7cx3uDtOTkliTCEghpxf2zH2nmHieXw,1498
|
|
20
|
+
noah_code/tools/__init__.py,sha256=0U_TdZm4tEJHG2hDxW5wAYeZJ_vYMg6vdIEGZI6Hykg,190
|
|
21
|
+
noah_code/tools/git_tools.py,sha256=ccGUHJ5WdYfM1yZEE5rZq5GcZmO4mBZhmYnhHSLiHNc,1449
|
|
22
|
+
noah_code/tools/workspace_tools.py,sha256=usYXQkjrQ42sakFEUYJViVC6MLiyD6pYtdYxok9o3sc,11186
|
|
23
|
+
noah_code/ui/__init__.py,sha256=1gIQWeM80hGx-q1pHYq6jV9IMkKonH-2pPefdI7LTcs,158
|
|
24
|
+
noah_code/ui/console.py,sha256=QVRThuo3rINY0qcyXKeB4-7M2APIXCtopDZuYVI5MBM,3435
|
|
25
|
+
noah_code/ui/protocol.py,sha256=I6UEi9_UHMCOHFpR641FdHZWGgIfpwGWP09Z5VKKoak,993
|
|
26
|
+
noah_code/ui/textual_app.py,sha256=IGpco7Ezt8RSCBR2d4ONVkGp9uG-fH8RxSUGt5RedBA,16152
|
|
27
|
+
noah_code/ui/textual.css,sha256=omQ2HNiCdXGwSYZHDpmRMEelWSt49kpVXeVxxNMMCXI,263
|
|
28
|
+
noah_code-0.1.0.dist-info/METADATA,sha256=fSe2OZywgLZeaKMF53jbWFg94k35Gg6R1dUFlEeTT7M,6051
|
|
29
|
+
noah_code-0.1.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
30
|
+
noah_code-0.1.0.dist-info/entry_points.txt,sha256=wNqq2ncLl_LCUOddHc5xsNq8j1_xcOFR8vJ008se6Fk,99
|
|
31
|
+
noah_code-0.1.0.dist-info/RECORD,,
|