Swarms is licensed under the Apache License 2.0. Learn more here
$ npx -y skills add kyegomez/swarms --agent claude-code
What's inside

Swarms, The Enterprise-Grade Production-Ready Multi-Agent Orchestration Framework
Build, deploy, and scale high-performance multi-agent systems with Swarms Python, a fast, flexible, and optimized agent framework. Featuring production-ready harnesses for sequential, concurrent, and hierarchical architectures, seamless framework compatibility, and integrations with MCP, x402, and skills.
# pip
$ pip3 install -U swarms
# uv (recommended): https://github.com/astral-sh/uv
$ uv pip install swarms
# poetry
$ poetry add swarms
# Clone the repository
$ git clone https://github.com/kyegomez/swarms.git
$ cd swarms
$ pip install -r requirements.txt
swarms[fast]swarms[fast] adds two optional speedups:
SWARMS_LLM_BACKEND=litellm.GraphWorkflow graphs. Turn it on with GraphWorkflow(backend="rustworkx").$ pip3 install -U "swarms[fast]"
The official image, swarmscorp/swarms on Docker Hub, has swarms and its CLI installed on Python 3.13, for linux/amd64 and linux/arm64.
# Pull the image
$ docker pull swarmscorp/swarms:latest
# Run a script from the current directory, passing your API key from the shell
$ docker run --rm -e OPENAI_API_KEY -v "$PWD:/app" swarmscorp/swarms python agent.py
# Open a Python shell with swarms installed
$ docker run -it --rm -e OPENAI_API_KEY swarmscorp/swarms
To build the image yourself, run docker build -t swarms . from the repository root.
Learn more about the environment configuration here
OPENAI_API_KEY=""
WORKSPACE_DIR="agent_workspace"
ANTHROPIC_API_KEY=""
GROQ_API_KEY=""
SWARMS_TELEMETRY_ON
An Agent is the fundamental building block of a swarm: an autonomous entity powered by an LLM + Tools + Memory. Learn more Here
from swarms import Agent
# Initialize a new agent
agent = Agent(
model_name="gpt-5.4", # Specify the LLM
max_loops="auto", # Set the number of interactions
interactive=True, # Enable interactive mode for real-time feedback
temperature=None,
)
# Run the agent with a task
agent.run("What are the key benefits of using a multi-agent system?")
max_loops="auto"Setting max_loops="auto" lets the agent decide for itself when the task is complete. It keeps reasoning and acting until it reaches a stopping condition, rather than halting after a fixed number of iterations. This is the recommended mode for open-ended, multi-step tasks where the number of steps isn't known in advance.
from swarms import Agent
agent = Agent(
agent_name="Autonomous-Research-Agent",
agent_description="An autonomous agent that conducts multi-step research independently.",
system_prompt=(
"You are an autonomous research agent. Break down complex tasks into steps, "
"execute each step thoroughly, and signal completion only when the full task is done."
),
model_name="gpt-5.4",
max_loops="auto", # Agent decides when it's done; no fixed iteration cap
autosave=True,
verbose=True,
)
# The agent will keep looping (planning, executing, and reflecting) until it
# determines the task is fully complete.
result = agent.run(
"Research the current state of quantum computing, identify the top three "
"hardware approaches, and summarize the key challenges each faces."
)
print(result)
When to use max_loops="auto":
When to use a fixed max_loops value:
The Model Context Protocol (MCP) lets agents easily access external tools and data by pointing to an MCP server URL, which automatically provides tools to the agent as needed. Agents become MCP-enabled by setting mcp_url or mcp_urls, and can use tools from one or many servers with no manual configuration. Free and public MCP servers like DeepWiki work out of the box, offering immediate access to useful agent tools.
from swarms import Agent
agent = Agent(
agent_name="MCP-Agent",
model_name="claude-sonnet-5",
mcp_url="https://mcp.deepwiki.com/mcp",
max_loops=1,
temperature=None,
max_tokens=16_000,
reasoning_effort=None,
)
print(
agent.run(
"Use your tools to explain what the kyegomez/swarms repository does."
)
)
The reverse direction works too. MCPDeployer turns any agent, or any swarm, into an MCP server that other agents and MCP hosts can call, with an auth layer in front of it. Each target becomes one tool; pass a list or a dict to serve several from one server. See the MCPDeployer examples
from swarms import Agent, MCPDeployer
researcher = Agent(
agent_name="Researcher",
agent_description="Answers research questions with a short summary.",
model_name="gpt-5.4",
max_loops=1,
)
# Serves http://127.0.0.1:8000/mcp as the tool "researcher".
MCPDeployer(researcher, api_keys=["sk-local-dev"], port=8000).run()
Any other agent can then use it by pointing at the URL with the key:
from swarms import Agent
from swarms.schemas.mcp_schemas import MCPConnection
client = Agent(
agent_name="Client",
model_name="gpt-5.4",
mcp_url=MCPConnection(url="http://127.0.0.1:8000/mcp", api_key="sk-local-dev"),
max_loops=2,
)
client.run("Use the researcher tool to summarise the state of solid-state batteries.")
Auth can be static API keys, your own auth callable that reads the request headers, or an mcp TokenVerifier with required scopes. A server with no auth configured refuses to start unless you pass allow_anonymous=True. Transports: streamable HTTP (default), SSE, or stdio for desktop MCP hosts.
| Example | What it shows |
|---|---|
| single_agent_api_key.py | One agent behind a static key |
| multiple_agents_one_server.py | Two agents, a SequentialWorkflow and two functions as separate tools |
| custom_auth_per_tenant.py | Your own async auth callable reading an x-tenant header |
| token_verifier_with_scopes.py | TokenVerifier with required scopes |
| background_server_and_client_agent.py | Serve, call from a second agent, and stop, all in one process |
| All MCPDeployer examples | Every target kind, auth mode and transport |
A Swarm consists of multiple agents working together. This simple example creates a two-agent workflow for researching and writing a blog post. Learn More About SequentialWorkflow
from swarms import Agent, SequentialWorkflow
# Agent 1: The Researcher
researcher = Agent(
agent_name="Researcher",
system_prompt="Your job is to research the provided topic and provide a detailed summary.",
model_name="gpt-5.4",
)
# Agent 2: The Writer
writer = Agent(
agent_name="Writer",
system_prompt="Your job is to take the research summary and write a beautiful, engaging blog post about it.",
model_name="gpt-5.4",
)
# Create a sequential workflow where the researcher's output feeds into the writer's input
workflow = SequentialWorkflow(agents=[researcher, writer])
# Run the workflow on a task
final_post = workflow.run("The history and future of artificial intelligence")
print(final_post)
swarms provides a variety of powerful, pre-built multi-agent architectures enabling you to orchestrate agents in various ways. Choose the right structure for your specific problem to build efficient and reliable production systems.
| Architecture | Description | Best For |
|---|---|---|
| SequentialWorkflow | Agents execute tasks in a linear chain; the output of one agent becomes the input for the next. | Step-by-step processes such as data transformation pipelines and report generation. |
| ConcurrentWorkflow | Agents run tasks simultaneously for maximum efficiency. | High-throughput tasks such as batch processing and parallel data analysis. |
| AgentRearrange | Dynamically maps complex relationships (e.g., a -> b, c) between agents. | Flexible and adaptive workflows, task distribution, and dynamic routing. |
| GraphWorkflow | Orchestrates agents as nodes in a Directed Acyclic Graph (DAG). | Complex projects with intricate dependencies, such as software builds. |
FAQ
swarms is a Claude Code plugin with 1 hand-picked skill for agent orchestration work, indexed on Flowy. Install it with the command on its page. It includes swarms. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it