nvoken

Guides

SDKs & CLI

nvoken ships supported workflow SDKs for Go, TypeScript, Python, and Rust, plus a client CLI — all generated from one OpenAPI contract.

nvoken ships supported workflow facades for Go, TypeScript, Python, and Rust. They are generated from openapi/runtime.yaml, then wrapped with the durable semantics an ordinary host needs: exact-request admission replay, typed errors, bounded polling, cursor pagination, resumable Session SSE, host ToolCall result replay, callback verification, and model discovery.

Packages

LanguageSupported facadeRaw generated client
Gosdk/go package nvokenClient.Raw()
TypeScriptClient from @deepnoodle/nvokenclient.raw()
Pythonnvoken.Clientnvoken_generated
Rustnvoken::Clientnvoken::apis

Each package directory contains an executable facade-only quickstart. A local wait timeout or a dropped stream stops only the caller; use explicit cancel to change durable Invocation state. Keep the same idempotency key and request after an uncertain admission response.

All four handwritten facades follow one cross-language surface convention: lazy Invocation handles, generated idempotency for ordinary calls, actionable and terminal waits, direct Invocation event streams, symmetric collection helpers, typed errors, and an explicit raw generated-client escape hatch.

Install the TypeScript SDK

npm install @deepnoodle/nvoken

The TypeScript SDK covers actionable host-tool waits, schema-bound tool and structured-output types, Agent/tenant Session identity, exact host-key recovery, pagination, and fixed-cut transcript draining.

The client CLI

The nvoken binary is a Runtime client; nvokend is the service daemon. Install the matching official release of both commands:

brew install deepnoodle-ai/tap/nvoken
nvoken --version
nvokend --version

Before device login exists, commands require NVOKEN_API_KEY. Endpoint precedence is --base-url, NVOKEN_BASE_URL, the JSON config file, then http://localhost:8080. The default config is $XDG_CONFIG_HOME/nvoken/config.json:

{ "base_url": "https://runtime.example.com" }

Use --json before the command for machine-readable output. The CLI covers durable invoke, Invocation get/result/list/wait/cancel, Session get/list/messages/transcript/stream, model discovery and pricing, and ToolCall result submission. invocation result prints the composed result: the Invocation, its canonical messages, and the assistant text.

Development baselines

ToolchainBaseline
Go1.26.2
Node.js / TypeScriptNode 24 / TypeScript 5.8.3
Python3.10+ (CI uses 3.12)
RustStable toolchain with rustfmt
OpenAPI Generator runtimeJava 21

The generated transports refresh with make sdk-generate; make sdk-check builds and tests every SDK and the CLI.