Configures the iii engine via iii-config.yaml — modules, adapters, queue configs, ports, and environment variables. Use when deploying, tuning, or customizing the engine.
72
65%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/iii-engine-config/SKILL.mdComparable to: Infrastructure as code, Docker Compose configs
Use the concepts below when they fit the task. Not every deployment needs all modules or adapters.
${VAR:default} syntax (default is optional)iii.toml and the iii worker CLI commandsThe iii-config.yaml file is loaded by the iii engine binary at startup. Modules are initialized in order, adapters connect to their backends, and the engine begins accepting worker connections over WebSocket on port 49134. External workers defined in the workers section are spawned as child processes automatically.
| Primitive | Purpose |
|---|---|
modules::api::RestApiModule | HTTP API server (port 3111) |
modules::stream::StreamModule | WebSocket streams (port 3112) |
modules::state::StateModule | Persistent key-value state storage |
modules::queue::QueueModule | Background job processing with retries |
modules::pubsub::PubSubModule | In-process event fanout |
modules::cron::CronModule | Time-based scheduling |
modules::observability::OtelModule | OpenTelemetry traces, metrics, logs |
modules::http_functions::HttpFunctionsModule | Outbound HTTP call security |
modules::shell::ExecModule | Spawn external processes |
modules::bridge_client::BridgeClientModule | Distributed cross-engine invocation |
modules::telemetry::TelemetryModule | Anonymous product analytics |
workers section in iii-config.yaml | External binary workers (worker modules) |
iii.toml | Worker manifest (name → version) |
iii worker add NAME[@VERSION] | Install a worker from the registry |
iii worker remove NAME | Uninstall a worker |
iii worker list | List installed workers |
iii worker info NAME | Show registry info for a worker |
See ../references/iii-config.yaml for the full working example — a complete engine configuration with all modules, adapters, queue configs, and environment variable patterns.
Code using this pattern commonly includes, when relevant:
iii --config ./iii-config.yaml — start the engine with a config filedocker pull iiidev/iii:latest — pull the Docker imagestore_method: file_based with file_path: ./data/...redis_url: ${REDIS_URL}amqp_url: ${AMQP_URL} and queue_mode: quorumqueue_configs with max_retries, concurrency, type, backoff_ms per queue nameport: ${III_PORT:49134}curl http://localhost:3111/healthExternal workers are installed via the CLI and configured in iii-config.yaml:
iii worker add pdfkit@1.0.0 — install a worker binary from the registryiii worker add (no name) — install all workers listed in iii.tomliii worker remove pdfkit — remove binary, manifest entry, and config blockiii worker list — show installed workers and versions from iii.tomlWorkers appear in iii.toml as a version manifest:
[workers]
pdfkit = "1.0.0"
image-processor = "2.3.1"Worker config blocks in iii-config.yaml use marker comments for automatic management:
workers:
# === iii:pdfkit BEGIN ===
- class: workers::pdfkit::PdfKitWorker
config:
output_dir: ./output
# === iii:pdfkit END ===At startup, the engine resolves each worker class, finds the binary in iii_workers/, and spawns it as a child process. Worker binaries are stored in the iii_workers/ directory.
Use the adaptations below when they apply to the task.
iii worker add to install external workers and auto-generate their config blocksmax_retries and backoff_ms based on your failure tolerance and SLA requirementsOtelModule with your collector endpoint and sampling ratio for observabilityiii-http-endpoints.iii-queue-processing.iii-cron-scheduling.iii-observability.iii-realtime-streams.iii-engine-config when the primary problem is configuring or deploying the engine itself.iii-engine-config 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.