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
ComponentWhat it does
array_getGet an array element by 1-based index. Input: {array, index}; returns {item, index} or an error if the inde...
askHuman-in-the-loop gate. A message on Request publishes a form on the Control port; the flow does NOT block....
asyncNon-blocking pass-through. Returns immediately (unblocks sender), then emits context on Out in a goroutine....
budget_guardBounds an agent loop. Wire it into the cycle — typically between a tool result and the model it feeds — and...
cronScheduled emitter using cron expressions. Click Start to begin emitting context on Out port according to th...
debugMessage sink for inspection. Receives messages on In (no output ports). Displays last received message in C...
delayTimed pause. Receives context + delay (ms) on In, sleeps for specified duration (blocking upstream), then e...
flow_telemetryReads the platform's own execution traces, so a flow can inspect how flows are running. Without a traceId i...
group_byGroups an array of items by a specified field path. Input: items array + groupByPath (e.g., 'labels.app'). ...
injectInjects stored configuration into passing messages. Send config once, then every message passing through ge...
kvKey-value store backed by TinyNode metadata via the SDK State primitive. Stores documents with a configurab...
transformData transformer for connecting output back to input on the SAME node (e.g., http_server request→response l...
retryExplicit retry supervisor with bounded attempts and configurable backoff. Pairs with the error port of any ...
routerConditional message router. Configure routes via settings (e.g., routes="POST", "OTHER"). Output ports ar...
run_startStarts a run and immediately returns its id, so a caller — like an HTTP request — gets an instant reply whi...
run_statusChecks a run's progress by id: whether the run is known (found), complete, or failed, how many steps are st...
signalFlow trigger. Click Send to emit the configured context on Out and kick off the flow. Fire-and-forget: it e...
array_splitArray iterator. Input: context + array. Emits one message per array element on Out, each containing {contex...
tickerPeriodic 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
ComponentWhat it does
smtp_sendSends email using SMTP protocol
slack_commandReceives and parses Slack slash commands. Connect to HTTP Server to receive webhooks. Verifies request sign...
slack_interactionReceives and parses Slack Block Kit interaction payloads (button clicks, menu selections). Connect to HTTP ...
slack_sendSends messages to slack channel

crypto-module

Cryptography — X.509 certificate generation

tiny install crypto-module
ComponentWhat it does
cert_generateGenerate 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
ComponentWhat it does
postgres_execExecutes INSERT/UPDATE/DELETE against Postgres with positional parameters. Connection pool is cached per DS...
postgres_queryRuns SELECT against Postgres and returns rows as a list of objects keyed by column name. Configure expected...
redis_dedupAtomic 'first seen' check via SET NX EX. Routes new IDs to the New port and duplicates to the Seen port. Re...
redis_getReads a key from Redis. Emits found=false with empty value when the key does not exist; the error port is r...
redis_setSets a key in Redis. Optional TTL via ttlSeconds (0 = no expiry). Optional NX (set only if key does not alr...
vector_searchkNN over a pgvector column. Returns the top-K nearest rows by configurable distance metric, with a normalis...
vector_upsertWrites 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
ComponentWhat it does
registry_catalogList all repositories and their tags from a container registry. Supports Docker Hub, GHCR, private registri...
registry_copyCopy 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
ComponentWhat it does
embed_textCalls 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
ComponentWhat it does
go_templateRender templates using text/template standard package. Supports layouts and partials. Output is not HTML-es...
json_decodeParses a JSON string into data the rest of the flow can read. SET THE decoded SETTING to an example of th...
json_encodeEncodes input document with JSON
jwt_encodeGenerates JWT token
jwt_decodeVerifies and decodes JWT token
xml_encodeEncodes input document with XML

git-module

Git operations — clone, read, and commit repositories

tiny install git-module
ComponentWhat it does
echoSends the same message as it receives

googleapis-module

Google Calendar, Firestore, and OAuth components

tiny install googleapis-module
ComponentWhat it does
oauth_code_exchangeExchanges Auth code to Auth token
oauth_url_getGets Auth URL which later may be used fot auth redirect
calendar_watch_stopStop calendar watcher
calendar_watchRegister calendar watcher
calendar_listGets list of calendars
calendar_events_getCalendar Get Events
calendar_event_respondResponse to calendar event
google_api_callUniversal Google API client. Select any Google API service and method from the discovery directory. Dynamic...
firestore_create_docAdds document if refID is empty, updates if it's not
firestore_delete_docDeletes document from a collection
firestore_get_docsGets documents from a collection
firestore_listen_collectionListens to changes of the collection
firestore_update_doc_fieldUpdates fields in the existing record
firestore_update_docUpdates existing record in a collection

grpc-module

gRPC client — call gRPC service methods

tiny install grpc-module
ComponentWhat it does
grpc_callSends grpc request

http-module

HTTP client and server components

tiny install http-module
ComponentWhat it does
http_auth_parseExtracts Basic Auth credentials from HTTP headers. In port receives: context + headers array. Out port alwa...
http_requestOutbound HTTP request maker. Request port receives: context, method, timeout, URL, headers, contentType, bo...
logql_querySearches Loki for log lines across every pod at once, which is what pod_logs_get cannot do — it needs an ex...
promql_queryRuns a PromQL query against any Prometheus-compatible API and returns the matching series with their labels...
http_serverHTTP 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
ComponentWhat it does
js_evalEscape 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
ComponentWhat it does
configmap_patchSet or remove a key in a Kubernetes ConfigMap. On set: creates the ConfigMap if it doesn't exist, or upsert...
custom_resource_listLists any Kubernetes resource by API version and kind. Works with built-in resources (Pods, Deployments) an...
daemonset_listLists Kubernetes DaemonSets with scheduling status and health information.
deployment_listLists Kubernetes Deployments with replica status, conditions, and health information.
deployment_scaleScale a Kubernetes Deployment to a specified replica count.
deployment_updateUpdate a Kubernetes Deployment's images, environment variables, resources, replicas, and metadata.
event_watchWatch Kubernetes Events for warnings and errors. Use to detect ImagePullBackOff, CrashLoopBackOff, scheduli...
pod_createCreate a Kubernetes Pod. Use to run one-off tasks, test image pulls, or spawn workers. Set command to ['tru...
pod_deleteDelete a Kubernetes Pod by name. Useful for forcing pod restart or cleanup.
pod_listLists Kubernetes Pods with container statuses, phases, and problem detection.
pod_logs_getGet logs from a specific pod by exact name. Use pod_list to find pods first if needed.
pod_logs_watchWatch pod logs in real-time for keyword matches. Streams logs from all pods matching namespace and label fi...
pod_status_getGet status of pods matching a label selector. Returns pod count, health summary, and individual pod details.
pod_updateUpdate a Kubernetes Pod's labels and annotations. Note: Pod spec cannot be modified after creation.
pod_watchWatch Kubernetes Pods for status changes. Emits typed events with pod phase, container states, and problem ...
sandbox_runRuns a script in a throwaway Kubernetes Job and returns its output and exit code. Built for code an agent w...
secret_getRead a Kubernetes Secret by name. Returns decoded string data. Use to read docker-registry secrets (regcred...
service_listLists Kubernetes Services with ports, selectors, and endpoint information.
service_updateUpdate a Kubernetes Service's selector, ports, labels, or annotations.
statefulset_listLists Kubernetes StatefulSets with replica status, revisions, and health information.
webhook_registerRegister or delete a Kubernetes MutatingWebhookConfiguration. Use to subscribe to cluster events at the adm...
workload_listLists Kubernetes workload resources (Deployments, StatefulSets, DaemonSets) with optional filtering by name...
workload_restartPerforms 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
ComponentWhat it does
llm_chatStateless multi-turn conversation primitive. Caller supplies the full Messages history per call; component ...
llm_completeSingle-turn completion. Defaults to Anthropic's Messages API (with prompt caching on the system prompt); sw...
llm_routerRoute a message to one of N output ports based on LLM judgement. Configure Settings.Routes with {name, desc...
llm_toolsReAct / function-calling primitive. Declare tools in Settings; each becomes an out_ source port e...
mcp_callInvokes a tool on a remote MCP server. Request takes {tool, arguments}; Result emits {text, structured, isE...
mcp_toolsLists 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
ComponentWhat it does
document_storeEmbedded 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
ComponentWhat it does
wasm_evalEscape 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.