Iii iii-browser-sdk
install
source · Clone the upstream repo
git clone https://github.com/iii-hq/iii
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/iii-hq/iii "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/iii-browser-sdk" ~/.claude/skills/iii-hq-iii-iii-browser-sdk && rm -rf "$T"
manifest:
skills/iii-browser-sdk/SKILL.mdsource content
Browser SDK
The browser-optimized SDK for connecting web applications to the iii engine.
Documentation
Full API reference: https://iii.dev/docs/api-reference/sdk-browser
Install
npm install iii-browser-sdk
Key Exports
| Export | Purpose |
|---|---|
| Connect to the engine via WebSocket |
| Register a browser-side function handler |
| Bind a trigger to a function |
| Invoke a function |
| Fire-and-forget invocation mode |
| Durable async invocation mode |
| Custom trigger type registration |
| Binary streaming between workers |
Key Differences from Node SDK
- No custom WebSocket headers — uses query parameters for auth tokens
- No
export — use browser console or your own loggingLogger - No worker metadata telemetry reporting
- Connects directly via
orws://
URL (nowss://
URL options)registerWorker - Same function/trigger/channel API surface as the Node SDK
Quick Start
import { registerWorker, TriggerAction } from 'iii-browser-sdk' const iii = registerWorker('ws://localhost:49135') iii.registerFunction('ui::greet', async (data) => { return { message: `Hello, ${data.name}!` } }) 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(), })
Common Patterns
Code using this pattern commonly includes, when relevant:
— connect from browserregisterWorker('ws://host:49135')
— connect with TLS in productionregisterWorker('wss://host:49135')
— register browser-side handleriii.registerFunction(id, handler)
— call server-side functionsiii.trigger({ function_id, payload })
— fire-and-forget from browseriii.trigger({ ..., action: TriggerAction.Void() })- Stream connections at
for real-time updatesws://host:3112/stream/{name}/{group}
Pattern Boundaries
- For server-side Node.js workers, prefer
.iii-node-sdk - For real-time stream consumption patterns, see
.iii-realtime-streams - For Python or Rust workers, see
oriii-python-sdk
.iii-rust-sdk - Stay with
when the client is a web browser.iii-browser-sdk
When to Use
- Use this skill when the task is primarily about
in the iii engine.iii-browser-sdk - Triggers when the request directly asks for this pattern or an equivalent implementation.
Boundaries
- Never use this skill as a generic fallback for unrelated tasks.
- You must not apply this skill when a more specific iii skill is a better fit.
- Always verify environment and safety constraints before applying examples from this skill.