Skip to content
ai-supply.store
DiscoverCategoriesLeaderboardsCommunityAgent APIFAQ
Sign inSign up free
catalog / Coding / OpenHands
◉AgentCodingFree

OpenHands

Open-source AI software engineering agent that writes, edits, runs, and tests code autonomously in a sandboxed environment.

@ai-supply
Installs499k
⟳ upstream cloud-1.47.1 · updated 6d ago
↗ Source repository
← More CodingCoding leaderboard →How we grade security →Source ↗
! Grade B · 75/100 · ReviewSecurity assessment
✓No compromise signals27capabilities surfaced1known CVE5of 20 OWASP controls clear
External endpoints declaredExternal endpoints declaredSuspicious code patternsSuspicious code patterns
scanned 1d ago·osv · gitleaks · opengrep · picklescan + heuristics·full breakdown in the Security tab ↓

OpenHands

OpenHands (formerly OpenDevin) is a platform for AI software engineering agents. It gives an LLM a sandboxed Linux environment with a shell, code editor, browser, and file system — letting the agent autonomously complete entire software tasks from natural language instructions.

Key Features

  • Full environment access: agent runs bash commands, edits files, browses the web, and calls APIs in an isolated Docker sandbox
  • Multi-agent support: orchestrator + specialist agents (CodeAct, browsing, file editing) collaborate on complex tasks
  • Any LLM backend: OpenAI, Anthropic, local Ollama, and any LiteLLM-compatible model
  • SWE-bench leader: consistently top-ranked on the SWE-bench Verified benchmark for autonomous issue resolution
  • GitHub integration: clone repos, open PRs, and comment on issues without leaving the agent loop
  • Extensible skills: community-contributed microagents for specific domains (docs, testing, security)

Quick Start

# Requires Docker
docker pull ghcr.io/all-hands-ai/openhands:main

export WORKSPACE_BASE=$(pwd)/workspace

docker run -it --rm \
  -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.40-nikolaik \
  -e LLM_MODEL="anthropic/claude-sonnet-4-5" \
  -e LLM_API_KEY="$ANTHROPIC_API_KEY" \
  -v $WORKSPACE_BASE:/opt/workspace_base \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -p 3000:3000 \
  ghcr.io/all-hands-ai/openhands:main

Open http://localhost:3000 and describe a coding task.

Install via ai-supply

npx ai-supply add openhands-ai-software-engineer

Curated mirror of the open-source OpenHands (MIT). Get it from the source.

Rating rank
#1
of 27 in Coding
Install rank
#4
of 27 in Coding
Security score
75/100 · B
review
Security rank
#19
of 27 in Coding
Installs
499k
cat avg 157k
This listing vs category average
Installs
this
cat avg
Security (of 100)
this
cat avg
Adoption trend
See the Coding leaderboard →
! Security: Review · 7575/100 · grade Bscanned 1d ago
✓ no compromise signals28 risk-surface · 10/20 OWASP controls flagged

Compromise signals — malicious or tampered code (leaked secrets, backdoors, a dropped executable) — reduce the score, and known dependency CVEs carry a bounded penalty (they warrant review but never QUARANTINE — update the dependency to clear). Other dangerous-by-capability traits are risk surface, expected for some capabilities. Every finding is mapped to its OWASP control below.

What this capability can do · med confidence (static)
⚑ filesystem⚑ shell⚑ network⚑ secretsinstall: script:OpenHands-OpenHands-ee9e78b/.devcontainer/setup.sh
egress → aka.ms, hub.docker.com, astral.sh, llm-proxy.app.all-hands.dev, openhands.dev, openhands-ai.slack.com, arxiv.org, www.contributor-covenant.org +32

Findings mapped to the OWASP Top 10 for LLM Applications (2025) and the OWASP Machine Learning Security Top 10. Expand any flagged control for the exact findings — compromise reduces the score; expected/risk-surface do not, except a known CVE, which carries a small bounded penalty (high/critical → Review).

