How to run MetaGPT with a self-hosted model on a cloud GPU
Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install MetaGPT from the official repository with the commands the README prints, serve a model on that machine, and set api_type, base_url, and model in config2.yaml to the endpoint on that machine. Copy ~/.metagpt/config2.yaml and the ./workspace directory before you destroy the instance, because destroying the instance deletes its disk.
An agent can rent the GPU and run this framework on it. The agent pages are GPU compute for AI agents and the agent integration guide. Those pages are how an agent discovers a GPU and runs work on it. This page is the MetaGPT install. A platform whose single-container guide sets CHAT_BASE_URL to http://host.docker.internal:11434/v1 for a local OpenAI-compatible server is How to run AutoGPT with a self-hosted model on a cloud GPU. An agent whose Docker command publishes port 5080, and whose Ollama provider sets api_base to http://host.docker.internal:11434, is How to run Agent Zero with a self-hosted model on a cloud GPU. An agent whose Ollama example sets base_url to http://localhost:11434/v1 is How to run OpenManus with a self-hosted model on a cloud GPU. A chat app whose Docker page runs docker compose up -d and whose Ollama page sets baseURL to http://localhost:11434/v1/ is How to run LibreChat agents with a self-hosted model on a cloud GPU. A chat app whose README runs docker compose up -d and whose environment page sets OLLAMA_PROXY_URL to http://127.0.0.1:11434 is How to run LobeChat agents with a self-hosted model on a cloud GPU. A terminal agent whose install page runs curl -fsSL https://www.openinterpreter.com/install | sh, and whose models page sets the Ollama base URL to http://localhost:11434/v1, is How to run Open Interpreter with a self-hosted model on a cloud GPU. A workspace app whose Docker quickstart publishes port 3001, and whose Ollama page sets the URL to http://127.0.0.1:11434, is How to run AnythingLLM agents with a self-hosted model on a cloud GPU. A repository agent whose local-models section sets api_base to http://localhost:11434 is How to run SWE-agent with a self-hosted model on a cloud GPU. A workflow editor whose Docker install publishes port 5678, and whose Ollama credentials default the Base URL to http://localhost:11434, is How to run n8n AI agents with a self-hosted model on a cloud GPU. A CLI whose providers page sets OLLAMA_HOST to http://localhost:11434 is How to run the goose agent with a self-hosted model on a cloud GPU. A coding agent whose providers page sets package to the OpenAI-compatible provider is How to use OpenCode with a self-hosted model on a cloud GPU. A canvas whose self-host page opens http://localhost/install is How to run Dify with a self-hosted model on a cloud GPU. A canvas whose ChatOllama page names a base URL is How to run Flowise with a self-hosted model on a cloud GPU. A flow editor whose Ollama component defaults the base URL to http://127.0.0.1:11434 is How to run Langflow with a self-hosted model on a cloud GPU. A CLI whose connect help sets --base-url to http://localhost:8000/v1 for openai-compatible is How to run Letta agents with a self-hosted model on a cloud GPU. A browser chat whose serve command listens on port 8080 is How to run Open WebUI on a cloud GPU. A Python agent library whose CodeAgent can take TransformersModel or an OpenAI-compatible server is How to run smolagents with a self-hosted model on a cloud GPU. A crew whose LLM class takes base_url for Ollama or an OpenAI-compatible server is How to run CrewAI with a self-hosted model on a cloud GPU. A graph runtime whose overview example does not name a model is How to run LangGraph agents with a self-hosted model on a cloud GPU. An AgentChat library whose Ollama example sets model to llama3.2 is How to run AutoGen agents with a self-hosted model on a cloud GPU. A typed agent whose vLLM example sets base_url to http://localhost:8000/v1 is How to run Pydantic AI agents with a self-hosted model on a cloud GPU. A framework whose README sets Ollama and HuggingFaceEmbedding is How to build LlamaIndex agents with a self-hosted model on a cloud GPU. A browser agent whose models page sets base_url to http://localhost:11434/v1 is How to run browser-use with a self-hosted model on a cloud GPU. A pipeline whose OllamaChatGenerator sets url to http://localhost:11434 is How to run Haystack agents with a self-hosted model on a cloud GPU. A program whose language-models page sets dspy.LM to ollama_chat/llama3.2:1b is How to run DSPy with a self-hosted model on a cloud GPU. An agent whose Ollama example sets id to llama3.1:8b is How to run Agno agents with a self-hosted model on a cloud GPU. A TypeScript agent whose local-models section sets url on the model object is How to run Mastra agents with a self-hosted model on a cloud GPU. A ChatAgent whose vLLM example sets ModelPlatformType.VLLM is How to run CAMEL-AI agents with a self-hosted model on a cloud GPU. A local agent UI whose Docker command publishes port 3000 is How to run OpenHands with a self-hosted model on a cloud GPU. A general vLLM install is How to serve an OpenAI-compatible API with vLLM on a cloud GPU. A general SGLang install is How to run SGLang on a cloud GPU. Ollama’s install and port 11434 are How to run Ollama on a cloud GPU. CloudGPU’s hosted gateway is a different base URL: How do I use an OpenAI-compatible API for open models?. How published weight sizes are read: How much VRAM do I need to run an LLM?. The tunnel is How to use SSH port forwarding on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. If the process raises no kernel image on an RTX 5090: How to fix CUDA no kernel image on an RTX 5090.
The README license badge is MIT.
The commands below are copied from the upstream files named in each step, at the commit in Sources. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked. Requesting geekan/MetaGPT on 2026-11-14 returned FoundationAgents/MetaGPT. The README and the install docs still print the geekan/MetaGPT clone URL. This page copies that URL because that is what those files print. The README’s model strings and the base_url that names a vendor host are not copied. The comment on api_type names other providers this page does not copy. A news section and a citation block are not copied.
What the docs print about memory
The README, config/config2.example.yaml, config/config2.yaml, docs/install/cli_install.md, and docs/install/docker_install.md, read 2026-11-14, do not print a GPU GB figure. LLMConfig.max_token in metagpt/configs/llm_config.py defaults to 4096. The comment says it is for chat completion. context_length is optional and the comment says max input tokens. This page does not treat either field as vram_gb. The class sets timeout to 600. The example file’s comment says an optional timeout of 600, and that if it is set to 0 the default value is 300. Those are request-timeout lines. This page does not treat them as a startup time and does not choose between them. The model information table on unsloth/Llama-3.1-8B-Instruct prints parameter counts 8B, 70B, and 405B, and a context length of 128k. This page does not treat those parameter counts as vram_gb. A later section of that card names training hardware. This page does not copy that section and does not use it as an inference memory figure. This page does not mark a catalog row as enough.
GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from GET /v1/public/gpu-catalog (generated_at 2026-11-14T13:05:18.022Z). The catalog response also includes an availability field. This page does not copy it. Every catalog row below has min_gpu_count 1. Rows are sorted by vram_gb, then by name. Which listing you can start is on Deploy.
The catalog template list had no MetaGPT template. It did have Ollama templates (jupyterlab-ollama, ollama-qwen3, ollama). Those templates are a different install. This page does not treat them as MetaGPT.
| Catalog name | vram_gb |
|---|---|
| RTX 2080 | 8 |
| RTX 3080 | 10 |
| RTX 2080 Ti | 11 |
| RTX 3080 Ti | 12 |
| V100 16G | 16 |
| A30 | 24 |
| RTX 3090 | 24 |
| RTX 4090 | 24 |
| RTX 4090D | 24 |
| RTX 4080 SUPER 32G | 32 |
| RTX 5090 | 32 |
| RTX 5090D | 32 |
| V100 32G | 32 |
| A100 40G | 40 |
| A800 40G | 40 |
| A40 | 48 |
| RTX 4090 48G | 48 |
| RTX 4090D 48G | 48 |
| RTX A6000 | 48 |
| Ascend 910B | 64 |
| NVIDIA RTX PRO 5000 72G | 72 |
| RTX PRO 5000 72G | 72 |
| A100 80G | 80 |
| A800 80G | 80 |
| H800 | 80 |
| RTX 6000D | 83 |
| H20 96G | 96 |
| RTX PRO 6000 96G | 96 |
| RTX PRO 6000 Max-Q | 96 |
| H20-3e 141G | 141 |
Install
Main of FoundationAgents/MetaGPT on 2026-11-14 was commit 11cdf466d042aece04fc6cfd13b28e1a70341b1f, committed 2026-01-21T10:12:32Z. pushed_at was 2026-01-21T10:12:33Z. The GitHub license field was MIT. The README license badge is MIT. setup.py at that commit sets python_requires to >=3.9, <3.12. The README says Python 3.9 or later, but less than 3.12. docs/install/cli_install.md lists Python 3.9 on the three systems in its table. docs/FAQ-EN.md says Python 3.9 / 3.10 is more stable. This page does not choose among those lines.
The README prints this install, and says to install node and pnpm before actual use. It does not print the node or pnpm install commands.
pip install --upgrade metagpt
# or `pip install --upgrade git+https://github.com/geekan/MetaGPT.git`
# or `git clone https://github.com/geekan/MetaGPT && cd MetaGPT && pip install --upgrade -e .`
docs/install/cli_install.md prints a different install. It is not the README block. This page does not merge them.
git clone https://github.com/geekan/MetaGPT.git
cd MetaGPT
pip3 install -e .
mkdir ~/.metagpt
cp config/config2.yaml ~/.metagpt/config2.yaml
The same file then prints metagpt "Create a 2048 game in python". The README’s run line is a different string. This page does not merge them.
docs/install/docker_install.md prints a third install:
docker pull metagpt/metagpt:latest
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:latest cat /app/metagpt/config/config2.yaml > /opt/metagpt/config/config2.yaml
The same file then prints a docker run that mounts /opt/metagpt/config/config2.yaml and /opt/metagpt/workspace and runs metagpt "Write a cli snake game". That prompt is not the README prompt. This page does not merge them.
The files this page read do not print an SSH command. The tunnel for a port you choose to publish is How to use SSH port forwarding on a cloud GPU.
api_type, base_url, and model
The README says metagpt --init-config creates ~/.metagpt/config2.yaml. The README then prints an llm block. That block’s model strings and its base_url are not copied. The comment on base_url says or forward url / other llm url.
config/config2.example.yaml sets the same keys with base_url: "YOUR_BASE_URL", api_key: "YOUR_API_KEY", and proxy: "YOUR_PROXY". Its api_type value is the OpenAI-compatible setting name the file prints. The comment on that line names ollama among other names this page does not copy. Its model value is not copied. config/config2.yaml is a shorter file. Its base_url is a vendor host this page does not copy. docs/install/cli_install.md copies config/config2.yaml, not config/config2.example.yaml. This page does not merge those two files.
LLMType in metagpt/configs/llm_config.py sets OLLAMA to ollama and the comment says /chat at the Ollama API. It also sets OPEN_LLM to open_llm. The role comments in config2.example.yaml name open_llm. This page does not treat ollama and open_llm as the same value, and it does not copy the other enum names. LLMConfig.api_type defaults to the OpenAI-compatible setting. LLMConfig.base_url defaults to a vendor host this page does not copy. LLMConfig.api_key defaults to sk-.
metagpt/provider/ollama_api.py says the Ollama provider is for a self-hosted model with Ollama which is not the OpenAI-compatible API. OllamaMessageChat.api_suffix returns /chat. OllamaLLM.__init_ollama asserts config.base_url and the message is ollama base url is required!. The MetaGPT files this page read do not print a localhost URL for that field. This page does not invent one. Point base_url at the Ollama server you started on this machine, using only a URL the server’s own docs print. How to run Ollama on a cloud GPU is that install. This page does not paste that guide’s port into MetaGPT’s example, because MetaGPT’s example does not print it.
The OpenAI-compatible path is the example’s api_type value with base_url set to the server on this machine. How to serve an OpenAI-compatible API with vLLM on a cloud GPU is the general server install. The example’s base_url placeholder is YOUR_BASE_URL. This page does not replace that placeholder with a URL the example does not print.
The MetaGPT files this page read do not print hf download. The block below is added on this page. How to download a Hugging Face model prints pip install -U "huggingface_hub" and hf download. This page did not download the repository. The MetaGPT files this page read do not print this repository id. It is not the model string in the example.
pip install -U "huggingface_hub"
hf download unsloth/Llama-3.1-8B-Instruct
On 2026-11-14, GET https://huggingface.co/api/models/unsloth/Llama-3.1-8B-Instruct reported gated false, cardData.license llama3.1, pipeline_tag text-generation, lastModified 2025-05-09T19:32:57.000Z, and sha 4699cc75b550f9c6f3173fb80f4703b62d946aa5. The card YAML also includes extra_gated_prompt. Those two fields are not the same fact. The card’s base_model field names a repository this page does not copy. This page did not run hf download.
A run
The README prints:
metagpt "Create a 2048 game"
The comment says this will create a repo in ./workspace. The library example in the same section calls generate_repo("Create a 2048 game") and says the result is a ProjectRepo. That call is not the CLI line. This page does not merge them. docs/install/cli_install.md prints metagpt "Create a 2048 game in python". docs/install/docker_install.md prints metagpt "Write a cli snake game". Those three strings are not the same command.
When it fails
CUDA out of memory. The MetaGPT files this page read print no GPU GB figure. If the model server raises CUDA out of memory, use how to fix CUDA out of memory on a cloud GPU. This page does not pick a smaller model id for you.
“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The MetaGPT README and the config files this page read do not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this program on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.
API key. LLMConfig.check_llm_key raises when api_key is "", None, or YOUR_API_KEY. One of the messages is Please set your API key in config2.yaml. The Ollama provider raises ollama base url is required! when base_url is missing. The example does not print the URL to put there.
Two config files. metagpt --init-config writes ~/.metagpt/config2.yaml. docs/install/cli_install.md copies config/config2.yaml to that same path. docs/install/docker_install.md writes /opt/metagpt/config/config2.yaml from the image. This page does not choose which file a later edit should change.
What to copy off, then destroy
The README says the CLI run creates a repo in ./workspace. Copy that directory and ~/.metagpt/config2.yaml before you destroy the instance. The Docker install maps host directory /opt/metagpt/workspace and host file /opt/metagpt/config/config2.yaml. Those paths are not ./workspace or ~/.metagpt/config2.yaml. Copy the pair that matches the install you ran.
Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.
The billing page states the billing rule in these words:
Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.
Amounts are not copied here.
Frequently asked questions
What memory figure do the MetaGPT docs print?
The README, config2.example.yaml, config2.yaml, cli_install.md, and docker_install.md do not print a GPU GB figure. LLMConfig.max_token defaults to 4096 and context_length is described as max input tokens. This page does not treat either field as vram_gb. The class timeout is 600 and the example comment says that 0 means a default of 300. Those lines are request timeouts. The unsloth/Llama-3.1-8B-Instruct model information table prints parameter counts 8B, 70B, and 405B, and context length 128k. This page does not treat those figures as vram_gb. This page does not mark a catalog row as enough. Which listing you can start is on https://cloudgpu.app/deploy.
Which install lines do the docs print?
The README prints pip install --upgrade metagpt, and two commented alternatives that clone https://github.com/geekan/MetaGPT. Requesting geekan/MetaGPT returns FoundationAgents/MetaGPT. setup.py requires Python at least 3.9 and below 3.12. cli_install.md prints a separate clone, pip3 install -e ., and a copy of config/config2.yaml to ~/.metagpt/config2.yaml. docker_install.md prints docker pull metagpt/metagpt:latest and a different prompt. This page does not merge the three installs. Main on 2026-11-14 was commit 11cdf466d042aece04fc6cfd13b28e1a70341b1f. This page did not run the commands.
How do the docs point MetaGPT at a server on the same machine?
metagpt --init-config creates ~/.metagpt/config2.yaml. config2.example.yaml sets base_url to YOUR_BASE_URL. Its api_type value is the OpenAI-compatible setting name the file prints, and the comment names ollama. The model value on that line is not copied. LLMType.OLLAMA is the string ollama. ollama_api.py says that provider is not the OpenAI-compatible API, requests the suffix /chat, and requires base_url. Those files do not print a localhost URL. The README run command is metagpt “Create a 2048 game”, which writes ./workspace. The files do not print an SSH command.
What license sentence does the README print?
The README license badge is MIT. The GitHub license field on 2026-11-14 was MIT. That license text is not a CloudGPU rate.
Sources (read 2026-11-14, Asia/Shanghai)
- FoundationAgents/MetaGPT README at commit
11cdf466d042aece04fc6cfd13b28e1a70341b1f, committed 2026-01-21T10:12:32Z. GitHub license field MIT.pushed_at2026-01-21T10:12:33Z. Requesting geekan/MetaGPT returned this repository. License badge MIT.pip install --upgrade metagptand the two commented clone lines.metagpt --init-config.metagpt "Create a 2048 game"writes./workspace. The READMEmodelstrings and vendorbase_urlare not copied. News and the citation block are not copied setup.pyat that commit.python_requires>=3.9, <3.12config/config2.example.yamlat that commit.base_urlYOUR_BASE_URL.api_typeis the OpenAI-compatible setting. The comment namesollama. Themodelvalue is not copied. Role blocks are not copiedconfig/config2.yamlat that commit. Shorterllmblock. Itsbase_urlis a vendor host this page does not copymetagpt/configs/llm_config.pyat that commit.LLMType.OLLAMAisollama.LLMType.OPEN_LLMisopen_llm.max_tokendefault4096.timeoutdefault600.api_keydefaultsk-.check_llm_keyrejects"",None, andYOUR_API_KEY. The defaultbase_urlis a vendor host this page does not copy. Other enum names are not copiedmetagpt/provider/ollama_api.pyat that commit. The module comment says this Ollama path is not the OpenAI-compatible API.api_suffix/chat. Assert messageollama base url is required!docs/install/cli_install.mdanddocs/install/docker_install.mdat that commit. Separate installs. PromptsCreate a 2048 game in pythonandWrite a cli snake game. Docker mounts/opt/metagpt/config/config2.yamland/opt/metagpt/workspacedocs/FAQ-EN.mdat that commit. Python 3.9 / 3.10. A vendor host and a billing sentence on that page are not copied- Hugging Face model API
unsloth/Llama-3.1-8B-Instruct:gatedfalse,cardData.licensellama3.1,pipeline_tagtext-generation,lastModified2025-05-09T19:32:57.000Z,sha4699cc75b550f9c6f3173fb80f4703b62d946aa5. The card YAML includesextra_gated_prompt. The model information table prints 8B, 70B, 405B, and 128k.base_modelnames a repository this page does not copy.hf downloadis added on this page and was not run. The training-hardware section is not copied - Public GPU memory: https://cloudgpu.app/v1/public/gpu-catalog (
generated_at2026-11-14T13:05:18.022Z).GET /v1/public/compute-capabilitiesreturned feature flags and no GPU list. The catalog had no MetaGPT template
Cards you can start are on the Deploy page. Amounts are not copied here.
Last updated: 2026-11-14 (Asia/Shanghai).