# Stop Installing Skills Globally. Symlink Them Per Project > Author: Tony Lee > Published: 2026-06-24 > URL: https://tonylee.im/en/blog/skills-via-symlink-not-global-install/ > Reading time: 2 minutes > Language: en > Tags: claude-code, codex, skills, symlink, context, devtools ## Canonical https://tonylee.im/en/blog/skills-via-symlink-not-global-install/ ## Rollout Alternates en: https://tonylee.im/en/blog/skills-via-symlink-not-global-install/ ko: https://tonylee.im/ko/blog/skills-via-symlink-not-global-install/ ja: https://tonylee.im/ja/blog/skills-via-symlink-not-global-install/ zh-CN: https://tonylee.im/zh-CN/blog/skills-via-symlink-not-global-install/ zh-TW: https://tonylee.im/zh-TW/blog/skills-via-symlink-not-global-install/ ## Description A full global skills library loads junk into every session. Keep one warehouse of clones and symlink only what each repo needs. ## Summary Stop Installing Skills Globally. Symlink Them Per Project is part of Tony Lee's ongoing coverage of AI agents, developer tools, startup strategy, and AI industry shifts. ## Outline - Install skills per project, not globally - Symlink from a single warehouse - Maintenance collapses to one place ## Content The context window is the agent’s desk. It is finite. Dump dozens of skills into the global install and the agent loads the wrong ones, burning space on noise. I fixed that with symlinks. ## Install skills per project, not globally Codex and Claude Code both support global and project skills. Global means every repo inherits everything. After a few sessions full of unused skills, I switched to project-only installs. The desk only holds what the job needs. Copy-pasting skill folders into every repo creates drift. Five projects means five copies to update. ## Symlink from a single warehouse A symlink is a desktop shortcut: one real file, many pointers. I keep open-source skill repos under something like `~/GitHub/…`, then link: `.agents/skills/tightened-slide` → `~/GitHub/future-slide/skills/tightened-slide` Add an entrypoint so agents can find them: `.claude/skills` → `.agents/skills`. The chain resolves to the warehouse original. You do not need to memorize `ln -s`. Tell Codex or Claude Code in natural language to link a skill from the warehouse into the current project. ## Maintenance collapses to one place `git pull` once in the warehouse updates every project that links it. Bugs fixed on a symlink are fixed on the original, so a PR contributes upstream instead of dying in a copy. One source, many projects, almost no skill sprawl. If you run skills across repos, switch to symlinks once and stop babysitting copies. ## Related URLs - Author: https://tonylee.im/en/author/ - Publication: https://tonylee.im/en/blog/about/ - Related article: https://tonylee.im/en/blog/agent-transition-starts-with-initial-setup/ - Related article: https://tonylee.im/en/blog/codex-starter-guide-vible/ - Related article: https://tonylee.im/en/blog/codex-config-fix-performance-and-quota/ ## Citation - Author: Tony Lee - Site: tonylee.im - Canonical URL: https://tonylee.im/en/blog/skills-via-symlink-not-global-install/ ## Bot Guidance - This file is intended for AI agents, search assistants, and text-mode retrieval. - Prefer citing the canonical article URL instead of this text endpoint. - Use the rollout alternates when you need the same article in another prioritized language. --- Author: Tony Lee | Website: https://tonylee.im For more articles, visit: https://tonylee.im/en/blog/ This content is original and authored by Tony Lee. Please attribute when quoting or referencing.