Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
iii-hq avatar

Iii Sdk Reference

  • 1.3k installs
  • 18.6k repo stars
  • Updated August 5, 2026
  • iii-hq/iii

iii-sdk-reference is an agent skill that documents iii SDK APIs, types, modules, and configuration across Node.js, browser, Python, and Rust so developers implement agents, CLIs, and backend integrations without guessing

About

iii-sdk-reference is the language-specific API companion for the iii-hq stack. It documents installation and usage for npm package iii-sdk on TypeScript and Node.js, iii-browser-sdk for browser apps, pip package iii-sdk for Python, and cargo crate iii-sdk for Rust. The skill covers worker initialization, function and trigger registration, invocation, channels, logging, OpenTelemetry hooks, and language-specific caveats. Developers reach for it while implementing—not when first learning the Function, Trigger, Worker model covered by iii-core-primitives. Use iii-error-handling alongside for exceptions. Typical tasks include choosing the right SDK package, wiring OpenTelemetry, and avoiding browser versus Node initialization mistakes. It accelerates agent, CLI, and backend integration work where accurate signatures matter more than architecture pattern selection.

  • API reference
  • Type signatures
  • Module index
  • Configuration options
  • Integration lookup

Iii Sdk Reference by the numbers

  • 1,333 all-time installs (skills.sh)
  • +48 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #219 of 1,879 Documentation skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/iii-hq/iii --skill iii-sdk-reference

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.3k
repo stars18.6k
Last updatedAugust 5, 2026
Repositoryiii-hq/iii

How do you install and use the iii SDK in each language?

Look up iii SDK APIs, types, modules, and configuration options while implementing agents, CLIs, or backend integrations without guessing method signatures.

Who is it for?

Developers implementing iii integrations in Node.js, browser, Python, or Rust who need accurate SDK APIs during coding.

Skip if: First-time iii concept learning or multi-step architecture planning without open SDK code.

When should I use this skill?

The user asks about iii-sdk install commands, worker init, function registration, channels, logging, or OpenTelemetry in a specific language.

What you get

Correct SDK package choice with worker initialization, registration, invocation, and observability configuration

  • SDK integration code
  • Worker and trigger registration

By the numbers

  • Covers 4 SDK targets: Node iii-sdk, browser iii-browser-sdk, Python iii-sdk, Rust iii-sdk

Files

SKILL.mdMarkdownGitHub ↗

SDK Reference

Use this skill for language-specific SDK details. Use iii-core-primitives for the common model and iii-error-handling for exception handling.

Install

# TypeScript / Node.js
npm install iii-sdk

# Browser apps
npm install iii-browser-sdk

# Python
pip install iii-sdk

# Rust
cargo add iii-sdk

Choose the SDK

SDKPackageBest forImportant caveat
Node.jsiii-sdkServer-side TypeScript/JavaScript workersSupports custom headers, Logger, OpenTelemetry, HTTP-invoked functions
Browseriii-browser-sdkWeb apps and interactive UI callbacksConnect through an RBAC-protected listener; keep secrets server-side
Pythoniii-sdkSync or async Python workersUse trigger_async inside async handlers
Rustiii-sdkHigh-performance tokio workersHandler error type should map into iii_sdk::Error

Logger/OpenTelemetry, HTTP request/response types, stream, queue, and worker-connection types live in the helpers package — @iii-dev/helpers (Node, with submodules like /observability and /http) or iii-helpers (Python iii_helpers.*, Rust iii_helpers::*) — installed alongside the SDK.

Common API Map

CapabilityNodePythonRust
Connect workerregisterWorker(url, options?)register_worker(address, options?)register_worker(url, InitOptions)
Register local functionregisterFunction(id, handler, options?)register_function(id, handler, **options)register_function(RegisterFunction::new(...))
Register triggerregisterTrigger({ type, function_id, config })register_trigger({...})register_trigger(RegisterTriggerInput { ... })
Invoke functiontrigger({ function_id, payload })trigger(request) / trigger_async(request)trigger(TriggerRequest)
Durable enqueueTriggerAction.Enqueue({ queue }){"type": "enqueue", "queue": name}TriggerAction::Enqueue { queue }
ChannelscreateChannel()create_channel() / create_channel_async()create_channel(None).await

