Metadata-Version: 2.4
Name: noah-code
Version: 0.1.0
Summary: Noah Code terminal coding agent, built on NVIDIA OO Agents (NOOA)
Project-URL: Homepage, https://github.com/skundu42/noah-code
Project-URL: Documentation, https://github.com/skundu42/noah-code#readme
Project-URL: Repository, https://github.com/skundu42/noah-code.git
Project-URL: Issues, https://github.com/skundu42/noah-code/issues
Project-URL: Releases, https://github.com/skundu42/noah-code/releases
Author: noah-code contributors
License: Apache-2.0
Keywords: agents,coding,nooa,terminal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Requires-Python: <3.14,>=3.12
Requires-Dist: click>=8.1.0
Requires-Dist: litellm<1.92.0,>=1.84.0
Requires-Dist: nooa-cli==0.0.8
Requires-Dist: nooa==0.0.8
Requires-Dist: packaging>=24.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: rich>=13.0.0
Requires-Dist: textual>=1.0.0
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Provides-Extra: mcp
Requires-Dist: nooa[mcp]==0.0.8; extra == 'mcp'
Provides-Extra: tracing
Requires-Dist: nooa[tracing]==0.0.8; extra == 'tracing'
Provides-Extra: tui
Requires-Dist: textual>=1.0.0; extra == 'tui'
Description-Content-Type: text/markdown

# Noah Code

[![PyPI](https://img.shields.io/pypi/v/noah-code.svg)](https://pypi.org/project/noah-code/)
[![CI](https://github.com/skundu42/noah-code/actions/workflows/ci.yml/badge.svg)](https://github.com/skundu42/noah-code/actions/workflows/ci.yml)
[![Python](https://img.shields.io/pypi/pyversions/noah-code.svg)](https://pypi.org/project/noah-code/)

**Noah Code** (`noah-code`) is a terminal coding agent for understanding repositories, planning
changes, editing files, running commands, and carrying work across persistent sessions. It is
built on the [NVIDIA OO Agents (NOOA)](https://github.com/NVIDIA-NeMo/labs-OO-Agents) runtime.

## Install

Install Noah Code and its managed Python runtime with one command. No existing Python, Homebrew,
or system package setup is required.

```bash
curl -LsSf https://raw.githubusercontent.com/skundu42/noah-code/main/install.sh | sh
```

The bootstrapper validates macOS/Linux support, installs the standalone uv package manager, and
downloads an isolated Python 3.12 runtime plus Noah Code. It does not modify a system Python.

Open a new terminal, move into a repository, and run:

```bash
noah .
```

Noah Code supports macOS on Apple Silicon and Intel, plus Linux on arm64 and x86_64 with Landlock
and seccomp support. You also need an LLM provider account such as OpenAI, Anthropic, OpenRouter or NVIDIA.

## Features

- Read files, search with ripgrep, and inspect Git status, diffs, and history.
- Edit files with anchored replacements, full rewrites, and concurrent-change detection.
- Run permission-gated shell commands with timeouts and streamed output.
- Follow repository instructions from `AGENTS.md`, `CLAUDE.md`, and `.noah-code/instructions.md`.
- Switch between implementation-focused **build** mode and read-only **plan** mode.
- Approve actions once or for a session with ordered `allow`, `ask`, and `deny` rules.
- Undo and redo journaled file edits across process restarts.
- Work in a full-screen TUI, a classic console, or one-shot non-interactive mode.
- Resume workspace-scoped sessions with todos and automatic context compaction.
- Extend workflows with slash commands, opt-in skills, MCP servers, model selection, and tracing.

## Quick start

Start the TUI in the current repository and describe the desired end state in plain language:

```bash
noah .
```

```text
Find the cause of the failing parser tests, implement the smallest safe fix, and run the
focused test file.
```

Common commands:

```bash
# Open another workspace
noah /path/to/repository

# Use the line-oriented console
noah --console .

# Run one task and exit
noah run "Explain how authentication is wired" .

# Allow actions that would normally ask; explicit deny rules still apply
noah run --auto "Fix the failing unit test" .

# Inspect and plan without editing
noah --mode plan .

# Resume work
noah --continue .
noah --session SESSION_ID .
```

Check the installation or inspect resolved configuration with:

```bash
noah --version
noah doctor .
noah config show .
noah update --check
```

The package also installs `noah-code` and `nc` as equivalent entry points. Because `nc` commonly
refers to netcat, `noah` or `noah-code` is recommended. Keep provider API keys in the environment
or trusted NOOA user configuration, never in a repository or Noah Code session metadata.

## Documentation

- [Interactive interface and sessions](docs/interactive-reference.md)
- [Configuration, modes, permissions, and updates](docs/configuration.md)
- [Generated-code security](docs/security.md)
- [Custom commands, skills, MCP, and tracing](docs/extensions.md)
- [Development, CI, and releases](docs/development.md)

## Updates

Noah Code checks PyPI for new versions at most once every 24 hours and updates uv-managed
installations automatically. To check or update immediately:

```bash
noah update --check
noah update
```

## Development

```bash
uv sync --extra dev
uv run ruff check src tests
uv run pytest tests
uv build
```

See the [development guide](docs/development.md) for platform checks and the release process.

## License

Apache-2.0, as declared in the project metadata. NOOA remains separately licensed by its upstream
project.

## Credits

Built on [NVIDIA OO Agents (NOOA)](https://github.com/NVIDIA-NeMo/labs-OO-Agents). Thanks to the
NVIDIA NeMo team and NOOA contributors for the agent runtime that powers Noah Code.
