Skip to main content

Planning + knowledge layer for AI coding agents. Routes any task to the best of 60+ curated specialists, returns a structured PlanCard (steps, gotchas, success criteria) with progressive memory, and ships an optional Claude Code status line.

Project description

forgent — grow your own AI subagents on demand

forgent

Give Claude superpowers. A meta-orchestrator that routes any task to the best curated agent across Claude Code subagents, Python multi-agent frameworks (LangGraph / CrewAI / OpenAI Agents SDK / mcp-agent), and MCP servers — and forges brand-new specialist subagents on demand when no curated agent fits.

Ships as a single MCP server. Drop it into Claude Code, Claude Desktop, Cursor, Zed, or any MCP client and every Claude session gets the orchestrator's tools.

PyPI brand palette MCP ready Python 3.10+ MIT

forgent in action — stats, search, forge, recall

Why this exists

The agent ecosystem is fragmented into three silos that don't talk to each other:

Silo Top repos Strengths Weaknesses
Claude Code subagents wshobson/agents (32.7k★), VoltAgent/awesome-claude-code-subagents, 0xfurai/claude-code-subagents huge variety of specialists, markdown-portable only run inside Claude Code
Python frameworks LangGraph, CrewAI, AutoGen, lastmile-ai/mcp-agent production-ready workflows, eval tooling need code, framework lock-in
MCP servers modelcontextprotocol/servers, github/github-mcp-server, lastmile-ai/mcp-agent standardized tools and data access one-server-per-tool, no orchestration

A user with a task currently has to pick a silo before they can pick a solution. This project erases that line. You give it a task in plain English. It picks the best agent from any ecosystem, runs it, remembers what happened, and gets smarter next time.

What's inside

  • 63 hand-curated agents across 11 categories (core dev, language specialists, infrastructure, quality/security, data/AI, dev experience, specialized domains, business/product, meta-orchestration, research) — picked from the highest-quality public repos.
  • AgentForge — synthesizes brand-new specialist subagents on demand using Claude. The orchestrator literally grows new capabilities over time. Forged agents are persisted and reused forever.
  • LLM-based router with structured tool-use that maps any task → best primary agent + supporting agents + execution mode (single / sequential / parallel / evaluator-optimizer). Falls back to keyword scoring when no API key is available.
  • SQLite + FTS5 memory system that stores every task, routing decision, and agent output, and recalls relevant past context on every new task. Zero external dependencies.
  • Three ecosystem adapters with a common async interface — Claude Code (Anthropic API), Python frameworks (workflow patterns from lastmile-ai/mcp-agent), and MCP servers (stdio + optional mcp SDK).
  • Stdio MCP server — exposes 8 tools (run_task, forge_agent, list_agents, search_agents, show_agent, recall_memory, memory_stats, route_only) so every Claude environment can call the orchestrator.
  • Typer-based CLI for running tasks, browsing the registry, forging agents, and inspecting memory.
  • Shippable wheel + one-shot install script that handles pipx, the macOS sandbox quirk, and prints the exact registration commands for Claude Code and Claude Desktop.

Architecture

                ┌───────────────────────────┐
                │   forgent run "..."  │
                └─────────────┬─────────────┘
                              │
                ┌─────────────▼─────────────┐
                │   MemoryStore.context_for │  ← recall past sessions
                └─────────────┬─────────────┘
                              │
                ┌─────────────▼─────────────┐
                │   Router (LLM + tool-use) │  ← classify, pick agents
                └─────────────┬─────────────┘
                              │
       ┌──────────────────────┼──────────────────────┐
       ▼                      ▼                      ▼
 ┌───────────┐         ┌────────────┐         ┌────────────┐
 │ Claude    │         │ Python     │         │ MCP server │
 │ Code      │         │ framework  │         │ adapter    │
 │ adapter   │         │ adapter    │         │ (stdio)    │
 └─────┬─────┘         └──────┬─────┘         └──────┬─────┘
       │                      │                      │
       └──────────────────────┼──────────────────────┘
                              │
                ┌─────────────▼─────────────┐
                │   MemoryStore.remember    │  ← persist for next time
                └───────────────────────────┘

Install

Requires Python 3.10+.

Quickest — pipx + install script (recommended)

git clone <this repo>
cd agent-orchestration
python3 -m build --wheel              # produces dist/forgent-*.whl
./scripts/install.sh                  # pipx-installs + prints MCP registration commands

After this, both orchestrator and forgent-mcp are on your $PATH from any directory.

Manual / development

make install                          # creates .venv, installs editable, fixes macOS .pth quirk
make vendor                           # copies source agent files into the registry
make test                             # runs the smoke suite

cp .env.example .env                  # add ANTHROPIC_API_KEY
.venv/bin/forgent stats

Register with every Claude environment

See docs/INTEGRATION.md for the full guide. Short version:

# Claude Code (any project on your machine)
claude mcp add forgent \
  --env ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
  --env FORGENT_DB=./forgent.db \
  -- $(which forgent-mcp)

For Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json and add the orchestrator under mcpServers (snippet in the integration guide).

Usage

Run a task

forgent run "design a Stripe webhook handler with idempotency and PCI-safe logging"

The CLI will:

  1. Recall any relevant prior context from memory
  2. Show the routing decision (which agent, why, confidence)
  3. Print the agent's output
  4. Store everything for next time

Browse the registry

forgent agents list                          # all 50+ curated agents
forgent agents list --category data-ai       # filter by category
forgent agents list --ecosystem mcp          # filter by ecosystem
forgent agents search "kubernetes security"  # keyword search
forgent agents show backend-developer        # full system prompt

Inspect memory

forgent stats                          # overview
forgent memory stats                   # what's stored
forgent memory recall "stripe"         # what would the orchestrator remember
forgent memory recall "auth" --type routing
forgent memory forget                  # wipe (with confirmation)

Forge new subagents on demand

This is the killer feature. When you hit a task that no curated agent handles well, ask the orchestrator to grow a new specialist for it:

forgent forge "write Solidity smart contracts with formal verification (Certora, Halmos)"

Or in any Claude environment with the MCP server registered:

"Use forge_agent to create a specialist for SAML 2.0 SSO integrations with Okta and Azure AD."

Claude calls Claude. The new agent gets a real system prompt (400+ words, structured with checklists), a name, capabilities tags, and is persisted to dynamic.yaml + registry/agents/claude_code/<name>.md. From now on, every list_agents, search_agents, and route_only call sees it. The orchestrator is literally getting smarter.

You can also enable auto-forging on run:

forgent run --auto-forge "design RFC-compliant LDAP query optimization for AD"

When the router's confidence is below 0.4, it forges a fresh specialist for the task class and uses it.

Vendor agent files for offline use

forgent vendor          # copies source .md files into the registry
forgent vendor --force  # overwrite existing vendored files

After vendoring, the sources/ directory can be deleted — the registry is self-contained.

Memory system

The memory store (src/forgent/memory/store.py) is a SQLite database with an FTS5 virtual table for full-text recall. Every interaction lands in there:

Memory type What it is
task the original user request
routing the router's decision and reasoning
agent_output what an agent produced
decision a checkpoint or branch decision
agent_doc curated agent definitions (for retrieval-aware routing)
note free-form notes from the system or user
artifact file paths or blobs produced by agents

The orchestrator automatically calls MemoryStore.context_for(task) before every run, which returns a ranked context block (relevant outputs + relevant past routing decisions + institutional knowledge) ready to inject into the next agent's system prompt. This is why the system gets smarter over time — past routing decisions become few-shot examples for the router.

Adding agents

  1. Find a strong candidate in sources/ or any GitHub repo.
  2. Add an entry to src/forgent/registry/catalog.yaml with name, ecosystem, category, capabilities, source_repo, source_path, description.
  3. Run forgent vendor to copy the file into src/forgent/registry/agents/.
  4. Smoke test: forgent run "task that should match this agent".

Adding ecosystems

Implement forgent.adapters.base.Adapter and register it in Orchestrator.__init__. The adapter interface is intentionally minimal:

class Adapter(ABC):
    ecosystem: Ecosystem

    async def run(self, agent: AgentSpec, task: str, context: str = "") -> AdapterResult: ...

Source repos used for curation

Repo Stars What was taken
VoltAgent/awesome-claude-code-subagents high ~45 agents across 10 categories — primary source
wshobson/agents 32.7k★ plugin-style agents and orchestration patterns
0xfurai/claude-code-subagents high language/framework experts (138 single-file agents)
lastmile-ai/mcp-agent growing workflow patterns (router, orchestrator, parallel, evaluator-optimizer, swarm, deep-orchestrator)
modelcontextprotocol/servers official filesystem, fetch, and other reference MCP servers
github/github-mcp-server official GitHub MCP server

Contributing

This project is MIT-licensed and free to use forever. Contributions of any size are welcome — see CONTRIBUTING.md for the quickstart (make install && make test).

Ideas for high-value contributions:

  • New ecosystem adapters (AutoGen, Semantic Kernel, Bedrock Agents, Vellum)
  • Vector embedding column for the memory store (currently FTS5-only)
  • A web dashboard for browsing sessions and forged agents
  • Turning the catalog into a YAML registry that pulls fresh agents from upstream weekly
  • A forge_from_examples command that learns a new agent from a few input/output pairs

Funding model — coming in v0.2

Forgent is experimenting with a contributor-reward model: a portion of donations will be pooled and shared with contributors who land merged PRs, distributed transparently via Open Collective. The infrastructure (GitHub Sponsors + Open Collective fiscal hosting) is being set up — the funding accounts will go live in v0.2, at which point this section will be replaced with the real signup links and contribution rules.

Until then: contribute because you want the project to exist. Once funding is live, prior contributors will be retroactively credited.

License

MIT. Curated agent definitions retain their original licenses from the source repos.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forgent-0.4.0.tar.gz (304.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forgent-0.4.0-py3-none-any.whl (415.3 kB view details)

Uploaded Python 3

File details

Details for the file forgent-0.4.0.tar.gz.

File metadata

  • Download URL: forgent-0.4.0.tar.gz
  • Upload date:
  • Size: 304.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for forgent-0.4.0.tar.gz
Algorithm Hash digest
SHA256 9b107a7eb3fa930e1dc0cd2db41114189cd8b2a7bab986b6694c4edca8c726e3
MD5 d3e54fcd41d0e5e48a745f9121a48817
BLAKE2b-256 2216cbe0aaf850e6d1ab059fd8b622b645216040de160926a1ad73f120a5aab5

See more details on using hashes here.

File details

Details for the file forgent-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: forgent-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 415.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for forgent-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 afb1cda896063a9ca4f98289ce90754d24b34ae003b4e5abfff27d57b1ad0f34
MD5 176b0e4dda2ee4c20bc5c20ce2f7f15c
BLAKE2b-256 d8fb9783ca7dff5fc8fd4f704e1524858fd391251df3725d6e0c5f0d0226bc23

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page