nc://kiwi

v0.1.0Pinned
ThomSharktools/nodecode-kiwi: Find suppliers and negotiate purchases on the Kiwi network: search, RFQs, quotes, agreements. - a rewrite of harrylabsj/hermes-plugin-kiwi (Apache-2.0), credited to harrylabsj98df6a3· 10 Nov1 commit
test2 filescell.lisp14.6 KBclient.lisp9.5 KBLICENSE11.1 KB

nodecode-kiwi

Kiwi Buyer: find suppliers on the Kiwi network, send RFQs, compare quotes and negotiate a non-binding agreement. A Nodecode rewrite of harrylabsj/hermes-plugin-kiwi by harrylabsj.

Get it

Tell the agent "add the kiwi cell", or run nodecode add nc://kiwi.

Set it up

Nothing but Node.js and npm on PATH: the cell starts the buyer runtime the original registered, at the same pinned version.

{
  "kiwi": {
    "command": "npx",
    "package": "@harrylabsj/kiwi@0.12.24",
    "timeout_seconds": 120,
    "db_path": ""
  }
}
Key Default Purpose
command npx the launcher that starts the buyer runtime, or a wrapper taking -y PACKAGE mcp serve
package @harrylabsj/kiwi@0.12.24 the pinned runtime package: the tool set follows it, not this page
timeout_seconds 120 the longest one call may take, the first download included
db_path empty the runtime's SQLite store, when it should not keep its own default under the home

A blank command or package refuses the start and says which key to fill. The first call downloads the pinned package; after that it is local.

Use it

Ask in ordinary words - "find me suppliers for an insulated bottle, then get quotes for two", "what did the merchants answer", "counter at 12 yuan and show me the agreement" - and the model calls the runtime's tools:

Tool What it does
kiwi_search suppliers on the Kiwi Network, by short product words
kiwi_request_quotes start an RFQ from a purchase intent, with an idempotency key
kiwi_get_task the quotes, partial failures and pending approvals of a task
kiwi_negotiate counter-offer or clarify with one merchant
kiwi_accept_agreement accept the non-binding agreement (asks you first)
kiwi_get_agreement the agreement and its audit digest
kiwi_handoff the checkout / PO / contact entry point (asks you first)
kiwi_approve, kiwi_reject answer a pending approval after you agree
kiwi_follow_merchant, kiwi_unfollow_merchant, kiwi_list_follows, kiwi_get_follow_updates the merchants followed, and what they changed
kiwi_tools what the installed runtime answers, in its own words

/kiwi tools starts the runtime and lists the tools it answers. (help :kiwi) in eval explains the same workflow to the model: search, quote, read, negotiate, accept, hand off.

Kiwi never pays, orders or locks stock: a handoff is an entry point you finish yourself. Internet listings, when the session has web tools, are a second, separately labelled section with the platform and the original link - they are never mixed into the Network results and never sent as merchants.

What is in it

File What it is
cell.lisp the section, the 14 tools, /kiwi, the manual topic and the primer
client.lisp the runtime as a child process: one JSON-RPC handshake and one call
test/ the cell's own tests, over a stubbed stdio seam; no network

Each call starts the pinned runtime, shakes hands over MCP's stdio transport, makes its one tools/call and closes it; the buyer's state lives in the runtime's own SQLite store, so a session that dies costs nothing.

License

Apache-2.0. The runtime it starts is the original author's; see NOTICE for what was rewritten and what was left out. LICENSE is the original's, unchanged.

Add nc://kiwi

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 98df6a3.

    $ nodecode add nc://kiwi

    Or tell the agent add the kiwi cell.