openai / openai/codex

macOS: Skills UI offers Uninstall for ~/.agents/skills but removal rejects the path

Open
#43,772 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug skills
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using (From “About Codex” dialog)?

26.901.51231 (build 8109)

What subscription do you have?

Plus

What platform is your computer?

Darwin 25.6.0 arm64 arm

What issue are you seeing?

The macOS Codex App discovers and displays user-level skills stored under ~/.agents/skills, and its Skills UI offers an Uninstall action for them. However, selecting Uninstall always shows “Failed to uninstall skill” / “无法卸载技能”.

The desktop log contains the more specific error (username redacted):

warning [electron-fetch-handler] Failed to remove skill error="Skill path is not removable: /Users/<username>/.agents/skills/agenthub/SKILL.md"

The affected directory and SKILL.md are owned by the current user and writable. There are no immutable flags, so this is not a macOS filesystem-permission failure.

The app appears to accept removal targets under ~/.codex/skills or a .codex/skills directory, while rejecting the supported user-level discovery path ~/.agents/skills. This creates a mismatch: the app discovers the skill and renders an enabled Uninstall action, but the removal handler rejects the same source path.

What steps can reproduce the bug?
  1. On macOS, create a valid user-level skill at ~/.agents/skills/test-skill/SKILL.md:

    ---
    name: test-skill
    description: Test skill used to reproduce the uninstall-path issue.
    ---
    
    Test instructions.
    
  2. Open the Codex App and navigate to Skills.

  3. Confirm that test-skill is discovered and shown as a personal/user skill.

  4. Open the skill actions menu and select Uninstall.

  5. Observe the generic “Failed to uninstall skill” message.

  6. Inspect the desktop log under ~/Library/Logs/com.openai.codex/; it reports Skill path is not removable for the ~/.agents/skills/test-skill/SKILL.md path.

This reproduces consistently for multiple real directories under ~/.agents/skills, not only symlinks.

What is the expected behavior?

Either:

  1. Skills discovered from the writable user-level ~/.agents/skills directory should be uninstallable from the Skills UI; or
  2. If that source is intentionally not managed by Codex, the UI should not expose an enabled Uninstall action. It should identify the source and explain that the skill must be removed externally.

The failure toast should also surface an actionable reason rather than only “Failed to uninstall skill”.

Additional information
  • Related issue: #39923 reports that externally imported skills cannot be deleted from the Windows desktop app. This report is narrower: macOS, a directly reproducible ~/.agents/skills path-policy mismatch, and the exact Skill path is not removable backend error.
  • Related enhancement: #39459 requests package/source provenance in the skill picker. Showing provenance would help users understand which skills are managed by Codex.
  • No files were deleted during diagnosis.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Skills UI uninstall action and the removal handler that reports “Skill path is not removable,” comparing the supported discovery path ~/.agents/skills with the accepted removal roots. Reproduce with ~/.agents/skills/test-skill/SKILL.md and verify that the behavior is consistent: the skill is removable from the UI, or the action is disabled with an explanation and the failure reason is actionable.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.