Ness Agent
Ness Agent is an experimental, hackable coding-agent harness for engineers who want to own the loop. It ships as a Python SDK you can embed in your own tools and Ness, an interactive CLI for day-to-day coding sessions.
NessAgent TUI in Act mode.
0.x experimental — APIs may change until 1.0. See CHANGELOG.
Table of contents
Overview
| Component | What it is |
|---|---|
| Ness Agent SDK | LangGraph agent loop, built-in tools, permissions, memory, skills, hooks, MCP, compaction, reflection, tracing |
| Ness CLI | Terminal UI (ness), plan/act modes, git worktrees, global config, .ness/ project layout |
Installation
Requires Python 3.12+.
CLI — global install (recommended)
On Linux/Mac Os:
curl -fsSL https://nessagent.dev/install.sh | sh
On Windows:
powershell -ExecutionPolicy ByPass -c "irm https://nessagent.dev/install.ps1 | iex"
Or install it directly with uv or pipx:
uv tool install --upgrade ness-agent
# or: pipx install ness-agent
Launch ness and run /login to sign in to Codex with ChatGPT or configure an
OpenRouter API key. Codex authentication uses the installed codex CLI
app-server's managed browser/device flow and stores credentials in Ness's
isolated global config directory; it never reads or changes ~/.codex.
[!NOTE] Ness's Codex model transport is experimental. Authentication and credential management are handled by Codex app-server, while Ness sends inference requests directly to the ChatGPT Codex Responses endpoint used by Codex CLI.
For environment-based OpenRouter setup:
export OPENAI_API_KEY=your-openrouter-api-key
export OPENAI_BASE_URL=https://openrouter.ai/api/v1
Add those lines to ~/.bashrc or ~/.zshrc to persist across sessions. Alternatively, /login accepts and masks the key (stored in global secrets.json).
Ness does not automatically read or migrate a project .env file. You may
still keep local values in .env, but load them into the process explicitly
(for example, uv run --env-file .env ness) or use /config.
Optional tracing support:
uv tool install 'ness-agent[tracing]'
Ensure ~/.local/bin (uv) or pipx's bin directory is on your PATH.
SDK — library install
For embedding the agent harness in your own Python project (use a venv):
pip install ness-agent
pip install 'ness-agent[tracing]' # optional
# In a uv-managed project (adds to pyproject.toml):
uv add ness-agent
uv add ness-agent --extra tracing # optional
From source (contributors):
git clone https://github.com/Sagnnik/ness-agent.git
cd ness-agent
uv sync
uv run ness
Editable global install from a clone:
git clone https://github.com/Sagnnik/ness-agent.git
cd ness-agent
uv tool install -e .
ness
Quick start — CLI (Ness)
ness
/init # create .ness/ and global config
Headless one-shot:
ness -p "what does the auth module do?"
Parallel isolated session:
ness --worktree feature-x
Full CLI reference: docs/cli.md · Configuration: docs/configuration.md
Quick start — SDK
import asyncio
from langchain_core.tools import tool
from ness_agent import NessAgent, PromptLayers, PromptLayersConfig
@tool
def ping() -> str:
"""Return pong."""
return "pong"
async def main() -> None:
agent = NessAgent(
model=your_chat_model,
tools=[ping],
prompt=PromptLayers(PromptLayersConfig(l0="You are a helpful agent.", persona="Be concise.")),
)
session = agent.session(thread_id="demo-1")
result = await session.run("say hello")
print(result.assistant_message)
asyncio.run(main())
Full SDK guide: docs/sdk.md · Architecture: docs/architecture.md
Documentation
| Guide | Description |
|---|---|
| docs/README.md | Documentation index |
| docs/sdk.md | SDK usage, public API, tracing |
| docs/sdk-api.md | SDK API reference — signatures and contracts |
| docs/cli.md | Ness TUI, slash commands, MCP, permissions |
| docs/configuration.md | Global config, .ness/ layout, env vars |
| docs/architecture.md | Prompt layers, modes, memory, compaction |
Contributing
Contributions welcome. See CONTRIBUTING.md for dev setup and PR guidelines.
License
Licensed under the Apache License 2.0. See LICENSE.
Metadata
Release files for ness-agent 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ness_agent-0.2.4.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ness_agent-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / ness_agent-0.2.4.tar.gz
| Download URL | ness_agent-0.2.4.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d38881cdc13b7593569f7381caf7023e985a094d186a9b39fb1df92a7f9ce8cd
|
|
BLAKE2b-256 checksum How to use checksums |
4efec160c99d7f55df9dfba75ad23b572d44af9f185d3bab3ddcd6d3a109b0ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logRelease files / ness_agent-0.2.4-py3-none-any.whl
| Download URL | ness_agent-0.2.4-py3-none-any.whl |
|---|---|
| Size | 368.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
feb1fe05cdcd765f040cfd5ee5d4f358597d93ef8d4af8e0c7546e6d6196c121
|
|
BLAKE2b-256 checksum How to use checksums |
9b943b67bbb0da4214ec3a71bb59a945a1c36e4acc4737009dee11ba600677b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency log