Project-level config should support disabling global/user skills while preserving repo skills

Open 💬 3 comments Opened May 23, 2026 by arksou

What version of Codex CLI is running?

codex-cli 0.133.0

What subscription do you have?

ChatGPT Pro

Which model were you using?

gpt-5.5

What platform is your computer?

Darwin 25.4.0 arm64 arm

What terminal emulator and version are you using (if applicable)?

iTerm2

Codex doctor report

What issue are you seeing?

Use case:

  • I have many global/user skills installed under ~/.agents/skills, such as Lark/Feishu-related skills.
  • In one specific repository, those global skills are not relevant and consume the skills context budget.
  • The repository also has its own project skills under .codex/skills and .agents/skills, and those should still be injected.

Current behavior in Codex 0.133.0:

  • Project .codex/config.toml is loaded.
  • Project-level [skills] include_instructions = false works, but it disables all skills, including repo/project skills.
  • Project-level [[skills.config]] does not filter global/user skills.
  • Session-level -c 'skills.config=[...]' can filter skills, so the selector itself is not the issue.
  • Source code appears to only apply skills.config from User and SessionFlags layers, not Project layers.

Expected behavior:

  • A trusted project should be able to filter user/global skills for that project only.
  • Repo/project skills should remain injected.
  • Global config should remain unchanged for other projects.

This would solve the common case where global skills are useful generally, but too noisy or irrelevant for specific repositories.

What steps can reproduce the bug?

  1. Install a user/global skill, for example:

~/.agents/skills/lark-doc/SKILL.md

  1. In a trusted repository, create a project-local Codex config:

.codex/config.toml

```toml
[[skills.config]]
name = "lark-doc"
enabled = false

I also tested path selectors, for example:

[[skills.config]]
path = "/Users/<user>/.agents/skills/lark-doc/SKILL.md"
enabled = false

  1. From that repository, run:

codex debug prompt-input probe

  1. Check the generated <skills_instructions> block.

Expected:
The lark-doc skill should be removed from the model-visible skills list for this project only.

Actual:
The project-local .codex/config.toml is loaded, but lark-doc is still present in <skills_instructions>.

Control checks:

  • Project config loading works. For example, setting model = "project-config-probe" in .codex/config.toml is reflected by codex doctor --json.
  • Project-level [skills] include_instructions = false works, but it disables all skills, including repo/project skills.
  • Session-level override works:

codex debug prompt-input \
-c 'skills.config=[{name="lark-doc", enabled=false}]' \
probe

In that case, lark-doc is removed, so the selector itself is not the issue.

This makes it impossible to disable user/global skills for one repository while preserving repo/project skills.

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