Browser SDK for connecting to the iii engine from web applications via WebSocket. Use when building browser-based clients that register functions, invoke triggers, or consume streams from the frontend.
94
92%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
The browser-optimized SDK for connecting web applications to the iii engine.
Full API reference: https://iii.dev/docs/api-reference/sdk-browser
npm install iii-browser-sdk
| Export | Purpose |
|---|---|
registerWorker(address, options?) | Connect to the engine via WebSocket |
registerFunction(id, handler) | Register a browser-side function handler |
registerTrigger({ type, function_id, config, metadata? }) | Bind a trigger to a function |
trigger({ function_id, payload, action? }) | Invoke a function |
TriggerAction.Void() | Fire-and-forget invocation mode |
TriggerAction.Enqueue({ queue }) | Durable async invocation mode |
registerTriggerType({ id, description }, { registerTrigger, unregisterTrigger }) | Custom trigger type registration |
createChannel() | Binary streaming between workers |
Logger export — use browser console or your own loggingws:// or wss:// URL (no registerWorker URL options)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(),
})Code using this pattern commonly includes, when relevant:
registerWorker('ws://host:49135') — connect from browserregisterWorker('wss://host:49135') — connect with TLS in productioniii.registerFunction(id, handler) — register browser-side handleriii.trigger({ function_id, payload }) — call server-side functionsiii.trigger({ ..., action: TriggerAction.Void() }) — fire-and-forget from browserws://host:3112/stream/{name}/{group} for real-time updatesiii-node-sdk.iii-realtime-streams.iii-python-sdk or iii-rust-sdk.iii-browser-sdk when the client is a web browser.iii-browser-sdk in the iii engine.8921efa
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.