walid@portfolio:~/lab/metagpt-software-company$
cd../lab
01ideaSep 2026

A software company in one command

Agents with job titles — product manager, architect, engineer — turning one sentence into a PRD, a design and code

Instead of one chatbot doing everything, each agent gets a job title and a deliverable: the product manager writes requirements, the architect writes the system design, the engineer writes the files. You type one sentence and get a folder with all three. It costs real money per run, ships with a $3 cap for a reason, and the honest framing is that nothing here promises working software on the first try.

Multi-agentPythonOpen sourceMITCodegenThe repoOn PyPIDocs
i
The idea worth taking, even if you never install it

The project’s own framing is that code equals a standard operating procedure applied to a team — it encodes how a real software team hands work along, and gives those procedures to language models to follow. That is a different bet from “one very capable assistant”: the structure does the work, and each role is judged on a concrete artefact rather than on being generally helpful.

The team

Five roles, five deliverables

Roles as named in the current source. Each one produces a document or files, not a conversation.

RoleWhat it produces
Team leaderRoutes the idea through the team in order.
Product managerThe requirements document: goals, user stories, competitive analysis, requirement pool.
ArchitectSystem design — data structures, interfaces, program call flow.
EngineerThe actual source files, and fixes to them.
Data analystData and analysis tasks, when the idea calls for them.
!
Read this before the first run

It spends money on your own API key every single run — there is no free tier here, only your provider’s bill. It ships with a $3 budget cap by default, which is a brake you should raise deliberately rather than by accident. Start with a small idea. And treat the output as a draft: nothing about this promises working software on the first attempt.

Requirements

What you need

The Python constraint is the one that actually stops people — it is an upper bound, not just a minimum.

ItemWhyRequired
Python 3.9, 3.10 or 3.11The package declares >=3.9 and <3.12. Python 3.12 or newer will simply refuse to install it — verified on the package index.Yes
pipInstalls the package.Yes
An LLM API keyThe default configuration targets one provider, but others work by changing the api_type field.Yes — costs money
Node.js and pnpmThe project asks for these before real use; some generated projects and tools need them.Before real runs
A terminalBasic commands only.Yes
GitOnly if you install from a clone rather than the package index.Optional
Step 1

Install it

Pick one path, not both. The package-index release is the stable one; installing from the repository gets the newer role set described above.

terminal15 lines
# check the version constraint first — this is the usual failure
python --version
# on 3.12+, make a 3.11 environment instead:
conda create -n metagpt python=3.11 && conda activate metagpt

# stable path
pip install --upgrade metagpt

# or the newest code
pip install --upgrade git+https://github.com/FoundationAgents/MetaGPT.git

# needed before real runs
npm install -g pnpm

metagpt --help
Step 2

Point it at your model

Generate the template with the init-config command, then edit the one block that matters. The file lives in your home folder, deliberately outside any project.

~/.metagpt/config2.yaml5 lines
llm:
  api_type: "openai"      # or azure / ollama / groq etc.
  model: "your-model"
  base_url: "https://api.openai.com/v1"
  api_key: "YOUR_API_KEY"
!
The key lives in that file and nowhere else

Never paste it into a prompt, a screenshot, a chat or a repository. Its home folder location is the point — it sits outside every project, so it cannot be swept into a commit. If one ever leaks, revoke it in your provider’s dashboard and issue a new one rather than hoping.

Step 3

One sentence in, a folder out

The agents talk in the terminal as they go — requirements, then design, then code. A few minutes is normal.

terminal9 lines
mkdir metagpt-projects && cd metagpt-projects
metagpt "Create a 2048 game"

# where it lands
workspace/
  <project_name>/
    docs/prd/             requirements + user stories
    docs/system_design/   data structures, APIs, file list
    <project_name>/       the generated source code
Flags

The ones that matter

FlagDefaultWhat it does
--investment$3.00Budget cap in dollars. It stops with an insufficient-funds error when the estimated cost passes this.
--n-round5How many rounds the team runs. More rounds means more work and more cost.
--project-nameautoName the output folder yourself instead of accepting a generated one.
--incoffIncremental mode — improve an existing project instead of starting fresh.
--project-pathemptyPoint at an existing project. Used together with incremental mode.
--recover-pathnoneResume a run from a saved team state.
!
Three flags that look real and are not

The code-review, run-tests and implement flags still appear in the help output, but on the current main branch the code behind them is commented out — so passing them does nothing. Older package releases may behave differently. This is the kind of detail you only find by reading the source rather than the help text, and it is worth knowing before you build a workflow around one of them.

Money and safety

What to keep an eye on

ThingWhat to know
API spendEvery run bills your provider. Cost scales with the model and the size of the idea. The budget cap is the brake.
Model choiceA cheaper model in the config lowers cost directly; results may be weaker. This is the main dial you have.
Generated codeA draft. Read it before running it, and never run generated code that touches money, accounts or production data unchecked.
Local modelsPointing api_type at a local runtime gives you zero API cost. Quality varies, and the guide this came from did not test it.
When it breaks

Troubleshooting

ProblemFix
pip says no matching distributionYou are on Python 3.12 or newer. Make a 3.11 environment and retry — this is the most common failure.
Command not foundYour Python scripts folder is not on PATH. Invoke the module directly, or reopen the terminal.
Missing argument for the ideaPut the idea in quotes.
Insufficient fundsThe budget cap was reached. Re-run with a higher cap, or simplify the idea.
401 or authentication errorThe key is wrong or has no credit. Check both the config file and your provider billing.
Config not foundRe-run the init-config command; it must create the file in your home folder.
Start here

Setup checklist

Python 3.9 to 3.11 installed, and verified — not assumed.The package installed from the index.Node.js and pnpm installed.Config template generated, and the key added to it.A first run with a small idea and the default budget cap left alone.The output folder opened, and the requirements, design and code actually read.
!
Correction — the project has moved

The guide points at the original author’s account throughout, including in its install and clone commands. The canonical repository now lives under a separate organisation and carries around 70,000 stars; the original author still hosts the documentation and demo repositories under their own account. Transferred repositories redirect on GitHub, so the guide’s commands should still resolve — but the links here point at the current home rather than the old one, and that is where issues and releases actually are.

i
Provenance

Three of the guide’s claims were checked against the package index on 17 September 2026 and all hold exactly: the published release is 0.8.2, the Python constraint really is >=3.9 and <3.12, and the licence is MIT. The version split the guide describes — a more conservative published release alongside a newer main branch with the expanded role set — is consistent with what the index shows. The repository move above was found while verifying, and is the one thing corrected rather than carried across. The author’s byline and follow prompt are not included.

next →
Rebuild it, or keep paying
← all experiments