Install the iii engine, set up your first worker, and get a working backend running. Use when a user wants to start a new iii project, install the SDK, or needs help with initial setup and configuration.
85
81%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
iii replaces your API framework, task queue, cron scheduler, pub/sub, state store, and observability pipeline with a single engine and three primitives: Function, Trigger, Worker.
curl -fsSL https://install.iii.dev/iii/main/install.sh | shVerify it installed:
iii --versioncurl -LO https://github.com/iii-hq/cli-tooling/releases/latest/download/quickstart.zip
unzip quickstart.zip
cd quickstartThe quickstart includes TypeScript, Python, and Rust workers. If you don't have all runtimes, the README includes Docker Compose instructions.
iii --config iii-config.yamlThe engine starts and listens for worker connections on ws://localhost:49134. The console is available at http://localhost:3000.
Pick your language:
# TypeScript / Node.js
npm install iii-sdk
# Python
pip install iii-sdk
# Rust — add to Cargo.toml
# [dependencies]
# iii-sdk = "*"import { registerWorker, Logger, TriggerAction } from 'iii-sdk'
const iii = registerWorker(process.env.III_URL ?? 'ws://localhost:49134')
iii.registerFunction(
'hello::greet',
async (input) => {
const logger = new Logger()
const name = input?.name ?? 'world'
logger.info('Greeting user', { name })
return { message: `Hello, ${name}!` }
},
{ description: 'Greet a user by name' },
)
iii.registerTrigger({
type: 'http',
function_id: 'hello::greet',
config: { api_path: '/hello', http_method: 'POST' },
})from iii import register_worker, InitOptions, Logger
iii = register_worker(address="ws://localhost:49134", options=InitOptions(worker_name="hello-worker"))
def greet(data):
logger = Logger()
name = data.get("name", "world") if isinstance(data, dict) else "world"
logger.info("Greeting user", {"name": name})
return {"message": f"Hello, {name}!"}
iii.register_function({"id": "hello::greet", "description": "Greet a user by name"}, greet)
iii.register_trigger({"type": "http", "function_id": "hello::greet", "config": {"api_path": "/hello", "http_method": "POST"}})use iii_sdk::{register_worker, InitOptions, Logger, RegisterFunctionMessage, RegisterTriggerInput};
use serde_json::json;
let iii = register_worker("ws://127.0.0.1:49134", InitOptions::default());
iii.register_function(
RegisterFunctionMessage::with_id("hello::greet".into()),
|input: serde_json::Value| async move {
let logger = Logger::new();
let name = input["name"].as_str().unwrap_or("world");
logger.info("Greeting user", Some(&json!({ "name": name })));
Ok(json!({ "message": format!("Hello, {}!", name) }))
},
);
iii.register_trigger(RegisterTriggerInput {
trigger_type: "http".into(),
function_id: "hello::greet".into(),
config: json!({ "api_path": "/hello", "http_method": "POST" }),
})?;curl -X POST http://localhost:3000/hello \
-H "Content-Type: application/json" \
-d '{"name": "iii"}'Expected response:
{"message": "Hello, iii!"}Get all 24 iii skills for your AI coding agent:
npx skills add iii-hq/iiiOr with SkillKit:
npx skillkit install iii-hq/iiiSkills teach your agent how to use every iii primitive — HTTP endpoints, cron scheduling, queues, state management, streams, channels, and more. Available for Claude Code, Cursor, Codex, Gemini CLI, and 30+ other agents.
registerFunction + registerTrigger calls:: separator for function IDs to namespace them: orders::create, orders::validate{ type: 'cron', config: { expression: '0 0 9 * * * *' } } (7-field, includes seconds){ type: 'durable:subscriber', config: { topic: 'my-queue' } }iii.trigger() to invoke other functions from within a functionstate::get / state::set to persist data across function callsAfter getting your first worker running:
iii-state-management skill to persist dataiii-queue-processing skill for async job processingiii-cron-scheduling skill for scheduled tasksiii-http-endpoints skill for REST endpoints with CRUDiii-observability skill for tracing and metricsiii-agentic-backend, iii-reactive-backend, iii-workflow-orchestrationiii-http-endpointsiii-cron-schedulingiii-queue-processingiii-state-managementiii-engine-configiii-getting-started for installation, initial setup, and first-worker guidance8921efa
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.