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
| Language | Supported facade | Raw generated client |
|---|---|---|
| Go | sdk/go package nvoken | Client.Raw() |
| TypeScript | Client from @deepnoodle/nvoken | client.raw() |
| Python | nvoken.Client | nvoken_generated |
| Rust | nvoken::Client | nvoken::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/nvokenThe 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 --versionBefore 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
| Toolchain | Baseline |
|---|---|
| Go | 1.26.2 |
| Node.js / TypeScript | Node 24 / TypeScript 5.8.3 |
| Python | 3.10+ (CI uses 3.12) |
| Rust | Stable toolchain with rustfmt |
| OpenAPI Generator runtime | Java 21 |
The generated transports refresh with make sdk-generate; make sdk-check
builds and tests every SDK and the CLI.