Pack vs Forge in SwarmForge: What's the Difference?
A Pack is a single-project AI workflow pipeline, while a Forge is a host-level environment that manages multiple projects with a shared dashboard and host lieutenant.
SwarmForge, the open-source multi-agent orchestration platform from Bob Martin (unclebob/swarm-forge), uses these two concepts to separate lightweight project workflows from centralized project management. Understanding the distinction helps you choose the right deployment model for your AI agent needs.
Core Difference: Scope and Function
The fundamental distinction lies in scope and orchestration level:
| Concept | Level | What It Contains | Runtime Behavior |
|---|---|---|---|
| Pack | Project | AI role definitions, swarmforge.conf, role prompts, pack-specific scripts |
./swarm launches all agents immediately |
| Forge | Host/instance | packs/ directory (all templates), projects/ directory (instantiated packs), dashboard, host lieutenant |
./swarm launches only dashboard and lieutenant; project agents start on demand |
According to the README.md at lines 28-33, "Packs compose into the directory you are in" and "Forges install a host… ./swarm starts the dashboard and a host lieutenant only**."
What Is a Pack in SwarmForge?
A Pack is a self-contained workflow pipeline that defines a complete chain of AI agents for one project.
Pack Characteristics
- Contains a fixed sequence of AI roles (e.g., specifier → coder → cleaner → reviewer)
- Ships with
swarmforge.confconfiguration, role-specific prompts, and execution scripts - Installs directly into your current working directory
- Runs autonomously without external orchestration
Pack Installation and Execution
# Install a single-project Pack (e.g., the six-pack) into the current folder
get-swarm-forge six-pack # pulls the pack scripts into .
./swarm # starts the six-pack agents immediately
The pack_web.bb script (lines 1888-1890) serves as the runtime for a Pack, providing its dashboard when a Pack is the active context.
When to Use a Pack
Choose a Pack when you need:
- A lightweight, single-project setup
- Minimal overhead with no central management
- Direct agent execution without host-level orchestration
What Is a Forge in SwarmForge?
A Forge is a host environment that centralizes pack management and enables multi-project workflows.
Forge Characteristics
- Maintains a
packs/directory with all available pack templates - Contains a
projects/directory where each subdirectory is an independent project instantiated from a chosen pack - Includes a dashboard for visual project management
- Runs a host lieutenant that orchestrates multiple projects simultaneously
Forge Architecture
As documented in project-board.md (lines 3-6), a Forge organizes work through:
forge-root/
├── packs/ # Pack templates (six-pack, four-pack, etc.)
├── projects/ # Instantiated projects, each containing one pack
└── dashboard/ # Web UI for project creation and monitoring
Forge Installation and Execution
# Install a multi-project Forge (project-manager) that includes all packs
get-swarm-forge project-manager # creates packs/ and projects/ directories
./swarm # launches only the dashboard + host lieutenant
The forge.bb script (lines 167-170) sets up this host environment, initializing the dashboard and host lieutenant without starting individual project agents.
Creating Projects Within a Forge
From the dashboard, you instantiate new projects using available pack templates. The underlying command structure matches:
./swarmforge/scripts/pack_web.bb new-project \
--name my-app \
--pack four-pack
When to Use a Forge
Choose a Forge when you need:
- Multiple concurrent projects with different packs
- Centralized monitoring through a shared dashboard
- On-demand agent spawning rather than always-on execution
- Template reuse across many project instances
Key Files Defining Pack vs Forge Behavior
| File | Purpose | Relevant Lines |
|---|---|---|
README.md |
High-level distinction between Packs and Forges | 28-34 |
project-board.md |
Forge directory structure and pack instantiation | 3-6 |
get-swarm-forge |
Installer script that fetches either artifact | 9-12 |
swarmforge/scripts/forge.bb |
Host setup (dashboard + lieutenant) | 167-170 |
swarmforge/scripts/pack_web.bb |
Pack runtime and dashboard serving | 1888-1890 |
Practical Decision Framework
Use a Pack when:
- You have one project to automate
- You want agents running immediately on
./swarm - You don't need cross-project visibility
Use a Forge when:
- You manage multiple AI-driven projects
- You want a central dashboard for oversight
- You prefer agents start on-demand via UI rather than automatically
- You need to compare or switch between different pack templates quickly
Summary
- Packs are project-level, single-purpose workflow pipelines that launch all agents on
./swarm - Forges are host-level environments with centralized pack storage, a
projects/directory, dashboard, and host lieutenant that defer agent startup to on-demand requests - The
get-swarm-forgeinstaller fetches either artifact based on your argument (six-packfor Pack,project-managerfor Forge) pack_web.bbhandles Pack runtime;forge.bbinitializes the host environment
Frequently Asked Questions
Can I convert a Pack installation into a Forge?
No direct conversion path exists in the current codebase. As implemented in unclebob/swarm-forge, Packs and Forges are installed through distinct paths in get-swarm-forge (lines 9-12). To switch, install a Forge separately and recreate your project by instantiating the equivalent pack template within the Forge's projects/ directory.
Does a Forge consume more resources than a Pack?
A Forge has higher baseline resource usage because the host lieutenant and dashboard run continuously, whereas a Pack only runs its specific agent chain. However, individual project agents in a Forge start on demand, potentially reducing aggregate resource consumption when many projects are idle.
How do I know whether ./swarm will start agents or just the dashboard?
Check your directory structure. If you're in a Pack directory, ./swarm launches agents directly. If you're in a Forge root with packs/ and projects/ subdirectories, ./swarm starts only the dashboard and host lieutenant. The README.md clarifies this behavior at lines 31-34.
Can multiple Packs run simultaneously without a Forge?
No. Packs are designed for isolated, single-directory operation. Concurrent multi-project orchestration requires a Forge and its host lieutenant, as the Pack architecture lacks cross-project coordination capabilities.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →