MetaGPT

Turns a one-line software requirement into a coordinated, role-based development workflow.

Stars
★ 71k
Last updated
9mo ago
License
MIT
Primary language
Python

At a glance

How it runs
CLILibrary / SDKFramework
Works with
Universal · cross-platformOpenAI API
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Python >=3.9, <3.12Node.jspnpmShell / CLINetwork accessLocal filesystem
Typical use
A solo developer with only a prompt such as “Create a 2048 game” who wants a project repository created in a local workspace.
Not a fit if
  • Users on Python 3.12+ who do not want to also install Node.js and pnpm
  • Users wanting zero-config startup rather than editing ~/.metagpt/config2.yaml with their own API key

What does this agent do, and when should you use it?

MetaGPT is a multi-agent framework for software development that assigns a requirement to roles including product managers, architects, project managers, and engineers. Its stated philosophy, “Code = SOP(Team),” applies standard operating procedures to teams composed of LLMs. It can produce user stories, competitive analysis, requirements, data structures, APIs, and documents, and its CLI creates a repository in ./workspace. It also exposes Python library entry points, including generate_repo and ProjectRepo. The repository includes a DataInterpreter role that can be invoked asynchronously for data-analysis tasks with plots.

A user can submit a natural-language requirement with metagpt "Create a 2048 game"; MetaGPT processes it through its software-company roles and SOPs, then creates a repository in ./workspace. In Python, callers can use metagpt.software_company.generate_repo("Create a 2048 game") to obtain a ProjectRepo and print its project structure. Before execution, metagpt --init-config creates ~/.metagpt/config2.yaml, where llm.api_type, model, base_url, and api_key are configured. For data work, callers instantiate metagpt.roles.di.data_interpreter.DataInterpreter and run a request through await di.run(...).

  1. A solo developer with only a prompt such as “Create a 2048 game” who wants a project repository created in a local workspace.
  2. A product lead who needs a short requirement expanded into user stories, requirements, data structures, APIs, and documentation.
  3. A team evaluating a software-development SOP carried out by distinct product-manager, architect, project-manager, and engineer roles.
  4. A Python developer who wants to call generate_repo from an application and inspect the resulting structure through ProjectRepo.
  5. A data analyst who wants to use DataInterpreter to analyze the sklearn Iris dataset and request a plot.

How do you install or deploy this agent?

Use Python 3.9 or later but below 3.12, and install Node.js and pnpm before actual use.

Install:

pip install --upgrade metagpt

Initialize configuration:

metagpt --init-config

Edit ~/.metagpt/config2.yaml with at least:

llm.api_type: "openai"
llm.model: "gpt-4-turbo"
llm.base_url: "https://api.openai.com/v1"
llm.api_key: "YOUR_API_KEY"

The README also lists Azure, Ollama, and Groq among the available api_type options.

How do you use this agent?

After configuration, run:

metagpt "Create a 2048 game"

This creates a repository in ./workspace. For library use:

from metagpt.software_company import generate_repo
repo = generate_repo("Create a 2048 game")
print(repo)

For data analysis, create DataInterpreter() and call await di.run("Run data analysis on sklearn Iris dataset, include a plot") inside an asynchronous function.

What are this agent's strengths and limitations?

Pros
  • Orchestrates named software-company roles—product manager, architect, project manager, and engineer—rather than exposing only a single generation call.
  • A single natural-language requirement can target multiple software artifacts, including user stories, competitive analysis, requirements, data structures, APIs, documents, and a project repository.
  • Provides a metagpt CLI, Python interfaces through generate_repo and ProjectRepo, and a DataInterpreter example.
  • Its configuration example explicitly supports OpenAI and lists Azure, Ollama, and Groq as additional api_type options.
