Verify Openhands
OpenHands/OpenHands
This skill should be used to "verify OpenHands features", "test the Canvas UI like a user", "drive Agent Canvas", "check a UI change in the real app", "create or update the feature map", "run the…
This skill should be used when a user reports an issue with OpenHands Enterprise (OHE) on a self-hosted (Replicated VM-based) installation.
$ npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OpenHands/extensions openhands-enterprise-troubleshooting --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/openhands-enterprise-troubleshooting .claude/skills/openhands-enterprise-troubleshooting && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "openhands-enterprise-troubleshooting" agent skill from https://github.com/OpenHands/extensions/tree/main/skills/openhands-enterprise-troubleshooting into .claude/skills/openhands-enterprise-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openhands-enterprise-troubleshooting", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/OpenHands/extensions/tree/main/skills/openhands-enterprise-troubleshootingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OpenHands/extensions openhands-enterprise-troubleshooting --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/openhands-enterprise-troubleshooting .agents/skills/openhands-enterprise-troubleshooting && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openhands-enterprise-troubleshooting" agent skill from https://github.com/OpenHands/extensions/tree/main/skills/openhands-enterprise-troubleshooting into .agents/skills/openhands-enterprise-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openhands-enterprise-troubleshooting", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OpenHands/extensions openhands-enterprise-troubleshooting --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/openhands-enterprise-troubleshooting .cursor/skills/openhands-enterprise-troubleshooting && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openhands-enterprise-troubleshooting" agent skill from https://github.com/OpenHands/extensions/tree/main/skills/openhands-enterprise-troubleshooting into .cursor/skills/openhands-enterprise-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openhands-enterprise-troubleshooting", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/OpenHands/extensions.git --path skills/openhands-enterprise-troubleshooting--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OpenHands/extensions openhands-enterprise-troubleshooting --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/openhands-enterprise-troubleshooting .gemini/skills/openhands-enterprise-troubleshooting && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openhands-enterprise-troubleshooting" agent skill from https://github.com/OpenHands/extensions/tree/main/skills/openhands-enterprise-troubleshooting into .gemini/skills/openhands-enterprise-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openhands-enterprise-troubleshooting", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install OpenHands/extensions openhands-enterprise-troubleshootingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/openhands-enterprise-troubleshooting .github/skills/openhands-enterprise-troubleshooting && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openhands-enterprise-troubleshooting" agent skill from https://github.com/OpenHands/extensions/tree/main/skills/openhands-enterprise-troubleshooting into .github/skills/openhands-enterprise-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openhands-enterprise-troubleshooting", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OpenHands/extensions openhands-enterprise-troubleshooting --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/openhands-enterprise-troubleshooting .opencode/skills/openhands-enterprise-troubleshooting && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openhands-enterprise-troubleshooting" agent skill from https://github.com/OpenHands/extensions/tree/main/skills/openhands-enterprise-troubleshooting into .opencode/skills/openhands-enterprise-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openhands-enterprise-troubleshooting", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openhands-enterprise-troubleshootingThis skill should be used when a user reports an issue with OpenHands Enterprise (OHE) on a self-hosted (Replicated VM-based) installation.
Openhands Enterprise Troubleshooting is an agent skill from OpenHands/extensions. This skill should be used when a user reports an issue with OpenHands Enterprise (OHE) on a self-hosted (Replicated VM-based) installation. Use for diagnosing sandbox startup failures, auth issues, certificate errors, LLM connectivity problems, Keycloak login issues, Replicated Admin Console access, upgrade failures, or resource exhaustion. Helps triage symptoms, run diagnostic commands, guide through recovery steps, generate and analyze Replicated support bundles offline, and produce escalation handoffs.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `.plugin/plugin.json`, `README.md` and `references/diagnostics.md`).
The repository describes itself as: Public registry for OpenHands extensions. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d008b81. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
kubectlopensslpython3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.replicated.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Openhands Enterprise Troubleshooting loads about 3.8k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 137 tokens; SKILL.md has 1,751 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
sudo ./openhands support-bundlesudo ./openhands shellAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from OpenHands/extensions at commit d008b81, republished under its MIT licence (© OpenHands). 1,751 words, ~3,791 tokens.
.claude/skills/openhands-enterprise-troubleshooting/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.This skill helps diagnose and resolve common issues on OpenHands Enterprise (OHE) self-hosted installations using Replicated. It covers triage, guided recovery, support bundle generation, and escalation handoffs.
When a user reports an OHE issue:
references/diagnostics.mdTake recovery one step at a time. Before each step, state what it will change and what you expect to see afterwards; after it, run the check that confirms it before moving on. If the check fails or shows something unexpected, stop and re-diagnose — a step applied on top of a failed one buries the evidence, and several applied blind can leave the install worse than the fault you started with. Destructive steps (restarts, rollbacks, config changes) need the user's agreement first, and are worth recording as you go so the handoff can say exactly what was changed.
Work from whatever the user has. A described symptom starts at step 1; a support bundle goes to
Analyzing the Support Bundle. If they paste raw log output, the
triage method in
references/support-bundle-analysis.md
applies to pasted text as well as to files, and notes what a hand-picked excerpt can hide.
Symptoms:
runtime-api are configurable and differ between the Kubernetes client and the app, so quoting a
fixed number back to a customer is how you end up chasing the wrong one.Diagnosis: Check sandbox service status, the sysbox-runc RuntimeClass and its containerd
runtime, resource availability
Reference: See references/diagnostics.md - Section "Sandbox Startup"
Symptoms:
Diagnosis: Check the provider's secret in Kubernetes and that the provider is enabled. GitHub, GitLab, Bitbucket Data Center, and Azure DevOps are each configured separately — confirm which one the user is actually on before diagnosing
Reference: See references/diagnostics.md - Section "Git Provider Auth"
Symptoms:
Diagnosis: Check cert expiry, certificate chain, ingress configuration
Reference: See references/diagnostics.md - Section "Certificate Issues"
Symptoms:
Diagnosis: Check LLM endpoint URL, API key secrets, network policies
Reference: See references/diagnostics.md - Section "LLM Connectivity"
Symptoms:
Diagnosis: Check Keycloak pod status, database connectivity, realm configuration
Reference: See references/diagnostics.md - Section "Keycloak"
Symptoms:
Diagnosis: Check Replicated operator pod, ingress, service endpoints
Reference: See references/diagnostics.md - Section "Replicated Admin Console"
Symptoms:
Diagnosis: Check failed job logs, resource availability, pre-flight failures
Reference: See references/diagnostics.md - Section "Upgrade Issues"
Symptoms:
Diagnosis: Check node resources (memory, disk, file descriptors)
Reference: See references/diagnostics.md - Section "Resource Exhaustion"
Access the VM and run these common commands.
An empty result never means "healthy". kubectl get pods -l <selector> prints No resources found and exits 0 both when a component is down and when the selector is wrong, so the two are
indistinguishable. When you need to know whether something is running, ask its Deployment or
StatefulSet for a READY count instead — that object exists either way, and 0/1 means down while a
NotFound error means you had the name wrong.
# Is it up? READY answers this; an empty pod list does not.
kubectl get deploy,statefulset -n openhands
# Check overall pod status
kubectl get pods -n openhands
# View pod logs (replace POD_NAME)
kubectl logs -n openhands POD_NAME
kubectl logs -n openhands POD_NAME --previous
# Describe a pod for events
kubectl describe pod -n openhands POD_NAME
# Check resource usage
kubectl top nodes
kubectl top pods -n openhands
# Check certificate expiry
echo | openssl s_client -connect HOST:443 2>/dev/null | openssl x509 -noout -dates
# Check the Replicated components. On Embedded Cluster these are the Admin
# Console in `kotsadm`, the operator in `embedded-cluster`, and the Replicated
# SDK in `openhands` under app.kubernetes.io/name=replicated. A `replicated`
# namespace belongs to the older kURL topology and is absent here.
kubectl get pods -n kotsadm
kubectl get pods -n embedded-cluster
kubectl get pods -n openhands -l app.kubernetes.io/name=replicatedWhen the issue requires deeper investigation — or before escalating — generate a support bundle. It captures both host- and cluster-level state in one archive.
SSH to the VM, then from the directory containing the installer binary:
sudo ./openhands support-bundleThis uses the default Embedded Cluster spec to collect cluster- and host-level information, and automatically includes the OpenHands application-specific collectors. Run it on a controller node — on a non-controller node it cannot capture cluster-wide information.
For Embedded Cluster versions earlier than 1.17.0, use the support-bundle plugin from within the cluster shell instead:
sudo ./openhands shell
kubectl support-bundle --load-cluster-specs /var/lib/embedded-cluster/support/host-support-bundle.yamlThe bundle is written to the working directory as support-bundle-<UTC timestamp>.tar.gz. Share it
with the OpenHands team, or analyze it directly with the steps below.
Support bundles carry potentially sensitive data. Replicated's redactor masks common secret patterns
as ***HIDDEN***, but it is not a guarantee — hostnames, user and installation identifiers, and
config values routinely survive it. Treat a bundle as confidential, send it only through the channel
the OpenHands team gives you, and avoid pasting raw excerpts into public issues or chats.
Full guide: references/support-bundle-analysis.md.
Read it before drawing conclusions — the bundle's layout is not what you would guess from kubectl,
and several of its gaps produce convincing false negatives.
Fast path — the bundled triage script reconstructs the standard first pass (cluster meta, analyzer
results, pod table, OOM and restart scan, top equivalent, allocatable headroom, events) in one
command. It reports; the ranking and the diagnosis are yours to make:
tar -xzf support-bundle-2026-07-28T06_54_18.tar.gz
python3 scripts/bundle_triage.py support-bundle-2026-07-28T06_54_18You are reading this bundle because something is broken, so treat a clean run as "not here" rather
than "nothing wrong" — the script sees pod objects, analyzer verdicts, node conditions and resource
totals, and reads no application logs at all. references/support-bundle-analysis.md has a section
on where to look next when the objects come back clean.
Then the four things that most often answer the question outright:
| Question | Where to look |
|---|---|
| What did the collector already conclude? | analysis.json — pre-computed verdicts, highest-value file in the bundle |
| What is each pod actually doing? | cluster-resources/pods/<namespace>.json |
| What did a container log? | cluster-resources/pods/logs/<ns>/<pod>/<container>.log |
| What is the install running? | kots/admin_console/app-info.json — version, channel, sequence |
Four traps worth knowing before you start:
migrate-db,
wait-for-db) are invisible to kubectl logs <pod> and are the easiest real failure to miss.***HIDDEN*** means "redacted", not "unset". The redactor over-redacts, including non-secrets.jq
aborts on the first non-JSON line — so a severity filter can print nothing on a file full of
errors. Prefix with grep '^{', and read the non-JSON lines separately.Once triage points at a failure mode, use references/diagnostics.md for that mode's specific
commands and error patterns.
The script reports; deciding which of its observations explains the user's symptom is your job. Work through its output in this order, because it is roughly the order in which a finding is likely to be the actual cause rather than a side effect.
1. Start from the symptom and the clock, not from the output. Get the capture time from the bundle directory name (UTC) and establish when the user says it broke. A finding that predates the symptom by weeks is background; one that starts within the window is a candidate. Ages in the pod table are the cheapest way to place an event in time.
2. Read analysis.json first — but not literally. The collector's own verdicts are the
highest-value content in the bundle. Two cautions when reading them through the script: everything
non-passing prints under a FAIL heading, including warn-severity entries that may be advisory,
so check the severity in analysis.json before calling one a failure; and per-object analyzers are
collapsed into families with one example each, so [x12] means twelve objects affected and the
example shown is arbitrary. Open the file directly before quoting an analyzer verdict to a customer.
3. Rank what remains by how directly it explains the symptom. In descending order of
usefulness — a container in CrashLoopBackOff or actively OOM-killed right now; a pod that never
started (Pending, CreateContainerConfigError, an init container that never completed); a pod
that is Running but not Ready, which fails a health check and takes traffic out of rotation; a
node condition that is genuinely bad; and resource pressure, which is usually a consequence rather
than a cause. A recovered termination — visible only as lastState with an older age — explains a
past blip, not a live outage; do not lead with one.
4. Prefer the cause nearest the symptom. A failed migrate-db init container and an app pod
stuck Pending are one finding, not two, and the init container is the one to report. When several
findings share a timestamp, look for the common dependency rather than listing all of them.
5. Say what you ruled out. The script reads pod objects, analyzer verdicts, node conditions and resource totals — and no application logs. If nothing in the objects explains the symptom, that is itself a result: it puts the cause in the application logs, in the network path, or outside the cluster. Name which, rather than reporting that the bundle looked healthy.
State the conclusion with its evidence and its confidence — the object or analyzer it rests on, and whether it explains the reported symptom or merely coincides with it. A ranked shortlist of two or three candidates is more useful than a single confident guess, and it drops straight into the Likely Root Cause field of the handoff template below.
When an issue cannot be resolved, produce this summary:
## Issue Summary
**Problem:** [One-line description]
**Duration:** [When it started]
**Impact:** [Who is affected]
## Symptoms Observed
- [Symptom 1]
- [Symptom 2]
## Diagnostic Steps Taken
1. [Step 1]
2. [Step 2]
## Logs / Evidence[Relevant log excerpts]
## Resolution Attempts
- [Attempt 1] - [Result]
- [Attempt 2] - [Result]
## Likely Root Cause
[Analysis]references/diagnostics.md — detailed commands and log interpretation for each failure modereferences/support-bundle-analysis.md — reading a bundle offline: file map, interpretation traps, known gapsscripts/bundle_triage.py — offline first-pass triage, standard library onlyAs new failure modes are discovered in the field, add them to this skill. Update
references/diagnostics.md with new patterns and resolution steps, and add the offline equivalent to
references/support-bundle-analysis.md when the failure is diagnosable from a bundle.
© OpenHands, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (scripts, references) in skills/openhands-enterprise-troubleshooting of OpenHands/extensions.
Open the folder on GitHubat commit d008b81
Openhands Enterprise Troubleshooting next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openhands Enterprise Troubleshooting this skillOpenHands/extensions | 157 | — | ~3.8k | Automated safety check: Notes | MIT | |
| Verify OpenhandsOpenHands/OpenHands | 90k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Startup It Troubleshootingsickn33/agentic-awesome-skills | 47k | 2 repos | ~3.6k | Automated safety check: Notes | MIT | |
| Gtm Enterprise Onboardinggithub/awesome-copilot | 40k | 1 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Enterprise Agent Opsaffaan-m/ECC | 274k | 2 repos | ~133 | Automated safety check: Pass | MIT | |
| Troubleshootingcartography-cncf/cartography | 4.1k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
OpenHands/OpenHands
This skill should be used to "verify OpenHands features", "test the Canvas UI like a user", "drive Agent Canvas", "check a UI change in the real app", "create or update the feature map", "run the…
sickn33/agentic-awesome-skills
Practical IT troubleshooting playbooks for small teams without dedicated IT staff.
github/awesome-copilot
Four-phase framework for onboarding enterprise customers from contract to value realization.
affaan-m/ECC
通过可观测性、安全边界和生命周期管理来操作长期运行的代理工作负载。
cartography-cncf/cartography
Diagnose and fix common Cartography intel-module errors — ModuleNotFoundError, PropertyRef validation failed, GraphJob failed, missing relationships, MatchLink misses, cleanup deleting too much…
bergside/awesome-design-skills
Dark-themed cloud-platform aesthetic with modular grids, glass-like panels, and strong data hierarchy for productivity dashboards.
OpenHands/extensions
Evaluate how well a codebase supports autonomous AI-assisted development.
OpenHands/extensions
Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows).
OpenHands/extensions
Interact with GitHub repositories, pull requests, issues, and workflows using the GITHUBTOKEN environment variable and GitHub CLI.
OpenHands/extensions
Create an automation that implements GitHub issues when a configurable trigger label is applied.
OpenHands/extensions
This skill should be used when the user asks to "monitor a GitHub repository", "watch GitHub for issues or PRs", "respond to @OpenHands mentions on GitHub", "set up an OpenHands GitHub integration"…
OpenHands/extensions
Create an automation that implements GitLab issues when a configurable trigger label is applied.
This skill should be used when a user reports an issue with OpenHands Enterprise (OHE) on a self-hosted (Replicated VM-based) installation. Openhands Enterprise Troubleshooting is an agent skill from OpenHands/extensions. This skill should be used when a user reports an issue with OpenHands Enterprise (OHE) on a self-hosted (Replicated VM-based) installation.
Openhands Enterprise Troubleshooting fits situations like: diagnosing sandbox startup failures; certificate errors; LLM connectivity problems; keycloak login issues.
Run `npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a claude-code`. Or copy the skill folder (skills/openhands-enterprise-troubleshooting in OpenHands/extensions) into .claude/skills/openhands-enterprise-troubleshooting in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a codex`. Or copy the skill folder (skills/openhands-enterprise-troubleshooting in OpenHands/extensions) into .agents/skills/openhands-enterprise-troubleshooting in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenHands/extensions --skill openhands-enterprise-troubleshooting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openhands-enterprise-troubleshooting, .gemini/skills/openhands-enterprise-troubleshooting, .github/skills/openhands-enterprise-troubleshooting and .opencode/skills/openhands-enterprise-troubleshooting in your project.
Going by SKILL.md and its folder, Openhands Enterprise Troubleshooting needs Python for the scripts in its folder and the command-line tools its instructions call (kubectl, openssl and python3). Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: docs.replicated.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Openhands Enterprise Troubleshooting is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 14k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Openhands Enterprise Troubleshooting: Verify Openhands (OpenHands/OpenHands, 90k stars), Startup It Troubleshooting (sickn33/agentic-awesome-skills, 47k stars), Gtm Enterprise Onboarding (github/awesome-copilot, 40k stars) and Enterprise Agent Ops (affaan-m/ECC, 274k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OpenHands (a GitHub organization) maintains it in OpenHands/extensions, which has 157 GitHub stars. The repository holds 78 skills in this directory. The repository was last updated on October 6, 2026.
Source: OpenHands/extensions on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.