OWASP Top 10 for LLM Applications
⚠LLM03Supply Chaincritical
Vulnerable/compromised dependencies, models or archives in the artifact.
•Dependency manifest — 76 npm dependencies declared · OpenHands-OpenHands-ee9e78b/frontend/package.jsonrisk surface
•Vulnerable dependencies — 353 known vulnerabilities in: click@8.1.8, cryptography@46.0.7, ddtrace@3.13.0, gitpython@3.1.50, httplib2@0.31.2, joserfc@1.6.5, json-repair@0.58.7, mcp@1.27.0 (CWE-1395)known CVE · -25 pts
⚠LLM01Prompt Injectionhigh
Adversarial instructions embedded in an artifact that hijack a downstream LLM.
•Prompt-injection phrasing — instruction-subversion language detected · OpenHands-OpenHands-ee9e78b/frontend/__tests__/components/v1/chat/event-message-components/skill-item-expanded.test.ts (CWE-77)risk surface
⚠LLM02Sensitive Information Disclosurehigh
Secrets, credentials or PII shipped inside the artifact.
•Embedded credentials — found: Slack token · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/integrations/slack/test_slack_attachments.py (CWE-798)expected
•Embedded credentials — found: API secret key (sk-) · OpenHands-OpenHands-ee9e78b/frontend/__tests__/components/features/conversation/conversation-tabs.test.tsx (CWE-798)expected
⚠LLM05Improper Output Handlinghigh
Code that pipes model/user output into shell, eval, SQL or paths unsafely.
•Suspicious code patterns — pipe-to-shell install · OpenHands-OpenHands-ee9e78b/.devcontainer/setup.sh (CWE-494)risk surface
•Suspicious code patterns — OS command execution · OpenHands-OpenHands-ee9e78b/.github/scripts/find_prs_between_commits.py (CWE-78)risk surface
•Suspicious code patterns — destructive rm -rf / · OpenHands-OpenHands-ee9e78b/containers/app/Dockerfile (CWE-78)risk surface
•Suspicious code patterns — destructive rm -rf /; pipe-to-shell install · OpenHands-OpenHands-ee9e78b/containers/dev/Dockerfile (CWE-78)risk surface
•Suspicious code patterns — dynamic code execution · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/integrations/github/test_github_v1_callback_processor.py (CWE-95)risk surface
⚠LLM06Excessive Agencyhigh
Over-broad tool/permission surface or unrestricted egress.
•External endpoints declared — 1 distinct host(s) · OpenHands-OpenHands-ee9e78b/.agents/skills/cross-repo-testing/SKILL.mdrisk surface
•External endpoints declared — 3 distinct host(s) · OpenHands-OpenHands-ee9e78b/.devcontainer/devcontainer.jsonrisk surface
•Broad capability surface — 3 high-impact capability categories referenced — verify least-privilege · OpenHands-OpenHands-ee9e78b/.github/scripts/find_prs_between_commits.py (CWE-272)risk surface
•External endpoints declared — 4 distinct host(s) · OpenHands-OpenHands-ee9e78b/.gitignorerisk surface
•External endpoints declared — 12 distinct host(s) · OpenHands-OpenHands-ee9e78b/Development.mdrisk surface
•External endpoints declared — 7 distinct host(s) · OpenHands-OpenHands-ee9e78b/README.mdrisk surface
•External endpoints declared — 2 distinct host(s) · OpenHands-OpenHands-ee9e78b/config.template.tomlrisk surface
•External endpoints declared — 6 distinct host(s) · OpenHands-OpenHands-ee9e78b/containers/dev/Dockerfilerisk surface
•Egress to an anonymous-paste / tunnel / OOB endpoint — bc71-2603-7000-5000-1575-e4a6-697b-589e-5801.ngrok-free.app · OpenHands-OpenHands-ee9e78b/enterprise/enterprise_local/README.md (CWE-200)risk surface
•External endpoints declared — 5 distinct host(s) · OpenHands-OpenHands-ee9e78b/enterprise/enterprise_local/README.mdrisk surface
•External endpoints declared — 8 distinct host(s) · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/test_org_member_store.pyrisk surface
•External endpoints declared — 16 distinct host(s) · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/test_saas_settings_store.pyrisk surface
•External endpoints declared — 9 distinct host(s) · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/test_utils.pyrisk surface
•Egress to a private/loopback host — feature-123.staging.all-hands.dev, feature-xyz.staging.all-hands.dev · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/utils/test_url_utils.py (CWE-918)risk surface
•External endpoints declared — 10 distinct host(s) · OpenHands-OpenHands-ee9e78b/frontend/__tests__/hooks/mutation/use-mcp-server-mutations.test.tsxrisk surface
•External endpoints declared — 14 distinct host(s) · OpenHands-OpenHands-ee9e78b/frontend/__tests__/utils/mcp-config.test.tsrisk surface
•Broad capability surface — 4 high-impact capability categories referenced — verify least-privilege · OpenHands-OpenHands-ee9e78b/frontend/package-lock.json (CWE-272)risk surface
⚠LLM07System Prompt Leakagehigh
Secrets, internal hosts or proprietary logic exposed in shipped prompts.
•Internal host / private infrastructure reference — shipped content references a private IP range or internal-only host · OpenHands-OpenHands-ee9e78b/containers/app/Dockerfile (CWE-200)risk surface
•Embedded credentials — found: Slack token · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/integrations/slack/test_slack_attachments.py (CWE-798)expected
•Embedded credentials — found: API secret key (sk-) · OpenHands-OpenHands-ee9e78b/frontend/__tests__/components/features/conversation/conversation-tabs.test.tsx (CWE-798)expected
⚠LLM10Unbounded Consumptionmedium
Unbounded loops/recursion causing DoS or runaway cost.
Enforced at runtime by the gateway (rate limits + spend caps + size caps); static check flags unbounded loops.
•Potentially unbounded loop — an infinite loop (while True / while(1) / for(;;)) may cause runaway consumption · OpenHands-OpenHands-ee9e78b/enterprise/integrations/github/data_collector.py (CWE-835)risk surface
§LLM09MisinformationGovernance
Artifacts designed to produce false/deceptive output.
Detectable only by runtime behavioral evaluation; addressed via responsible-use attestation.
✓LLM04Data and Model PoisoningPassed
Backdoors/poisoning in training data or serialized models.
Behavioral poisoning needs model execution; static check covers unsafe serialization + dataset skew only.
✓LLM08Vector and Embedding WeaknessesPassed
PII or plaintext source leakage in embedding/vector exports.
Embedding inversion/poisoning is largely runtime; static check covers PII in vector exports.
OWASP Machine Learning Security Top 10
⚠ML06AI Supply Chaincritical
Compromised PyPI/npm packages, typosquats, unsafe serialized models.
•Dependency manifest — 76 npm dependencies declared · OpenHands-OpenHands-ee9e78b/frontend/package.jsonrisk surface
•Vulnerable dependencies — 353 known vulnerabilities in: click@8.1.8, cryptography@46.0.7, ddtrace@3.13.0, gitpython@3.1.50, httplib2@0.31.2, joserfc@1.6.5, json-repair@0.58.7, mcp@1.27.0 (CWE-1395)known CVE · -25 pts
⚠ML02Data Poisoninghigh
Poisoned training datasets with triggers or anomalous distributions.
Static check covers trigger phrasing, PII and label skew; full poisoning detection is runtime.
•Prompt-injection phrasing — instruction-subversion language detected · OpenHands-OpenHands-ee9e78b/frontend/__tests__/components/v1/chat/event-message-components/skill-item-expanded.test.ts (CWE-77)risk surface
⚠ML09Output Integrityhigh
Middleware tampering with model outputs in transit.
Gateway enforces TLS + response integrity; static check flags output-rewriting code.
•Suspicious code patterns — pipe-to-shell install · OpenHands-OpenHands-ee9e78b/.devcontainer/setup.sh (CWE-494)risk surface
•Suspicious code patterns — OS command execution · OpenHands-OpenHands-ee9e78b/.github/scripts/find_prs_between_commits.py (CWE-78)risk surface
•Suspicious code patterns — destructive rm -rf / · OpenHands-OpenHands-ee9e78b/containers/app/Dockerfile (CWE-78)risk surface
•Suspicious code patterns — destructive rm -rf /; pipe-to-shell install · OpenHands-OpenHands-ee9e78b/containers/dev/Dockerfile (CWE-78)risk surface
•Suspicious code patterns — dynamic code execution · OpenHands-OpenHands-ee9e78b/enterprise/tests/unit/integrations/github/test_github_v1_callback_processor.py (CWE-95)risk surface
§ML01Input Manipulation (Adversarial)Governance
Models vulnerable to adversarial perturbations.
Requires runtime robustness evaluation; addressed via publisher robustness attestation.
§ML03Model InversionGovernance
Training data reconstructable from a model's outputs.
Runtime/evaluation property; addressed via model-card data-provenance + DP attestation.
§ML04Membership InferenceGovernance
Determining whether a record was in the training set.
Runtime/evaluation property; addressed via overfitting disclosure + DP attestation.
§ML08Model SkewingGovernance
Models trained on skewed data producing biased output.
Requires fairness evaluation; addressed via model-card bias/limitations disclosure.
✓ML05Model TheftPassed
Unlicensed re-distribution / license-incompatible derivatives.
Static check verifies license declaration; extraction throttling is runtime.
✓ML07Transfer Learning AttackPassed
Backdoored base models / LoRA adapters propagating to derivatives.
Backdoor detection needs behavioral probing; static check covers unsafe serialization + provenance.
✓ML10Model Poisoning (Weights)Passed
Tampered model weight files; integrity must be verifiable.
Static check enforces safe formats + records a content hash for downstream verification.
Other findings (15) · hygiene / uncategorized
•Unrecognized file type — '.dockerignore' is not on the allowlist · OpenHands-OpenHands-ee9e78b/.dockerignorerisk surface
•Unrecognized file type — '.editorconfig' is not on the allowlist · OpenHands-OpenHands-ee9e78b/.editorconfigrisk surface
•Unrecognized file type — '.gitattributes' is not on the allowlist · OpenHands-OpenHands-ee9e78b/.gitattributesrisk surface
•Unrecognized file type — '.gitignore' is not on the allowlist · OpenHands-OpenHands-ee9e78b/.gitignorerisk surface
•Unrecognized file type — '.nvmrc' is not on the allowlist · OpenHands-OpenHands-ee9e78b/.nvmrcrisk surface
•Unrecognized file type — '.cff' is not on the allowlist · OpenHands-OpenHands-ee9e78b/CITATION.cffrisk surface
•Unrecognized file type — '.?' is not on the allowlist · OpenHands-OpenHands-ee9e78b/CNAMErisk surface
•Unrecognized file type — '.in' is not on the allowlist · OpenHands-OpenHands-ee9e78b/MANIFEST.inrisk surface
•Unrecognized file type — '.ini' is not on the allowlist · OpenHands-OpenHands-ee9e78b/dev_config/python/mypy.inirisk surface
•Unrecognized file type — '.tmpl' is not on the allowlist · OpenHands-OpenHands-ee9e78b/enterprise/allhands-realm-github-provider.json.tmplrisk surface
•Unrecognized file type — '.mako' is not on the allowlist · OpenHands-OpenHands-ee9e78b/enterprise/migrations/script.py.makorisk surface
•Unrecognized file type — '.sample' is not on the allowlist · OpenHands-OpenHands-ee9e78b/frontend/.env.samplerisk surface
•Unrecognized file type — '.eslintrc' is not on the allowlist · OpenHands-OpenHands-ee9e78b/frontend/.eslintrcrisk surface
•Unrecognized file type — '.webmanifest' is not on the allowlist · OpenHands-OpenHands-ee9e78b/frontend/public/site.webmanifestrisk surface
•Unrecognized file type — '.cjs' is not on the allowlist · OpenHands-OpenHands-ee9e78b/frontend/scripts/check-translation-completeness.cjsrisk surface
✔ verified source · pinned OpenHands-OpenHands-ee9e78b · changed since last scan (-13 pts)
Check against a policy