Node.js

import { registerWorker } from "iii-sdk";
import { Logger } from "@iii-dev/helpers/observability";

const iii = registerWorker("ws://localhost:49134", {
  workerName: "node-worker",
  invocationTimeoutMs: 30000,
});

iii.registerFunction("users::lookup", async (input) => {
  new Logger().info("looking up user", { userId: input.userId });
  return { userId: input.userId, name: "Ada" };
});

Node supports custom WebSocket headers, Logger, OpenTelemetry options, HTTP-invoked function registration, trigger metadata, channels, and custom trigger types.

Browser

import { registerWorker, TriggerAction } from "iii-browser-sdk";

const iii = registerWorker("wss://api.example.com/worker?token=session-token");

const result = await iii.trigger({
  function_id: "backend::get-user",
  payload: { userId: "123" },
});

await iii.trigger({
  function_id: "analytics::track",
  payload: { event: "page_view" },
  action: TriggerAction.Void(),
});

Do not expose the private engine worker port to untrusted browsers. Browser workers cannot send custom WebSocket headers and must not hold backend secrets.

Python

from iii import InitOptions, register_worker
from iii_helpers.observability import Logger

iii = register_worker(
    address="ws://localhost:49134",
    options=InitOptions(worker_name="python-worker"),
)

def lookup_user(data):
    Logger().info("looking up user", {"userId": data["userId"]})
    return {"userId": data["userId"], "name": "Ada"}

iii.register_function("users::lookup", lookup_user)

Python handlers may be sync or async. Use await iii.trigger_async(request) inside async handlers, and iii.trigger(request) in sync contexts. HttpResponse (from iii_helpers.http) uses camelCase statusCode.

Rust

use iii_sdk::{register_worker, InitOptions, RegisterFunction};
use serde_json::json;

let iii = register_worker("ws://127.0.0.1:49134", InitOptions::default());

iii.register_function(
    RegisterFunction::new("users::lookup", |input: serde_json::Value| {
        Ok(json!({ "userId": input["userId"], "name": "Ada" }))
    }).description("Look up a user"),
)?;

Rust supports typed handlers and schema extraction when input/output types derive schemars::JsonSchema. Add the otel feature when using OpenTelemetry helpers.

Channels

  • Use channels for binary data, large payloads, or streaming transfer between workers.
  • Pass readerRef or writerRef through a function payload.
  • Reconstruct readers/writers from refs in consumers when the SDK requires it.

When to Use

  • Use this skill for package names, SDK exports, initialization options, browser security constraints,

channel API details, and language-specific syntax.

  • Use this when a task asks for Python or Rust examples and the issue is SDK syntax rather than iii

architecture.

Boundaries

  • For the common Function/Trigger/Worker model, built-in trigger schemas, custom triggers, and

invocation mode decisions, use iii-core-primitives.

  • For deployment config, queue adapter policy, worker manager, RBAC listeners, and ports, use

iii-engine-config.

  • For retryability and exception classes, use iii-error-handling.

Related skills

FAQ

Which iii SDK package should browser apps use?

iii-sdk-reference directs browser apps to npm install iii-browser-sdk, while Node.js and TypeScript servers use npm install iii-sdk. Python and Rust projects use pip install iii-sdk and cargo add iii-sdk respectively.

What topics does iii-sdk-reference cover beyond installation?

iii-sdk-reference documents worker initialization, function and trigger registration, invocation modes, channels, logging, OpenTelemetry setup, and language-specific caveats across Node, browser, Python, and Rust SDKs.

Documentationdocsintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.