besty0728/unity-package
Manage Unity Package Manager (UPM) — install, remove, refresh, search, inspect, and list packages. Use when adding or removing UPM packages, checking installed versions, searching the registry, or scripting package operations, even if the user just says "装个包" or "UPM". 管理 Unity Package Manager(UPM:安装、移除、刷新、搜索、查看、列出包);当用户要添加或移除 UPM 包、检查已装版本、搜索 registry、或脚本化包操作时使用。
npx skills add https://github.com/Besty0728/Unity-Skills --skill unity-package
Manage installed Unity packages and package-related helper flows such as Cinemachine and Splines setup.
Operating Mode (v1.9 three-tier):
package_list, package_check, package_search, package_get_dependencies, package_get_versions, package_get_cinemachine_status) run directly. Mutators (package_install, package_remove, package_install_cinemachine, package_install_splines, package_refresh) are FullAuto — on MODE_RESTRICTED, run the grant protocol.package_install and package_remove (MayTriggerReload = true, RiskLevel = "high"; package_remove also carries SkillOperation.Delete). They are reachable only under Bypass mode or via a user-managed Allowlist entry; the grant flow returns MODE_FORBIDDEN.jobId; the actual package import + Domain Reload happens asynchronously and may make the REST server transiently unavailable. Poll with job_status / job_wait.DO NOT (common hallucinations):
package_add / package_update do not exist -> use package_installpackage_get_info does not exist -> use package_list, package_check, package_get_dependencies, or package_get_versionspackage_search searches the installed package cache only; it does not query the Unity Registry{ success: false, status: "refreshing", cacheReady: false, retryStrategy: "wait_and_retry", retryAfterSeconds: 2 }; retry instead of treating this as installed=false.Routing:
package_install_cinemachinepackage_install_splinesproject_get_packagesdebug_set_definespackage_listList all installed packages currently cached by UnitySkills.
Parameters: None.
Returns: { success, count, packages }
package_checkCheck whether a package is installed.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| packageId | string | Yes | - | Package ID such as com.unity.cinemachine |
Returns: { packageId, installed, version }
package_installInstall a package. Returns an async job when the request is accepted.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| packageId | string | Yes | - | Package ID to install |
| version | string | No | null | Optional explicit version |
Returns: { success, status, jobId, message, serverAvailability }
package_removeRemove an installed package. Returns an async job when the request is accepted.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| packageId | string | Yes | - | Installed package ID to remove |
Returns: { success, status, jobId, message, serverAvailability }
package_refreshRefresh the installed package cache used by query skills.
Parameters: None.
Returns: { success, status, jobId, message }
package_install_cinemachineInstall Cinemachine using the supported package/version strategy.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| version | int | No | 3 | 2 for CM2, 3 for CM3 |
Notes:
Returns: { success, status?, jobId?, message, serverAvailability? }
package_install_splinesInstall or upgrade Unity Splines using the recommended version for the current Unity editor line.
Parameters: None.
Returns: { success, status?, jobId?, message, serverAvailability? }
package_get_cinemachine_statusGet current Cinemachine and Splines installation status.
Parameters: None.
Returns: { cinemachine, splines }
package_searchSearch the installed package cache by package name or display name.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| query | string | Yes | - | Search keyword |
Returns: { success, query, count, packages }
package_get_dependenciesGet dependency information for one installed package.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| packageId | string | Yes | - | Installed package ID |
Returns: { success, packageId, version, dependencyCount, dependencies }
package_get_versionsGet available versions for one installed package.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| packageId | string | Yes | - | Installed package ID |
Returns: { success, packageId, currentVersion, compatibleVersion, latestVersion, allVersions }
Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
Take besty0728/unity-package from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.