iii-browser-sdk
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.
How do I install this agent skill?
npx skills add https://github.com/iii-hq/iii --skill iii-browser-sdkIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides documentation and code examples for the iii-browser-sdk, a library used to connect web applications to the iii engine via WebSockets. No malicious patterns, prompt injections, or unauthorized data access behaviors were detected. The referenced NPM package and documentation domain are consistent with the vendor's identity.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
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 |
|---|---|
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 |
Key Differences from Node SDK
- No custom WebSocket headers — uses query parameters for auth tokens
- No
Loggerexport — use browser console or your own logging - No worker metadata telemetry reporting
- Connects directly via
ws://orwss://URL (noregisterWorkerURL options) - 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:
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 browser- Stream connections at
ws://host:3112/stream/{name}/{group}for real-time updates
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
iii-python-sdkoriii-rust-sdk. - Stay with
iii-browser-sdkwhen the client is a web browser.
When to Use
- Use this skill when the task is primarily about
iii-browser-sdkin the iii engine. - 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.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/iii-hq/iii/iii-browser-sdk">View iii-browser-sdk on skillZs</a>