{
 "slug": "openhands",
 "name": "OpenHands",
 "tagline": "Autonomous AI software engineering agent with a web IDE",
 "category": "ai-llm",
 "use_cases": [
  "ai-coding-agent",
  "autonomous-agents",
  "developer-tools"
 ],
 "aliases": [
  "opendevin"
 ],
 "status": "live",
 "upstream": {
  "vendor": "OpenHands",
  "url": "https://www.openhands.dev",
  "license": "MIT",
  "license_url": "https://github.com/OpenHands/OpenHands/blob/main/LICENSE"
 },
 "image": {
  "os": "Ubuntu 24.04 LTS",
  "cis_level": 1,
  "ports": [
   80,
   443
  ],
  "artifacts": [
   "/etc/lynxroute/sbom.json",
   "/etc/lynxroute/cis-report.html",
   "/usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md"
  ]
 },
 "clouds": {
  "aws": {
   "status": "live",
   "version": "1.10.0",
   "last_build": "2026-09-04",
   "entity_id": "prod-bbqahyuqivoyk",
   "ami_alias": "/aws/service/marketplace/prod-bbqahyuqivoyk/latest",
   "listing_url": "https://aws.amazon.com/marketplace/pp/prodview-uvruzgvnctso2",
   "recommended_instance_type": "t3.large",
   "price_usd_per_hour": 0.05,
   "free_trial_days": 5,
   "unit": "instance-hour"
  },
  "azure": {
   "status": "live",
   "version": "1.10.0",
   "last_build": "2026-08-19",
   "offer_id": "openhands",
   "plan_id": "payg-gen2",
   "image_urn": "lynxroute:openhands:payg-gen2:latest",
   "listing_url": "https://azuremarketplace.microsoft.com/en-us/marketplace/apps/lynxroute.openhands?tab=Overview",
   "recommended_vm_size": "Standard_D2s_v3",
   "price_usd_per_vcpu_hour": 0.028,
   "unit": "vcpu-hour"
  },
  "alicloud": {
   "status": "not_offered"
  }
 },
 "urls": {
  "page": "https://lynxroute.com/products/openhands/",
  "json": "https://lynxroute.com/products/openhands/product.json"
 },
 "release_notes": [
  {
   "version": "1.10.0",
   "title": "OpenHands v1.10.0",
   "notes": "* Re-release of OpenHands 1.10.0. The application version is unchanged; this build refreshes the underlying operating system image\n* Both container images remain pinned by digest, so the image that ships is the image that runs\n* Certbot pre-installed - enable HTTPS with one command: sudo certbot --nginx -d yourdomain.com\n* 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\n",
   "source": "backfill-aws-listing",
   "live": {
    "aws": "2026-09-04",
    "azure": "2026-08-19"
   }
  },
  {
   "version": "1.10.0",
   "title": "OpenHands 1.10.0",
   "notes": "* Updated OpenHands to 1.10.0\n* Sandbox runtime updated to the matching agent-server 1.33.0 build, pre-pulled into the image\n* Both container images pinned by digest, so the image that ships is the image that runs\n* Certbot pre-installed - enable HTTPS with one command: sudo certbot --nginx -d yourdomain.com\n* Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base\n* CVE-scanned before release; SBOM (CycloneDX 1.6) and CIS Conformance Report included\n",
   "source": "backfill-aws-listing",
   "live": {
    "aws": "2026-09-04",
    "azure": "2026-08-19"
   }
  },
  {
   "version": "1.8.0",
   "title": "OpenHands 1.8.0",
   "notes": "* Updated OpenHands to 1.8.0\n* Certbot pre-installed - enable HTTPS with one command: sudo certbot --nginx -d yourdomain.com\n* Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base\n",
   "source": "backfill-git",
   "live": {
    "aws": "2026-06-16",
    "azure": "2026-06-22"
   }
  },
  {
   "version": "1.7.0",
   "title": "OpenHands 1.7.0",
   "notes": "* OpenHands 1.7.0 (main image) on Ubuntu 24.04 LTS\n* CIS Level 1 hardening applied (ansible-lockdown/UBUNTU24-CIS)\n* CVE-scanned before every release\n* HTTP basic auth (admin / EC2 Instance ID) gates the agent web UI via Nginx\n* OpenHands container bound to 127.0.0.1:3000 and reachable only through Nginx with TLS\n* Agent-server runtime image (1.19.1-python) pre-pulled and pinned by SHA-256 digest\n* Provider API keys not pre-configured - operator configures their LLM provider in OpenHands UI Settings\n* UFW firewall pre-configured (TCP 22, 80, 443 only)\n* fail2ban, auditd, AppArmor pre-configured\n* SBOM (CycloneDX 1.6) at /etc/lynxroute/sbom.json\n* CIS Conformance Report (OpenSCAP) at /etc/lynxroute/cis-report.html\n* IMDSv2 enforced\n",
   "source": "backfill-aws-api",
   "live": {
    "aws": "2026-05-15",
    "azure": "2026-05-13"
   }
  }
 ],
 "release_history": [
  {
   "version": "1.10.0",
   "aws": "2026-09-04",
   "azure": "2026-08-19"
  },
  {
   "version": "1.8.0",
   "aws": "2026-06-16",
   "azure": "2026-06-22"
  },
  {
   "version": "1.7.0",
   "aws": "2026-05-15",
   "azure": "2026-05-13"
  }
 ],
 "deploy": {
  "aws_cli": "# subscribe once on the AWS Marketplace listing, then:\naws ec2 run-instances \\\n  --image-id resolve:ssm:/aws/service/marketplace/prod-bbqahyuqivoyk/latest \\\n  --instance-type t3.large --key-name my-key --security-group-ids sg-xxxxxxxx",
  "azure_cli": "# accept the plan terms once, then:\naz vm image terms accept --publisher lynxroute --offer openhands --plan payg-gen2\naz vm create -g my-rg -n openhands --size Standard_D2s_v3 \\\n  --image lynxroute:openhands:payg-gen2:latest --admin-username azureuser --generate-ssh-keys"
 },
 "description": {
  "what_is": "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.",
  "image_adds": "Security hardening:\n* HTTP basic auth (admin / EC2 Instance ID) gates the entire app via Nginx - without this layer the OpenHands web UI is openly callable\n* OpenHands container bound to 127.0.0.1:3000 - reachable only through the Nginx reverse proxy with TLS\n* 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\n* Both images (openhands main + agent-server runtime) pinned by sha256 in /etc/openhands/openhands.env\n* 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\n* No provider API keys baked in - operator configures their LLM provider through the OpenHands UI Settings after first login\n* UFW firewall pre-configured - only TCP 22, 80, 443 are exposed\n* fail2ban, AppArmor\n* CVE scan - every image is scanned for vulnerabilities before release\n\nOS hardening (CIS Level 1):\n* CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown\n* auditd, SSH hardening, kernel hardening, IMDSv2 enforced\n\nCompliance artifacts:\n* SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json\n* CIS Conformance Report at /etc/lynxroute/cis-report.html\n* CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md\n\nARCHITECTURE NOTES\n\nOpenHands 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."
 },
 "generated_at": "2026-10-31T09:36:34Z"
}
