Available Modules
The default catalog tiny ships with — installed with tiny install <name>. Each module is a container image running as an operator; its components appear in the palette once installed. Agents built by prompt install missing modules on demand.
Browsable with install commands at tinysystems.io/modules; from an MCP session use list_available_modules and get_module_readme.
common-module
Core flow components — signal, transform, router, delay, kv, run
tiny install common-module
| Component | What it does |
|---|---|
array_get | Get an array element by 1-based index. Input: {array, index}; returns {item, index} or an error if the inde... |
ask | Human-in-the-loop gate. A message on Request publishes a form on the Control port; the flow does NOT block.... |
async | Non-blocking pass-through. Returns immediately (unblocks sender), then emits context on Out in a goroutine.... |
budget_guard | Bounds an agent loop. Wire it into the cycle — typically between a tool result and the model it feeds — and... |
cron | Scheduled emitter using cron expressions. Click Start to begin emitting context on Out port according to th... |
debug | Message sink for inspection. Receives messages on In (no output ports). Displays last received message in C... |
delay | Timed pause. Receives context + delay (ms) on In, sleeps for specified duration (blocking upstream), then e... |
flow_telemetry | Reads the platform's own execution traces, so a flow can inspect how flows are running. Without a traceId i... |
group_by | Groups an array of items by a specified field path. Input: items array + groupByPath (e.g., 'labels.app'). ... |
inject | Injects stored configuration into passing messages. Send config once, then every message passing through ge... |
kv | Key-value store backed by TinyNode metadata via the SDK State primitive. Stores documents with a configurab... |
transform | Data transformer for connecting output back to input on the SAME node (e.g., http_server request→response l... |
retry | Explicit retry supervisor with bounded attempts and configurable backoff. Pairs with the error port of any ... |
router | Conditional message router. Configure routes via settings (e.g., routes="POST", "OTHER"). Output ports ar... |
run_start | Starts a run and immediately returns its id, so a caller — like an HTTP request — gets an instant reply whi... |
run_status | Checks a run's progress by id: whether the run is known (found), complete, or failed, how many steps are st... |
signal | Flow trigger. Click Send to emit the configured context on Out and kick off the flow. Fire-and-forget: it e... |
array_split | Array iterator. Input: context + array. Emits one message per array element on Out, each containing {contex... |
ticker | Periodic emitter. Click Start to begin emitting context on Out. Waits for Out port to complete, then waits ... |
communication-module
Slack — slash commands and interactive components
tiny install communication-module
| Component | What it does |
|---|---|
smtp_send | Sends email using SMTP protocol |
slack_command | Receives and parses Slack slash commands. Connect to HTTP Server to receive webhooks. Verifies request sign... |
slack_interaction | Receives and parses Slack Block Kit interaction payloads (button clicks, menu selections). Connect to HTTP ... |
slack_send | Sends messages to slack channel |
crypto-module
Cryptography — X.509 certificate generation
tiny install crypto-module
| Component | What it does |
|---|---|
cert_generate | Generate a self-signed TLS certificate with optional SANs. Use for K8s admission webhooks, internal HTTPS s... |
database-module
Postgres, Redis, and vector store components
tiny install database-module
| Component | What it does |
|---|---|
postgres_exec | Executes INSERT/UPDATE/DELETE against Postgres with positional parameters. Connection pool is cached per DS... |
postgres_query | Runs SELECT against Postgres and returns rows as a list of objects keyed by column name. Configure expected... |
redis_dedup | Atomic 'first seen' check via SET NX EX. Routes new IDs to the New port and duplicates to the Seen port. Re... |
redis_get | Reads a key from Redis. Emits found=false with empty value when the key does not exist; the error port is r... |
redis_set | Sets a key in Redis. Optional TTL via ttlSeconds (0 = no expiry). Optional NX (set only if key does not alr... |
vector_search | kNN over a pgvector column. Returns the top-K nearest rows by configurable distance metric, with a normalis... |
vector_upsert | Writes an embedding row into a pgvector table. INSERT ... ON CONFLICT (id) DO UPDATE — existing rows are ov... |
distribution-module
OCI registry ops — list catalogs and copy images
tiny install distribution-module
| Component | What it does |
|---|---|
registry_catalog | List all repositories and their tags from a container registry. Supports Docker Hub, GHCR, private registri... |
registry_copy | Copy a container image from one registry to another. Supports auth via dockerConfigJSON (pass regcred secre... |
embedding-module
Text embeddings for semantic / vector search
tiny install embedding-module
| Component | What it does |
|---|---|
embed_text | Calls a HuggingFace text-embeddings-inference (TEI) endpoint and emits the dense embedding vector. With the... |
encoding-module
Encoding — JSON, XML, JWT, and Go templates
tiny install encoding-module
| Component | What it does |
|---|---|
go_template | Render templates using text/template standard package. Supports layouts and partials. Output is not HTML-es... |
json_decode | Parses a JSON string into data the rest of the flow can read. SET THE decoded SETTING to an example of th... |
json_encode | Encodes input document with JSON |
jwt_encode | Generates JWT token |
jwt_decode | Verifies and decodes JWT token |
xml_encode | Encodes input document with XML |
git-module
Git operations — clone, read, and commit repositories
tiny install git-module
| Component | What it does |
|---|---|
echo | Sends the same message as it receives |
googleapis-module
Google Calendar, Firestore, and OAuth components
tiny install googleapis-module
| Component | What it does |
|---|---|
oauth_code_exchange | Exchanges Auth code to Auth token |
oauth_url_get | Gets Auth URL which later may be used fot auth redirect |
calendar_watch_stop | Stop calendar watcher |
calendar_watch | Register calendar watcher |
calendar_list | Gets list of calendars |
calendar_events_get | Calendar Get Events |
calendar_event_respond | Response to calendar event |
google_api_call | Universal Google API client. Select any Google API service and method from the discovery directory. Dynamic... |
firestore_create_doc | Adds document if refID is empty, updates if it's not |
firestore_delete_doc | Deletes document from a collection |
firestore_get_docs | Gets documents from a collection |
firestore_listen_collection | Listens to changes of the collection |
firestore_update_doc_field | Updates fields in the existing record |
firestore_update_doc | Updates existing record in a collection |
grpc-module
gRPC client — call gRPC service methods
tiny install grpc-module
| Component | What it does |
|---|---|
grpc_call | Sends grpc request |
http-module
HTTP client and server components
tiny install http-module
| Component | What it does |
|---|---|
http_auth_parse | Extracts Basic Auth credentials from HTTP headers. In port receives: context + headers array. Out port alwa... |
http_request | Outbound HTTP request maker. Request port receives: context, method, timeout, URL, headers, contentType, bo... |
logql_query | Searches Loki for log lines across every pod at once, which is what pod_logs_get cannot do — it needs an ex... |
promql_query | Runs a PromQL query against any Prometheus-compatible API and returns the matching series with their labels... |
http_server | HTTP request handler. The server does NOT run until a message arrives on the Start port — wire a signal (or... |
js-module
JavaScript eval — run JS to parse, transform, and compute over flow data (the code/eval component)
tiny install js-module
| Component | What it does |
|---|---|
js_eval | Escape hatch: run arbitrary logic inline when no typed component does what you need — reshape data, branch,... |
kubernetes-module
Kubernetes ops — pods, deployments, services, watches
tiny install kubernetes-module
| Component | What it does |
|---|---|
configmap_patch | Set or remove a key in a Kubernetes ConfigMap. On set: creates the ConfigMap if it doesn't exist, or upsert... |
custom_resource_list | Lists any Kubernetes resource by API version and kind. Works with built-in resources (Pods, Deployments) an... |
daemonset_list | Lists Kubernetes DaemonSets with scheduling status and health information. |
deployment_list | Lists Kubernetes Deployments with replica status, conditions, and health information. |
deployment_scale | Scale a Kubernetes Deployment to a specified replica count. |
deployment_update | Update a Kubernetes Deployment's images, environment variables, resources, replicas, and metadata. |
event_watch | Watch Kubernetes Events for warnings and errors. Use to detect ImagePullBackOff, CrashLoopBackOff, scheduli... |
pod_create | Create a Kubernetes Pod. Use to run one-off tasks, test image pulls, or spawn workers. Set command to ['tru... |
pod_delete | Delete a Kubernetes Pod by name. Useful for forcing pod restart or cleanup. |
pod_list | Lists Kubernetes Pods with container statuses, phases, and problem detection. |
pod_logs_get | Get logs from a specific pod by exact name. Use pod_list to find pods first if needed. |
pod_logs_watch | Watch pod logs in real-time for keyword matches. Streams logs from all pods matching namespace and label fi... |
pod_status_get | Get status of pods matching a label selector. Returns pod count, health summary, and individual pod details. |
pod_update | Update a Kubernetes Pod's labels and annotations. Note: Pod spec cannot be modified after creation. |
pod_watch | Watch Kubernetes Pods for status changes. Emits typed events with pod phase, container states, and problem ... |
sandbox_run | Runs a script in a throwaway Kubernetes Job and returns its output and exit code. Built for code an agent w... |
secret_get | Read a Kubernetes Secret by name. Returns decoded string data. Use to read docker-registry secrets (regcred... |
service_list | Lists Kubernetes Services with ports, selectors, and endpoint information. |
service_update | Update a Kubernetes Service's selector, ports, labels, or annotations. |
statefulset_list | Lists Kubernetes StatefulSets with replica status, revisions, and health information. |
webhook_register | Register or delete a Kubernetes MutatingWebhookConfiguration. Use to subscribe to cluster events at the adm... |
workload_list | Lists Kubernetes workload resources (Deployments, StatefulSets, DaemonSets) with optional filtering by name... |
workload_restart | Performs a rollout restart on a Deployment, StatefulSet, or DaemonSet by name. Triggers a rolling update by... |
llm-module
LLM chat, completion, and tool-calling
tiny install llm-module
| Component | What it does |
|---|---|
llm_chat | Stateless multi-turn conversation primitive. Caller supplies the full Messages history per call; component ... |
llm_complete | Single-turn completion. Defaults to Anthropic's Messages API (with prompt caching on the system prompt); sw... |
llm_router | Route a message to one of N output ports based on LLM judgement. Configure Settings.Routes with {name, desc... |
llm_tools | ReAct / function-calling primitive. Declare tools in Settings; each becomes an out_ |
mcp_call | Invokes a tool on a remote MCP server. Request takes {tool, arguments}; Result emits {text, structured, isE... |
mcp_tools | Lists the tools a remote MCP server offers. Emits them in llm_tools' declaration shape ({name, description,... |
store-module
Document store — persist and query JSON documents
tiny install store-module
| Component | What it does |
|---|---|
document_store | Embedded key/value store backed by bbolt + PVC. Four operation ports (put, get, delete, find) each with a m... |
wasm-module
WebAssembly — run WASM modules over flow data
tiny install wasm-module
| Component | What it does |
|---|---|
wasm_eval | Escape hatch for PRODUCED agents: run arbitrary compiled logic inline when no typed component fits, in a sa... |
Third-party modules
Anyone can publish: a module repo carries a static index.yaml; register it with tiny repo add <alias> <index-url> and install the same way. See Create your own module.