Swirls lets me build an entire agency on top of it. I take it and run.
- Industry
- AI agent agency
- Shape
- Specialists under one orchestrator
- Declared in
- .swirls files
Swirls is the platform for MSPs, agencies, and forward-deployed engineers. Declare agentic systems in .swirls files, deploy them per client, and govern every run.
The blocker is not the model. It is getting agents integrated with a client’s systems, governed against real policy, and running long after the pilot. That bridge is the work, and it is where most teams stall.
Swirls is built for that bridge. It is how managed service providers and forward-deployed engineers turn an experiment into a system a client can trust.
Teams of agents — a few lines, no boilerplate.
secret provider_keys {
label: "Provider keys"
vars: [OPENROUTER_API_KEY]
}
agent concierge {
label: "Concierge"
secrets: provider_keys
provider: openrouter
model: "openai/gpt-4o-mini"
// See tools.swirls for workflow definitions.
tools: [search_orders]
system: @ts {
return "Help customers with orders, returns, and shipping updates."
}
}Declare agents, workflows, tools, and triggers in .swirls files. One codebase, version controlled, that captures how the work gets done.
Ship the same system to each client with a git push. A project per client, connections scoped per client, every tenant isolated.
Watch every run, control what each agent can touch, and grow the engagement. The system compounds value instead of going stale.
Every connection is encrypted and scoped to a single run. One client's keys never reach another client's work.
Map a client org to roles, then grant or deny each agent and tool. Lock the system down when the work demands it.
Governance lives in the same files as the system. It ships and reviews with everything else, from the first engagement.
Declarative LLM agents with tools, profiles, teams, and a persistent workspace — the agentic harness without the boilerplate.
agent concierge { … }Deterministic, typed DAGs of code, AI, and HTTP nodes. Durable execution with a schema at every edge.
workflow search_orders { … }Brokered OAuth or bring your own keys. Encrypted and scoped to each run, so every client's systems stay isolated.
connection slack { … }Map a client's org to roles, then grant or deny agents and tools. Deny by default when it matters.
policy { allow … }Forms, webhooks, and schedules bind to workflows. Anything can start a run.
webhook:inbound → runPersist typed workflow output as records, then read it back or compose it into spreadsheet views.
stream scored_leads { … }Mounted, persistent disks your agents and workflows can read, write, and run bash against.
disk workspace { … }Bind an agent to Slack, Linear, Discord, or the web so it answers right in the conversation.
channel support_bot { … }Author .swirls files. Deploy free to inspect your project in Swirls Cloud.