AI software-engineering agent framework
The OpenDevin you're looking for is called OpenHands now — and one 24GB card turns it into a private coding agent
The paper itself says "f.k.a. OpenDevin": the project was renamed OpenHands and the repos moved from All-Hands-AI to the OpenHands org. The framework barely touches your GPU — every gigabyte of VRAM goes to the model you self-host.
OpenDevin · self-hosted
Identity first. OpenDevin was the open-source software-engineering agent platform started in 2024 by Xingyao Wang and collaborators. It was renamed OpenHands, and the ICLR 2025 paper is titled "OpenHands: An Open Platform for AI Software Developers as Generalist Agents (f.k.a. OpenDevin)". So every "OpenDevin install guide" you find is really telling you to install OpenHands. The GitHub org changed from All-Hands-AI to OpenHands; the licence is still MIT.
What matters more is that the project has split into four repos and changed shape. The flagship `OpenHands/OpenHands` repo now hosts Agent Canvas — a self-hosted control center for coding agents, currently 1.15.0, launched via the npm package `@openhands/agent-canvas` or the image `ghcr.io/openhands/agent-canvas:1.15.0` on port 8000, requiring Node.js 22.12+ and uv. The engine that actually runs agents lives in `OpenHands/software-agent-sdk` (PyPI: `openhands-sdk`, `openhands-tools`, `openhands-agent-server`, all on 1.43.x), carrying a SWE-Bench score of 77.6. The other two repos are `typescript-client` and `automation` (schedules and webhooks). The docs now file "Local GUI", "CLI" and "V0 Reference" under Deprecated Projects, with the old V0 Runtime concept replaced by V1 Sandboxes — follow a 2024-era `openhands-ai` tutorial and you will fight it the whole way.
OpenHands itself is an orchestration layer: it manages conversations, tool calls, file edits, the terminal and the sandbox, and it runs on CPU. The VRAM bill belongs entirely to the model. On 2026/05/21 the docs updated their recommendation: for self-hosting, start with Qwen3.6-35B-A3B — a 35B-total MoE activating roughly 3B parameters per token (256 experts, 8 routed per token), Apache-2.0, 262144 native context, vision included. The official bar is "a recent GPU with at least 24GB of VRAM for quantized variants, or multiple GPUs for full precision and larger context windows". Which is exactly why renting beats buying: you pay only for the hours the agent is actually working.
01 —
The model OpenHands officially recommends: Qwen3.6-35B-A3B, tier by tier
These are the real file sizes published on HuggingFace, not estimates. KV cache is counted separately.
| Version | Parameters | VRAM | Context | Notes |
|---|---|---|---|---|
| Qwen/Qwen3.6-35B-A3B (bf16 safetensors) | 35B total / ~3B active (A3B) | 66.96GiB of weights (71.9GB) | 262144 native | Official full-precision weights. They fit on a single 80GB card but with almost no headroom — the official vLLM/SGLang examples use --tensor-parallel-size 2. |
| Qwen/Qwen3.6-35B-A3B-FP8 | 35B-A3B | 34.89GiB of weights | 262144 native | The official FP8 checkpoint, downloaded even more than bf16. Fits one 48GB card; on 80GB you can max out both context and concurrency. |
| unsloth Qwen3.6-35B-A3B-Q8_0 GGUF | 35B-A3B | 34.37GiB (UD-Q8_K_XL is 35.81GiB) | Your choice; OpenHands wants 32768+ | The closest-to-full-precision tier on the llama.cpp / LM Studio / Ollama path — useful as a quality baseline to measure the cheaper quants against. |
| unsloth Qwen3.6-35B-A3B-UD-Q5_K_M GGUF | 35B-A3B | 24.64GiB | 128K is comfortable (~2.5GiB of KV) | The sweet spot for a 32GB card. Enough left over to push context to 131072 without an OOM. |
| unsloth Qwen3.6-35B-A3B-UD-Q4_K_M GGUF | 35B-A3B | 20.61GiB (MXFP4_MOE variant: 20.22GiB) | 32768 recommended | This is the tier the official "at least 24GB" line was drawn around. On a 24GB card it leaves roughly 2.5GiB — fine for 32K context, but don't run anything else alongside it. |
| unsloth Qwen3.6-35B-A3B-UD-IQ4_XS GGUF | 35B-A3B | 16.51GiB (UD-IQ3_S 12.74GiB / UD-Q2_K_XL 11.45GiB) | 32768 with room to spare | The tier that is genuinely comfortable on a 24GB card — room for the vision tower (mmproj-F16, 0.84GiB) and long context at the same time. |
02 —
Pick a card by how you'll use it: real NexGPU rates
Qwen3.6-35B-A3B uses hybrid linear attention — only 10 of its 40 layers are full attention (full_attention_interval=4), with 2 KV heads at head_dim 256. That works out to roughly 20KiB of KV cache per token: about 0.6GiB at 32K context and only ~2.5GiB at 128K. On this model VRAM is almost entirely weights, so size your card against the checkpoint.
Prove it works: single-card GGUF Q4, confirm OpenHands actually calls tools
RTX 4090 24GB$0.540/GPU-hr
UD-IQ4_XS at 16.51GiB or UD-Q4_K_S at 19.46GiB leaves real KV headroom, holds 32K context steadily, and an afternoon of validation costs under two dollars.
Daily driver: Q5/Q6 quant with 131072 context so the agent can read a whole repo in one pass
RTX 5090 32GB$0.723/GPU-hr
UD-Q5_K_M at 24.64GiB plus ~2.5GiB of KV for 128K still leaves margin, and Blackwell handles FP4/FP8 natively so the MXFP4_MOE tier runs at full speed.
Shared team instance: official FP8 weights with vLLM concurrency, feeding Agent Canvas automations
A100 PCIE 80GB$0.824/GPU-hr
FP8 weights take 34.89GiB — under half the card — leaving 40GB+ for KV and batched requests, and it costs just $0.007 more than the 48GB A6000 at $0.817.
Full-precision baseline: bf16 with TP=2, matching the official example exactly
RTX A6000 48GB × 2$0.817/GPU-hr (two cards: $1.634/hr)
66.96GiB of weights split in half lands at ~34GiB per card, which is precisely what the official SGLang/vLLM --tensor-parallel-size 2 and --context-length 131072 examples assume.
03 —
Getting OpenHands running on NexGPU
Four steps: pull weights, start an OpenAI-compatible endpoint, start Agent Canvas, fill in the LLM settings. Less time than a coffee break.
- 01
1. Spin up a vLLM instance and pull the official FP8 weights
At console.nexgpu.net pick an A100 PCIE 80GB and choose the prebuilt vLLM image — there are 2,000+ images including PyTorch, vLLM and plain Ubuntu CLI, so you never touch a CUDA install. The 34.89GiB FP8 checkpoint lands on instance storage in minutes.
huggingface-cli download Qwen/Qwen3.6-35B-A3B-FP8 --local-dir /workspace/qwen3.6-35b-a3b-fp8 - 02
2. Start an OpenAI-compatible endpoint
OpenHands speaks the OpenAI protocol, so vLLM, SGLang, Ollama and LM Studio all qualify. --enable-prefix-caching pays off enormously in agent workloads: the system prompt and tool definitions repeat on every turn, and cache hits cut time-to-first-token sharply. For more speed, Snowflake's ArcticInference with suffix speculative decoding reports up to 2x in some cases.
vllm serve /workspace/qwen3.6-35b-a3b-fp8 --served-model-name Qwen3.6-35B-A3B --host 0.0.0.0 --port 8000 --api-key mykey --enable-prefix-caching - 03
3. Start Agent Canvas
Mind the ports: the Agent Canvas image also listens on 8000 and will collide with vLLM, so map it to 8080. Point PROJECTS_PATH at the code you want the agent to edit — doing this on a rented instance is far safer than mounting docker.sock on your laptop, because a bad run just means destroying the instance.
export PROJECTS_PATH=$HOME/projects && mkdir -p $PROJECTS_PATH $HOME/.openhands && docker run -it --rm -p 8080:8000 -v $HOME/.openhands:/home/openhands/.openhands -v $PROJECTS_PATH:/projects ghcr.io/openhands/agent-canvas:1.15.0 - 04
4. Point the LLM settings at your own endpoint
Open the UI, go to LLM settings, click "see advanced settings" and flip the Advanced toggle. Set Custom Model to openai/Qwen3.6-35B-A3B (the openai/ prefix is mandatory), Base URL to your endpoint, and API Key to the mykey you passed vLLM. Context must be at least 22000, ideally 32768 — this single setting is the most common failure in local OpenHands deployments. Prefer the SDK over the UI? Three pip packages and you're scripting.
pip install openhands-sdk openhands-tools openhands-agent-server
What a self-hosted OpenHands costs an eight-person backend team per month
Scenario: Agent Canvas plus automations handling dependency upgrades and automated code review, 10 hours a day on weekdays, running official FP8 weights on an A100 PCIE 80GB. The arithmetic, in full: compute is 220 hours (10 hours × 22 working days) × $0.824 = $181.28; storage holds the 37.5GB FP8 checkpoint, a ~22GB Q4 GGUF fallback, plus Docker images and sandbox layers — call it 100GB, so 100 × $0.414 = $41.40 (note that compute billing stops when the instance stops, while storage keeps billing until it is destroyed); egress at 300GB × $0.0081 = $2.43. Total: about $225.11/month, which is under $29 per engineer. And before committing to any of that, you can spend $0.81 — RTX 4090 24GB at $0.540 × 1.5 hours — running UD-IQ4_XS to confirm the agent genuinely calls tools and edits files. Per-second metering, no minimum, no setup fee, no quota request: failed experiments cost almost nothing.
04 —
FAQ
Is OpenDevin still maintained? Why won't the GitHub repo load?
How much VRAM does OpenHands (OpenDevin) itself need?
Which model should I run locally with OpenHands, and is a 24GB card enough?
Why does OpenHands act like a plain chatbot with my local model — no tool calls, no file edits?
OpenHands in Docker can't reach LM Studio or Ollama on my host. What's wrong?
OpenHands wants docker.sock mounted and full filesystem access for the agent. Is that safe?
More in AI agents and workflows
Start building on NexGPU
Enterprise R&D team or solo developer — either way, your first job can be running in minutes.
Sign up to browse live network pricing. No payment method required.
