Skip to main content

Ness Agent — hackable coding-agent harness

Ness Agent

CI PyPI Python License

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 terminal UI showing project context, tool execution, and Act mode

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

Both are included in the ness-agent PyPI package. OpenRouter-compatible chat models, native tool-calling, cache-safe summary compaction, and filesystem-driven extension points under .ness/.

Installation

Requires Python 3.12+.

CLI — global install (recommended)

On Linux/Mac Os:

curl -fsSL https://nessagent.dev/install.sh | sh

On Windows:

powershell -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 use either a Codex subscription or an OpenRouter API key. Codex sign-in uses the installed codex CLI's managed browser/device flow and stores credentials in Ness's isolated global config directory; it never reads or changes ~/.codex.

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ness_agent-0.2.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ness_agent-0.2.1-py3-none-any.whl (339.4 kB view details)

Uploaded Python 3

File details

Details for the file ness_agent-0.2.1.tar.gz.

File metadata

  • Download URL: ness_agent-0.2.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ness_agent-0.2.1.tar.gz
Algorithm Hash digest
SHA256 55bb61f057792085060f9cc2e48c71f179b364bdd98b05fdc1cdb59df842d125
MD5 8f7ec56e60ae8255e778d34d551fcc99
BLAKE2b-256 b49855d273f2109af69bd530adfd008ce1bb21a72a3a1f129932b9ee67e4006d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ness_agent-0.2.1.tar.gz:

Publisher: publish.yml on Sagnnik/ness-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ness_agent-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: ness_agent-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 339.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ness_agent-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8da2e27c3039dc0685de0d6b4049f1c5a60c9ccfaab2e9e4292bebadc6e83514
MD5 95806ee5b87fe07e8944fa98751d8578
BLAKE2b-256 7e22618c922ead9117d1e76aa76399383673732914a565f38d5371d13577da55

See more details on using hashes here.

Provenance

The following attestation bundles were made for ness_agent-0.2.1-py3-none-any.whl:

Publisher: publish.yml on Sagnnik/ness-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page