I think we might have a similar issue with Skills ...
# proj-agent-canvas
e
I think we might have a similar issue with Skills - e.g., Skills defined in Agent Canvas are not available to ACP Agent.
Scenario: • Add a custom skill to ~/.openhands/skills directory ◦ e.g., my personal
/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 exist
@fresh-machine-37269 is this a known issue?
f
You are not authorized to use this OpenHands bot (sender is not on the allow list).
sadblob 1
h
If you click the + and Agent Tools & Metadata you can inspect what is in the system message to the ACP agent. I don't think skills are loaded from .openhands for any case however. They are loaded from .agents/skills
e
When I click the "+ Show Available Skills", Canvas actually lists the Skills under
Customize > Skills
, but the Codex ACP conversation cannot access it. Quick loom video: loom.com/share/…
👀 1
Under "+ Agent Tools & Metadata", I don't see any SKILLS blocks or similar
h
@fresh-machine-37269 Can you look for any open issue about the above missing Skills when using ACP agents? If none exists can you create an issue documenting the problem and possible solution. You may need to look for Agent Profile pull requests and issues to find related work.
👀 1
f
🤖 On it! View progress here: oss-agent-canvas.ngrok.dev/conversations/…
✅ Done! There's already an open issue for this class of bug, so I didn't file a duplicate: OpenHands/OpenHands#16905 — "[Bug]: Claude Code via ACP can't see built-in skills" (open, labeled `bug`/`skills`/`agent-canvas`,
ready-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.