r/LocalLLaMA · · 1 min read

Toolnexus: a vendor-neutral tool-calling layer for LLMs, byte-identical across 5 languages (with real human-in-the-loop suspend/resume)

Mirrored from r/LocalLLaMA for archival readability. Support the source by reading on the original site.

Toolnexus is a small, vendor-neutral library that gives any LLM the dynamic tool-calling an agent framework has, but ported byte-identically across five languages (JavaScript, Python, Go, Java, C#).

The idea: MCP servers, agent skills, your own functions, HTTP endpoints, the built-in shell/file tools, and remote A2A agents are all the same thing to a model — a named, described, schema'd callable. toolnexus unifies them behind one Tool interface, emits the schema in OpenAI / Anthropic / Gemini formats, and ships a client with the tool-calling loop built in (parallel + chained calls, streaming, hooks, retries, conversation memory, metrics).

Three lines to a working agent:

const tk = await createToolkit({ mcpConfig: "./mcp.json", skillsDir: "./skills" }) const client = createClient({ baseUrl, style: "openai", model }) await client.run("do the thing", { toolkit: tk }) 

The part I'm most happy with is human-in-the-loop as a first-class primitive: when a tool needs a person — an approval, an OAuth login, a "decide this" — the loop doesn't fail, it suspends, surfaces a typed request, and resumes exactly where it left off once you answer (synchronously, or durably hours later from a chat). It also bridges MCP elicitation into the same mechanism.

It's also an inbound endpoint: the assembled toolkit can be re-served as an MCP server or an A2A agent, so other agents can call your tools.

The whole point of the five ports is parity — the same examples/ fixtures produce the same behavior everywhere; that's enforced in CI. Docs (with a short narrated demo):

https://muthuishere.github.io/toolnexus/ ·

Repo: https://github.com/muthuishere/toolnexus

submitted by /u/muthuishere2101
[link] [comments]

Discussion (0)

Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.

Sign in →

No comments yet. Sign in and be the first to say something.

More from r/LocalLLaMA