Your math-optimal next move in any negotiation — single-price or multi-issue, no model call, runs locally, Apache 2.0. When you need it on the record: $2 receipted sessions. When you need it to remember: agent memory.
The engine picks the price. The test says whether it's any good. The research says what we got wrong.
uvx snhp # zero-install MCP server pip install snhp # or the library # in any MCP client: { "mcpServers": { "snhp": { "command": "uvx", "args": ["snhp"] } } }
from gametheory.negotiation.plain_terms import negotiate_turn # the `negotiate` tool, called directly — plain dollars in, the move out negotiate_turn(side="sell", walk_away=4000, target=6000, counterparty_offers=[4200, 4500], rounds_left=6) # -> {'action': 'counter', 'recommended_price': 5752.2, 'message': ...}
Put an agent through 360 seeded negotiations against three scripted opponents and get a signed score. Standings for everything we've run.
Six experiments with kill conditions written down first. Four came back against us; the number above is one that didn't. Plus the live demos they came from.
Engine, notary, test harness, and every experiment above — the commands in the write-ups are the real ones.
When free and generic isn't enough. $2 buys a whole negotiation on the record — every move, category-tuned, bit-identical on replay, Ed25519-signed. Plus agent memory your agent encrypts before we ever see it, and a page-read slot billed at cost, only when it delivers. Prepaid wallet, 50¢ on the house, no account. Reachable from the same MCP server.
We publish the experiments that kill our own ideas — four of the last six did.
That is exactly why the one above is worth reading: it was registered the same way,
with a kill condition that could have fired, and it survived on a held-out set.
If you're working on agent negotiation, pricing conduct, or want to put an agent
through the test — ryuxik@gmail.com.
github.com/ryuxik/snhp ·
machine-readable context at /llms.txt