Agent skill · software engineering · iii-hq

iii

How iii works and the iii-sdk surface for authoring workers, triggers, and functions. Teaches the ordered way to gain a capability before writing code — (1) check functions already registered in the engine, (2) search the public registry via iii-directory, (3) build a worker. Single self-contained skill — meant for system-prompt injection; do not re-fetch.

Why this skill is useful

Provides specific patterns for registering and invoking functions in a WebSocket-based worker architecture that the AI wouldn't reliably generate on its own.

What it needs

Requires iii-sdk installed locally. About 9k tokens when loaded. Last updated 2026-08-07. 18,563 stars on the source repository.

What this skill does

iii iii is a language-agnostic runtime where services, agents, and tools are composed of the same things: workers, triggers, and functions. One engine process (default port 49134) holds a live registry of every connected worker, every function those workers expose, and every trigger bound to them. Workers are independent OS processes that open a WebSocket to the engine and register Functions (service::name handlers) and Triggers (the events that invoke those Functions). There is no direct worker-to-worker traffic — every call routes through the engine, which makes the language, runtime, and physical location of any worker invisible to its callers. When to Use Use this skill to discover live iii capabilities, call functions, author SDK workers, bind trigger types, or operate project workers through Compose. You extend yourself by writing iii workers. A few lines get you on the bus: The instant the handshake completes, demo::add is callable from any worker (and the harness itself) via iii.trigger({ functionid: 'demo::add', payload: { a: 2, b: 3 } }). No restart, no registration with the harness — the engine routes it automatically. The four primitives Primitive What it is Owned by --- --- --- Engine One coordinator process. Routes every invocation. The operator Worker A process that opens a WebSocket to the engine. Anyone who writes one Function A named handler inside a worker, id service::name. Stable across worker restarts. The registering worker Trigger A (type, config, functionid) triple. Causes a function to run when an event fires. A worker (the type-publisher) + a caller (the binding) Three consequences worth internalising: 1. No worker-to-worker traffic. Every call is worker → engine → worker. Workers never address each other directly. Location and language are invisible. 2. No restart coordination. Restarting a worker is invisible to callers as long as it re-registers the same function ids. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills iii-hq/skills--c6b6ca

View the source on GitHub

Browse the @skills marketplace