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.

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)

Install ness on your PATH with uv or pipx:

uv tool install ness-agent
# or: pipx install ness-agent

Then set your provider API key and base URL. OpenRouter example:

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, launch ness and set them via /configProvider (stored in global secrets.json / configs.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]'
# or: pipx 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/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.0.tar.gz (493.7 kB 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.0-py3-none-any.whl (311.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ness_agent-0.2.0.tar.gz
  • Upload date:
  • Size: 493.7 kB
  • 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.0.tar.gz
Algorithm Hash digest
SHA256 54df6f11bdff06cfdf59aff94e3856cbcbf0fd936f62acf97620600477402a9e
MD5 090b03f6514e42022232f2b67169269e
BLAKE2b-256 c8e8f9bb0c16b41be6608495f0bc71d9545ca733a00400afb906e0ded6f7dc80

See more details on using hashes here.

Provenance

The following attestation bundles were made for ness_agent-0.2.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: ness_agent-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 311.1 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58a5e8e49ebd5d81351c4c737b7974b2b1e494c3b8947072c9172371493ba18d
MD5 e4b8e30b4d581f3989fe6990d3286bca
BLAKE2b-256 8c304b4afca5c5926221c0979882d58f453873a57b16ad159e4fdc8b6fea55b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for ness_agent-0.2.0-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