Python bindings for newt-agent — agentic coder runtime (newt-core, newt-tools, newt-coder, newt-eval, newt-inference, newt-acp-worker, newt-mcp-server submodules)
Project description
Newt-Agent
Small, fast, local-first agentic coder. vi to Hermes-Agent's emacs.
A single Rust binary with a sharp, minimal tool set. It runs against your local hardware by default — no cloud bytes leave your machine unless you deliberately install a provider plugin. Opinionated, not extensible.
Why — the bridle, not just the harness
An agent harness helps the model do work; a bridle lets the operator
steer — and prove, after the fact, exactly where the horse went. Newt is an
experiment in making Object Capability (OCAP) security — long considered
theoretically correct but practically unimplementable — pragmatic inside an
agent loop, as a reusable concept
(agent-bridle)
intended to be pluggable into other harnesses, not just this one.
OCAP's algebraic construction means some questions are answered structurally, not by audit-log archaeology:
- Who acted on what, and when?
- Who granted the authority for this to do that?
- Did what they permitted actually happen — and did only what they permitted happen?
For anyone whose work lives on provenance, authority, integrity, and data sovereignty — lawyers, clinicians, data scientists — those answers have to be properties of the system, not promises in a policy document.
If it doesn't find its day in the sun, it was fun anyway.
Quick start
git clone https://github.com/Gilamonster-Foundation/newt-agent
cd newt-agent
just install # release binaries → ~/bin/newt, ~/bin/newt-mcp-server
newt code # TUI coder in the current directory
Run newt --help for every mode (worker, MCP server, doctor, config, …) —
the binary is the authority on its own surface, this file is not. Python
bindings live in newt-agent-py/ (pip install newt-agent-py, import path newt_agent).
Design laws
The invariants. Each links to the decision record that argues it.
- Local-first inference. The default binary speaks only to local
backends. Cloud providers are opt-in subprocess plugins speaking the
JSON-RPC schema in
plugins-protocol/— the opt-in is enforced at the build level, not a runtime flag. - Fail-closed OCAP. Authority is a caveat lattice, not a denylist; a
fixed safety floor no mode or grant can unlock. See
docs/decisions/agentic_object_capability_security.mdanddocs/decisions/ocap_confinement_model.md. - Small crates, zero warnings, coverage-gated.
just checkmirrors CI; the pre-push hook runs it. One operator's leverage is this discipline. - Patch, not prose. Delegated work is verified by the harness (real
diffs, real test runs —
newt-eval/), never by trusting a model's summary of itself. - Skills are on-demand context. The prompt carries an index; bodies load
when used. See
docs/decisions/agent-skills.mdand the bundled skills in.newt/bundled-skills/. - Issues are ground truth.
ROADMAP.mdsequences delivery, but GitHub issue state is authoritative — the document is only the map. - Causal ordering, not wall-clock. Timestamps are display claims; the
conversation store orders on signed per-writer ticks + content hashes. See
docs/decisions/conversation_context_architecture.md.
Field notes
The durable output of this experiment is what building it teaches about how LLMs behave inside a harness:
- Summarization-induced hallucination — context compression that summarizes a session can make the model hallucinate APIs it had already read. A confident summary is worse than a labelled absence: absence routes the model to re-read; a summary suppresses recovery.
- Truncation honesty — silent context truncation yields silently wrong answers; every fix moves the failure, it doesn't always remove it.
- Coder-driving sweet spots — where small local models are and aren't reliable at agentic coding.
- Hermes learnings — take the algorithms, refuse the architecture.
Where things live
| What | Where |
|---|---|
| Forward plan | ROADMAP.md (issue numbers are the live state) |
| Release history | CHANGELOG.md |
| Design docs & studies | docs/design/ |
| Decision records | docs/decisions/ |
| Evaluation harness | newt-eval/README.md |
| Local gate | just check (see justfile) |
License
Apache-2.0. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file newt_agent_py-0.7.2.tar.gz.
File metadata
- Download URL: newt_agent_py-0.7.2.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b1792d8f9b8b353b036ae30ada3afb8e0da84704684cd62a9d15aa0be1928cc
|
|
| MD5 |
ce5b0b3ca8d3ab56444932e6097a1a17
|
|
| BLAKE2b-256 |
ffc2cbbc3e5f62b955323b19d8f44399d1674e2635da1c26abd8c61becb56c92
|
File details
Details for the file newt_agent_py-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76fa4caa613e903e118e9823aed0b9f83cfb941fbb3189100be89cbfb8cd42e3
|
|
| MD5 |
a38532e24be146a1e3316470e7f810ec
|
|
| BLAKE2b-256 |
b709d8073c8397f9d85676cd6ff2213912bb2bfc098f794a591b34b029a046cf
|
File details
Details for the file newt_agent_py-0.7.2-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47d826ed848f5346866ab33eb9f11f61cedd0610b05bbbd5f89ba9d6c9a5c3f9
|
|
| MD5 |
2f4d0564d8e2a979506b4826b04c9b90
|
|
| BLAKE2b-256 |
2ba55829a887eb8a6e9025fb654d66d807c38fb90fdc6696c14ea500592664cf
|
File details
Details for the file newt_agent_py-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91cecac1003009dec69f1eb4feb4f13f5f8241c0c6b7ce473f26739420214f80
|
|
| MD5 |
2bd39717f7d84672e742617c9d44313a
|
|
| BLAKE2b-256 |
cdf3f069c63ef548ef651f0912de3f599242f22a4775e5afed5c538e1272ad95
|
File details
Details for the file newt_agent_py-0.7.2-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
535d4e201c9103c875a60f4f2e2699eed602d7ff2dab15f375949febf06eee68
|
|
| MD5 |
e2f591d48cc310ce48aafb4e7c8a0688
|
|
| BLAKE2b-256 |
a900143626396b241d55bc3f431cf7936d451567e068b309ae8abdb05dc99538
|
File details
Details for the file newt_agent_py-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.7 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0094a318ad88140b6bdff38903d6b4744e3b105b53278271abcfafb5341f8c1
|
|
| MD5 |
6724e5cdb6c56b4213a6fd0e26b61465
|
|
| BLAKE2b-256 |
5482d60e0a6fa6c841354e1719297bf96097847820de9bdf02dd0d7498911f2d
|
File details
Details for the file newt_agent_py-0.7.2-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ab8739c7840e9cd9703a8bf158caeeb2e76b0d5493f7132c3b1f5bb31db965e
|
|
| MD5 |
7e1a0f3ebdffe30e6ae7d57a338c026f
|
|
| BLAKE2b-256 |
dfacf6ad9e74cd93534d9508e96341af26e69020f96a4a5ca067d26ea34f92a9
|
File details
Details for the file newt_agent_py-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.7 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8edd7b8ec1eeb130999e99cf95f006f027d61a7bcec04b0be7e4ba265780413
|
|
| MD5 |
06230dc7f5b4284621fb07cbc7137e36
|
|
| BLAKE2b-256 |
8f60b7946e5d7ced2f9c7c2a1c88d3ac80b017745fd76c7713fa602a503a3bd4
|
File details
Details for the file newt_agent_py-0.7.2-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: newt_agent_py-0.7.2-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.3 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83d578b13f57e38003627dd73f7ea94ee3a700aaaf41110d0afe113a291dfd48
|
|
| MD5 |
2eacf7b838ca601109d2394eae75a877
|
|
| BLAKE2b-256 |
54e1de6b3325f2b562a5a61f6e441b7c5731d380d5f663bb3f5d70a1832e4d44
|