Catalog / AI & LLM

OpenHands

Autonomous AI software engineering agent with a web IDE

CIS Level 1 hardened Ubuntu 24.04 LTS image by Lynxroute · unique credentials at first boot · CVE-scanned · SBOM and CIS report inside

Availability and pricing
CloudVersionSoftware priceLast build
AWS Marketplace
EC2 AMI · all commercial regions
1.10.0$0.05/hr
Recommended instance: t3.large · 5-day free trial
2026-09-04Listing ↗
Azure Marketplace
VM image · plan payg-gen2 · Gen2
1.10.0$0.028/vCPU/hr
Recommended VM: Standard_D2s_v3
2026-08-19Listing ↗

Software price only; cloud infrastructure is billed separately by the provider. Prices in USD.

Image facts
Base OSUbuntu 24.04 LTS
HardeningCIS Level 1, Ubuntu 24.04 LTS (tailored)
LicenseMIT
UpstreamOpenHands
Machine-readableproduct.json · catalog.json
What is OpenHands

OpenHands (formerly OpenDevin) is an open-source autonomous AI software engineering agent. The agent runs in a sandbox container with full read-write access to a workspace, executes shell commands, edits files, and drives a headless browser - controlled from a web IDE that streams live agent events over WebSocket. It works with any LLM provider through a configurable backend: Anthropic Claude, OpenAI GPT, AWS Bedrock, Azure OpenAI, Google Vertex AI, Cohere, Mistral, Groq, DeepSeek, Ollama, vLLM, LiteLLM, and more. Operators choose the provider in the web UI's Settings menu and paste their API key - no provider keys are baked into the image. The agent's CodeAct loop combines reasoning, tool use, and shell execution to perform real software engineering tasks: implementing features, debugging, refactoring, running tests, browsing documentation, and more. MIT license, no vendor lock-in.

What the Lynxroute image adds

Security hardening:

  • HTTP basic auth (admin / EC2 Instance ID) gates the entire app via Nginx - without this layer the OpenHands web UI is openly callable
  • OpenHands container bound to 127.0.0.1:3000 - reachable only through the Nginx reverse proxy with TLS
  • Sandbox agent-server runtime image pre-pulled and pinned by SHA-256 digest - reproducible builds, first conversation does not block on a 3-5 GB Docker pull
  • Both images (openhands main + agent-server runtime) pinned by sha256 in /etc/openhands/openhands.env
  • Nginx reverse proxy with TLS, HTTP-to-HTTPS redirect, WebSocket support for live agent events, security headers, large-body and long-timeout tuning for agent tasks
  • No provider API keys baked in - operator configures their LLM provider through the OpenHands UI Settings after first login
  • UFW firewall pre-configured - only TCP 22, 80, 443 are exposed
  • fail2ban, AppArmor
  • CVE scan - every image is scanned for vulnerabilities before release

OS hardening (CIS Level 1):

  • CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
  • auditd, SSH hardening, kernel hardening, IMDSv2 enforced

Compliance artifacts:

  • SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
  • CIS Conformance Report at /etc/lynxroute/cis-report.html
  • CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md

ARCHITECTURE NOTES

OpenHands spawns a sandbox container per conversation via /var/run/docker.sock mounted into the OpenHands container. This is required by the upstream design and gives the agent root-equivalent access to the host docker daemon. The image is therefore intended for single-tenant use - do not expose it to untrusted users. State, settings, and conversation history persist at /opt/openhands/state across container restarts and instance reboots. The agent's working files persist at /opt/openhands/workspace - operators can attach an EBS volume there for a larger or independently managed workspace.

Deploy

Launch in one command

Credentials are generated at first boot and written to /root/openhands-credentials.txt.

# subscribe once on the AWS Marketplace listing, then:
aws ec2 run-instances \
  --image-id resolve:ssm:/aws/service/marketplace/prod-bbqahyuqivoyk/latest \
  --instance-type t3.large --key-name my-key --security-group-ids sg-xxxxxxxx
# accept the plan terms once, then:
az vm image terms accept --publisher lynxroute --offer openhands --plan payg-gen2
az vm create -g my-rg -n openhands --size Standard_D2s_v3 \
  --image lynxroute:openhands:payg-gen2:latest --admin-username azureuser --generate-ssh-keys
Release notes

Latest release

The most recent release with notes; the full release history is in product.json.

OpenHands v1.10.0

AWS · 2026-09-04Azure · 2026-08-19
  • Re-release of OpenHands 1.10.0. The application version is unchanged; this build refreshes the underlying operating system image
  • Both container images remain pinned by digest, so the image that ships is the image that runs
  • Certbot pre-installed - enable HTTPS with one command: sudo certbot --nginx -d yourdomain.com
  • Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base, picking up every operating-system security update published since the previous build