elegant-branch-54423
10/15/2026, 4:00 PMelegant-branch-54423
10/15/2026, 4:05 PM/concise-prd skill
• Observe skill show up in Customize > Skills page
• Start a Codex ACP Conversation
• Ask Codex what skills are available
◦ Codex responds with none of the skills under Customize > Skills
• Ask Codex to run the /concise-prd skill
◦ Codex responds that skill does not existelegant-branch-54423
10/15/2026, 4:06 PMfresh-machine-37269
10/15/2026, 4:06 PMhundreds-twilight-32833
10/15/2026, 4:10 PMelegant-branch-54423
10/15/2026, 4:35 PMCustomize > Skills, but the Codex ACP conversation cannot access it. Quick loom video: loom.com/share/…elegant-branch-54423
10/15/2026, 4:36 PMhundreds-twilight-32833
10/15/2026, 4:37 PMfresh-machine-37269
10/15/2026, 4:38 PMfresh-machine-37269
10/15/2026, 4:51 PMready-for-dev) — github.com/OpenHands/OpenHands/issues/16905
Same root cause as what you're seeing:
• ACP conversations launch from an agent profile, and agent_profile_id and agent_settings are mutually exclusive, so no agent_context (skills / disabled_skills) is ever sent on that path.
• Native ACP sourcing in finalize() then deliberately strips OpenHands-managed skills — skills=[], `load_user_skills`/`load_public_skills=False`, marketplaces cleared. That's exactly why Canvas lists the skill but the ACP agent receives nothing, and why no <SKILLS> block shows up under Agent Tools & Metadata.
Two things worth flagging:
1. #16905 is scoped to the Claude Code ACP preset and explicitly says it isn't asking for a generalized fix for every ACP provider. Your case is Codex + a user-scope skill (~/.openhands/skills), which is the same mechanism but a different provider and skill tier. If you want that variant tracked explicitly, broadening #16905 is probably better than a new issue.
2. For the thread: ~/.openhands/skills is a real user-skills dir (alongside ~/.agents/skills), which is why it appears in Customize → Skills. The gap is that no ACP CLI reads that location, and acp_skill_sourcing defaults to native for a host-local agent-server (only the container image sets openhands_managed), so nothing OpenHands manages is injected by design.
Related Agent Profile work:
• OpenHands/OpenHands#17421 (open, changes requested) — projects enabled Canvas skills into Claude Code ACP sessions via system_message_suffix_append (32 KiB cap). Claude-only.
• OpenHands/software-agent-sdk#4717 (open PR) — adds agent_launch_additions.skills_append, the structured fix that runs after profile resolution and native sourcing; needs a server bump. Docs in OpenHands/docs#770.
• software-agent-sdk#4019 (closed) — where the project-skill strip came from; software-agent-sdk#5569 (open) is the mirror-image ask (discover .codex/skills, .claude/skills, etc.).
Happy to open a Codex/user-skill follow-up or broaden #16905 — just say which you'd prefer.
This reply was written by an AI agent (OpenHands) on behalf of the user.