All authors

Claude Skills by iii-hq
github.com/iii-hq448 skills0 installs567 views
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/tutorials/incremental-adoption/migrate-persistence.mdx. -->Votes: 0GitHub stars: 18,821
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/tutorials/incremental-adoption/offload-to-queue.mdx. -->Votes: 0GitHub stars: 18,821
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/tutorials/incremental-adoption/overview.mdx. -->Votes: 0GitHub stars: 18,821
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/tutorials/incremental-adoption/wrap-existing-api.mdx. -->Votes: 0GitHub stars: 18,821
- Reactive Crud<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/tutorials/reactive-crud/crud-endpoints.mdx. -->Votes: 0GitHub stars: 18,821
- Reactive Crud<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/tutorials/reactive-crud/model-and-store.mdx. -->Votes: 0GitHub stars: 18,821
- Reactive CrudThis tutorial builds a real-time CRUD service with iii. You'll model your data on the iii state store, expose create/read/update/delete operations over HTTP triggers, and stream live changes to connected clients. By the end you'll have a service that streams state changes to clients in real time without writing pub/sub code.Votes: 0GitHub stars: 18,821
- Reactive Crud<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/tutorials/reactive-crud/realtime-subscriptions.mdx. -->Votes: 0GitHub stars: 18,821
- Understanding Iii<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/understanding-iii/channels.mdx. -->Votes: 0GitHub stars: 18,821
- Understanding Iii<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/understanding-iii/engine.mdx. -->Votes: 0GitHub stars: 18,821
- Understanding IiiUnix gave processes a single interface. React gave components a single interface. iii gives every category of software (queues, schedulers, agents, frontends, sandboxes, business logic, etc.) a single interface: **Workers** host work, **Functions** are the work, **Triggers** are what causes the work to run, and the **Engine** routes between them. Once you have a mental model for those four pieces, everything else in iii is a variation on a theme. <Note>This page uses the [Quickstart tutorial]...Votes: 0GitHub stars: 18,821
- Using IiiFor the most current list of commands, flags, and defaults, ask the binary directly: ```bash iii --help #lists iii's flags and available subcommands iii subcommand --help #lists the specific actions each sucommand accepts ``` Each subcommand's help also provides the defaults and environment variables that affect each command.Votes: 0GitHub stars: 18,821
- Using Iii{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */} <Note> The console is the visual UI for iii systems. It lists workers, functions, and triggers, and shows traces, logs, and metrics from the iii-observability worker. For scripting or agent integration, call worker functions directly. </Note>Votes: 0GitHub stars: 18,821
- Using IiiThis page covers running the iii engine and its workers in a production environment. For local development, see the [Quickstart](../quickstart) and the [Engine](./engine) page.Votes: 0GitHub stars: 18,821
- Using Iii<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/using-iii/engine.mdx. -->Votes: 0GitHub stars: 18,821
- Using Iii{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */}Votes: 0GitHub stars: 18,821
- Using Iii}) ``` </Tab> <Tab title="Rust"> ```rust use iii_sdk::{InitOptions, TriggerAction, TriggerRequest, register_worker}; use serde_json::json; let url = std::env::var("III_URL").expect("III_URL must be set"); let worker = register_worker(&url, InitOptions::default()); let result = worker .trigger(TriggerRequest { function_id: "math::add".to_string(), payload: json!({ "a": 2, "b": 3 }), action: None, // action: Some(TriggerAction::Void), // fire-and-forget // actio...Votes: 0GitHub stars: 18,821
- Using Iii<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-17-0/using-iii/workers-registry.mdx. -->Votes: 0GitHub stars: 18,821
- Using Iii{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */} {/* TODO: Add back once worker init is merged. <Note> This page covers using existing workers. For creating new workers (`iii worker init`), registering functions and triggers, and building or publishing worker images, see [Creating Workers / Workers](../creating-workers/workers). </Note> */}Votes: 0GitHub stars: 18,821
- Creating Workers``` </Tab> <Tab title="Rust"> ```rust let channel = worker.create_channel(None).await?; // channel.writer // channel.reader // channel.writer_ref // channel.reader_ref ``` </Tab> </Tabs> Write the payload to the local `writer` and close it when finished. The bytes flow through the engine to whichever worker holds the matching `reader`. <Tabs> <Tab title="Node / TypeScript"> ```typescript const channel = await worker.createChannel(); channel.writer.stream.end(Buffer.from("file contents")); ```...Votes: 0GitHub stars: 18,821
- Creating Workers<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/creating-workers/functions.mdx. -->Votes: 0GitHub stars: 18,821
- Creating WorkersEvery new capability in a iii system is added by creating a Worker. A queue, a scheduler, an HTTP edge, a browser tab, an agent, a CRM integration, or a sandbox. Each is a Worker that connects to the Engine and registers Triggers and Functions. The Engine itself never needs to change.Votes: 0GitHub stars: 18,821
- Creating Workersworker.unregister_trigger_type( {"id": "mini-http", "description": "Routes HTTP requests to bound functions"} ) ``` </Tab> <Tab title="Rust"> ```rust // e.g. config reload disabled the HTTP listener; stop accepting new bindings // while the worker keeps serving other trigger types. worker.unregister_trigger_type("mini-http"); ``` </Tab> </Tabs> {/* TODO: Update once this inconsistency is fixed */} <Note> Node's `registerTriggerType` also returns a `TriggerTypeRef` with an `.unregister()` shor...Votes: 0GitHub stars: 18,821
- Creating Workers{/* Note: move this up */} The iii registry at [workers.iii.dev](https://workers.iii.dev/) is where published workers live so other iii projects can install them with `iii worker add <name>`.Votes: 0GitHub stars: 18,821
- Creating Workersiii worker init my-worker iii worker init my-worker --language typescript ``` Supported languages: `typescript` (`ts`), `javascript` (`js`), `python` (`py`), `rust` (`rs`). The positional `NAME` is the target directory; pass `--directory` to override it. Re-running `iii worker init` on a directory that already holds an iii worker (ie. has `.iii/worker.ini`) will make no changes to the worker. Worker init will fail by default when targeting a non-empty directory, use `--allow-non-empty` to sca...Votes: 0GitHub stars: 18,821
- How ToA full-stack reactive todo app over a single browser-to-engine WebSocket. Function calls and live stream change events flow over the same connection.Votes: 0GitHub stars: 18,821
- How To{/* TODO: write the how-to. Cover installing/enabling iii-cron, registering a function, binding it to a `cron` trigger with a schedule expression, verifying it fires, common schedule strings, timezone behaviour, what happens on overlap (skip vs queue), and how to manually invoke for testing. */}Votes: 0GitHub stars: 18,821
- How To{/* TODO: write the how-to. Cover registering a condition function (returns truthy/falsey from the same payload the handler would see), registering the trigger with `condition_function_id` set, verifying the handler runs only when the condition passes. Show one realistic example (e.g. HTTP trigger gated by an auth check) and call out when to prefer this over branching inside the handler. */}Votes: 0GitHub stars: 18,821
- 0 18 0{/* <Tip> The tabs above split the site into Docs (start here), Tutorials, How-tos, Patterns, SDK & Engine Reference, and Changelog. Read this page and the Docs tab in order first. The other tabs make more sense once you have the model. </Tip> */} <Frame> <video controls playsInline preload="metadata" src="https://assets.motia.dev/videos/mp4/site/v1/iii-intro.mp4" /> </Frame>Votes: 0GitHub stars: 18,821
- 0 18 0{/* TODO (community feedback): Add a direct binary-download path alongside the curl|sh installer so users who do not want to verify a remote script with a bot, or are on Windows, have an alternative. Link to the GitHub Releases page for the engine and include PATH setup instructions per OS (especially Windows). */}Votes: 0GitHub stars: 18,821
- PatternsWhen you want to bring an existing service (a third-party API, a library, an in-house microservice) into an iii system without rewriting it, wrap it in a thin worker that exposes the service's capabilities as iii functions. The worker translates between the existing service's interface and the iii function-call shape.Votes: 0GitHub stars: 18,821
- PatternsWhen the trigger for a function is a change in some piece of state (not a request or a schedule), bind the function to a state-change trigger advertised by a state worker. The engine fires the function whenever the watched key or scope changes. The function code is the same as any other; only the trigger registration differs.Votes: 0GitHub stars: 18,821
- 0 18 0In this tutorial you will learn how iii makes it unreasonably simple to build and extend systems. <Frame> <video controls playsInline preload="metadata" src="https://assets.motia.dev/videos/mp4/site/v1/iii-intro.mp4" /> </Frame> <Info title="Install iii before proceeding"> Make sure you have installed iii before proceeding. If you haven't then visit the [Install](./install) guide first. </Info> <Note> The Quickstart is a barebones tutorial intended to be completed within minutes. If you are m...Votes: 0GitHub stars: 18,821
- Sdk Reference{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */} <Note> This page is a hand-authored snapshot of the planned public surface. The final reference will be generated from the SDK source. The Browser SDK is a standalone implementation alongside the Node SDK, not a build of it. </Note>Votes: 0GitHub stars: 18,821
- Sdk Reference{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */} <Note> This page documents the wire-level protocol the engine and SDK workers exchange. Most projects use a language SDK ([Node](./node-sdk), [Python](./python-sdk), [Rust](./rust-sdk), [Browser](./browser-sdk)) and never touch the protocol directly. The shapes below are the source of truth those SDKs serialize to. </Note> <Note> Observability introspection (traces, logs, me...Votes: 0GitHub stars: 18,821
- Sdk Reference{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */} <Note> This page is a hand-authored snapshot of the planned public surface. The final reference will be generated from the SDK source. </Note>Votes: 0GitHub stars: 18,821
- Sdk Reference{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */} <Note> This page is a hand-authored snapshot of the planned public surface. The final reference will be generated from the SDK source. </Note>Votes: 0GitHub stars: 18,821
- Sdk Reference{/* TODO: Re-link worker references to https://workers.iii.dev/workers/<name> once the Worker Docs migration ships. */} <Note> This page is a hand-authored snapshot of the planned public surface. The final reference will be generated from the SDK source. </Note>Votes: 0GitHub stars: 18,821
- Build An Agent<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/tutorials/build-an-agent/define-tools.mdx. -->Votes: 0GitHub stars: 18,821
- Build An Agent<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/tutorials/build-an-agent/memory-and-state.mdx. -->Votes: 0GitHub stars: 18,821
- Build An Agent<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/tutorials/build-an-agent/orchestration-loop.mdx. -->Votes: 0GitHub stars: 18,821
- Build An AgentThis tutorial walks through building an agent in iii in three pieces: the functions the agent calls as tools, the loop that drives its think-act-observe cycle, and the memory it carries between turns. By the end you'll have a working agent worker you can extend with your own tools.Votes: 0GitHub stars: 18,821
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/tutorials/incremental-adoption/migrate-persistence.mdx. -->Votes: 0GitHub stars: 18,821
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/tutorials/incremental-adoption/offload-to-queue.mdx. -->Votes: 0GitHub stars: 18,821
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/tutorials/incremental-adoption/overview.mdx. -->Votes: 0GitHub stars: 18,821
- Incremental Adoption<!-- generated by iii-skill-render. DO NOT EDIT (changes here are overwritten on the next render). Edit docs/0-18-0/tutorials/incremental-adoption/wrap-existing-api.mdx. -->Votes: 0GitHub stars: 18,821
- LinklyWhere a stream is for a live trickle of events, a **channel** is for **moving a large amount of data at once**: a direct streaming pipe between two endpoints, rather than one request and response. Channels are bidirectional (each end has both a reader and a writer), but here you'll stream in one direction, uploading a CSV of links. You'll give this its own `bulk-importer` worker so the `link` worker stays focused on single links.Votes: 0GitHub stars: 18,821
- Linkly- name: iii-queue config: queue_configs: clicks: type: standard max_retries: 5 concurrency: 5 adapter: name: builtin ``` You already wrote `link::record_click` in Chapter 3, where `http::redirect` triggers it directly. Nothing about the function changes. You only change how it's invoked. First import `TriggerAction`: ```typescript src/index.ts import { registerWorker, Logger, TriggerAction } from "iii-sdk"; ``` Then add an `action` to the existing `link::record_click` call in `http::redirect`...Votes: 0GitHub stars: 18,821
- Linkly- name: iii-state config: adapter: name: kv config: store_method: in_memory ``` Now restarting the engine clears every link. That's fine here; [Ch. 3: Persist everything](/tutorials/linkly/persistence) swaps in durable storage. You may also notice a iii.lock file: that's how iii tracks worker dependencies and versions so that iii deployments are repeatable. This is similar to lock files in other package managers. For now you don't need to edit anything in these files.Votes: 0GitHub stars: 18,821
- Linkly- name: iii-worker-manager config: port: 49134 - name: iii-worker-manager config: host: 127.0.0.1 port: 3110 rbac: auth_function_id: auth::browser expose_functions: - match("link::create") - match("link::request_delete") - match("stream::*") ``` `expose_functions` is an allowlist of which functions a browser session can call. `auth_function_id` names a function `iii-worker-manager` invokes on every connection to admit or reject it; you write that next.Votes: 0GitHub stars: 18,821