Limitations
  • The supported Python range is limited to 3.9 through below 3.12, and actual use also requires Node.js and pnpm.
  • It requires configuration of a model service’s api_key, model, and endpoint; the README provides no model-usage cost estimate.
  • The default CLI flow creates a project repository in ./workspace and creates or reads ~/.metagpt/config2.yaml in the user’s home directory.
  • The software-company diagram is labeled “Gradually Implementing,” and the supplied material does not itemize the implementation completeness of every role workflow.

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
MetaGPT This agent 41 · Major gaps CLIFree + model costs ★ 71k 9mo ago Python OpenAI API
Lemon AI 39 · Major gaps Self-hosted serviceFreemium ★ 1.6k 9mo ago JavaScript OpenAI API · Claude API
SpecShip Engineering Workflow 61 · Some gaps Agent plugin / skill ★ 257 3mo ago Shell —
OpenLoopX · LLM4AD Next 58 · Major gaps CLIFree + model costs ★ 694 1d ago Python OpenAI API · Claude API

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
41/ 100 5-point scale 2.1 / 5
Trust 7/29
Reliability 6/14
Adaptability 9/18
Convention 9/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust7 / 29 · 1.2/5

Evidence shows: README requires users to configure API keys but does not mention least privilege; test config contains mock keys but not production handling; dependency list includes many packages but no security audit; external network calls (e.g., search, API) exist but no user confirmation mechanism; no rollback mechanism; source attribution via README authors and contact. Deductions: lack of user confirmation, data flow transparency, and rollback.

Reliability6 / 14 · 2.1/5

Evidence shows: README and test config are consistent, but dependency versions are pinned, potentially affecting availability; failure messages not clearly documented. Deductions: dependency availability not fully ensured, failure messages unclear.

Adaptability9 / 18 · 2.5/5

Evidence shows: README provides multiple usage scenarios (CLI, library, Data Interpreter), but capability boundaries not explicit; trigger precision not detailed; environment requirements (Python version, Node, pnpm) listed. Deductions: capability boundaries and trigger precision insufficient.

Convention9 / 18 · 2.5/5

Evidence shows: README structure clear, installation instructions detailed, examples and FAQ links present, but known limitations not explicit; version changelog not provided; maintenance responsibility via contact email and Discord. Deductions: known limitations and version changelog missing.

Effectiveness7 / 13 · 2.7/5

Evidence shows: Output is a code repository, high usability; marginal value clear (multi-agent framework); cost-benefit not detailed. Deductions: cost-benefit analysis insufficient.

Verifiability3 / 8 · 1.9/5

Evidence shows: README claims partially backed by paper citations, but no specific evidence; cross-source verification insufficient; facts and inferences not clearly separated. Deductions: claim traceability insufficient, facts and inferences mixed.

Risks and how to mitigate them
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Pinned dependency versions may affect security updates and compatibility.
  • Test config contains mock keys, but production key management not described.
  • External network calls (e.g., search, API) may involve data exfiltration, requiring user confirmation.
Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 11cdf466d042
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v0.8.2
    Release notes excerpt
    fix bugs and some merged PRs
    View on GitHub ↗
  2. v0.8.1 Patch release: v0.8.1
    Release notes excerpt
    fix bug
    View on GitHub ↗
  3. v0.8.0 v0.8.0: Introduction of Data Interpreter, Integration with RAG, and Expanded Support for LLMs
    Release notes excerpt
    Release Highlights Data Interpreter: Open Source and Better "Devin" Data Interpreter is an autonomous agent that uses notebook, browser, shell, stable diffusion, and any custom tool to complete tasks. Data Interpreter has achieved state-of-the-art scores in machine learning, mathematical reasoning, and open-ended tasks, and can analyze stocks, imitate websites, and train models. It can debug code by itself, fix failures by itself, and solve a large number of real-life problems by itself. …
    View on GitHub ↗

FAQ

What model credentials are required?
The configuration example uses the OpenAI API and requires api_key, model, and base_url in ~/.metagpt/config2.yaml. The README also lists Azure, Ollama, and Groq as api_type options.
Where does it write files locally?
metagpt --init-config creates ~/.metagpt/config2.yaml, and the example CLI command creates a project repository in ./workspace.
Can it be embedded in an existing Python application?
Yes. The README shows library usage through generate_repo and ProjectRepo, plus asynchronous calls to DataInterpreter.run.
Why are Node.js and pnpm needed after installation?
The README explicitly requires Node.js and pnpm before actual use, but the supplied material does not specify which individual steps use them.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents