unity-package-management — Claude Code skill: UPM guide
Discovers, installs, and removes Unity packages outside the Editor using Pipeline commands or a headless C# fallback. Helpful for CI builds and fast project setups.
npx skills add Unity-Technologies/skills --skill unity-package-management -a claude-codeWhat unity-package-management does
The skill manages Unity Package Manager dependencies through the terminal instead of the GUI. Direct manual edits to Packages/manifest.json are forbidden because they break dependency resolution. The tool relies on precise API calls. When an Editor instance is running with com.unity.pipeline, it queries parameter schemas and invokes unity command package add or remove.
If no Editor is running, the skill falls back to a batchmode C# script. It writes Assets/Editor/ProjectBootstrap/PackageInstaller.cs and calls Client.AddAndRemove. Running this through unity run fails immediately. The default -quit flag terminates the process before asynchronous UPM downloads finish. Direct execution without -quit lets update ticks resolve dependencies and exit cleanly.
What it helps with
- install UPM dependencies without editing manifest.json by hand
- inspect package schemas and available versions from the terminal
- configure required Unity packages headlessly in CI pipelines
- remove unused default packages included by project templates
Example prompts for the agent
- Add com.unity.inputsystem to the project using Pipeline commands.
- Check installed UPM packages and list their current versions.
- Remove unwanted default render pipeline packages headlessly.
How to install unity-package-management
1Skills CLI (Vercel)
npx skills add Unity-Technologies/skills --skill unity-package-management -a claude-code2Manually: put the files in place
~/.claude/skills/unity-package-management/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/unity-package-management/
1Skills CLI (Vercel)
npx skills add Unity-Technologies/skills --skill unity-package-management -a codex2Manually: put the files in place
.agents/skills/unity-package-management/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Unity-Technologies/skills --skill unity-package-management -a cursor2Manually: put the files in place
.cursor/skills/unity-package-management/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Unity-Technologies/skills unity-package-management2Manually: put the files in place
.github/skills/unity-package-management/SKILL.md1Skills CLI (Vercel)
npx skills add Unity-Technologies/skills --skill unity-package-management -a gemini-cli2Platform CLI
gemini skills install https://github.com/Unity-Technologies/skills --path skills/unity-package-managementManually: put the files in place
.devin/skills/unity-package-management/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Unity-Technologies/skills --skill unity-package-management -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about unity-package-management
How to install unity-package-management in Claude Code?
Run npx skills add Unity-Technologies/skills --skill unity-package-management -a claude-code in your terminal.
What does unity-package-management do?
It resolves, inspects, and modifies UPM packages outside the Editor window. It prioritizes the Editor's Pipeline command group and switches to headless C# scripts when needed.
Why does the headless fallback require launching the Editor without -quit?
UPM operations through Client.AddAndRemove are asynchronous and need EditorApplication.update ticks to complete. Using -quit kills the Editor immediately before the background process finishes resolving dependencies.