The same gate an agent runs before installing (POST /api/v1/trust/openhands-ai-software-engineer/check). Click a policy:

Consume OpenHands programmatically. Authenticate with an API key or session — see Authorize an agent.

# Agents: CHECK BEFORE YOU INSTALL (no auth) — score, grade, level, capability manifest
curl https://ai-supply.store/api/v1/trust/openhands-ai-software-engineer

# Gate against your org policy (returns { pass, violations })
curl -X POST https://ai-supply.store/api/v1/trust/openhands-ai-software-engineer/check \
  -H "Content-Type: application/json" \
  -d '{"minGrade":"B","denyPermissions":["shell"],"denyUnknownEgress":true}'

# CLI
npx ai-supply add openhands-ai-software-engineer

# REST (install → download)
curl -X POST https://ai-supply.store/api/v1/listings/openhands-ai-software-engineer/install \
  -H "Authorization: Bearer $AIM_KEY"

# MCP tool
install_listing({ "slug": "openhands-ai-software-engineer" })
OpenAPI spec →
vlatest
! Security: Review · 751mo ago

Curated mirror — latest upstream source. See the repository for tagged releases.

Sign in and install this listing to leave a review.

More from @ai-supply

View profile →
◉Agent
MetaGPT
Multi-agent framework that assigns GPT roles (PM, engineer, QA) to solve complex software tasks end-to-end.
↓ 1.0M
⇄Connector
vLLM
High-throughput, memory-efficient LLM inference engine with PagedAttention and continuous batching.
↓ 892k
⇄Connector
Meilisearch
Lightning-fast open-source search engine with typo-tolerance, semantic hybrid search, and sub-50ms response times.
↓ 811k
△Eval
Weights & Biases (wandb)
ML experiment tracking and visualization — log metrics, hyperparameters, models, and media in real time.
↓ 784k
ai-supply.store

Free, security-vetted AI capabilities — skills, MCPs, plugins, agents, datasets and more, each graded and freshness-tracked, and built for humans and agents alike.

api · v3.1status · all green
Contact
support@ai-supply.storesecurity@ai-supply.store
Catalog
  • Discover
  • Categories
  • Leaderboards
  • Benchmarks
  • Security
  • Scan a repo
Community
  • Community
  • FAQ
For agents
  • Quickstart (60s)
  • Authorize an agent
  • Agent API
  • OpenAPI spec
For builders
  • Publish
  • Dashboard
Account
  • Create account
  • Sign in
  • Settings
Legal
  • Terms
  • Publisher Agreement
  • Acceptable Use
  • Privacy