Claude Code Plugins

Community-maintained marketplace

Feedback

>

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name unity
description Control Unity Editor via TCP socket connection using Unity Bridge Lite. Create/modify GameObjects, manage packages, control animations, and more. Use when user asks to interact with Unity Editor. Requires Unity Bridge Lite package installed (auto-starts when Unity loads).

Unity Bridge Lite Control

Fast TCP socket communication with Unity Editor - minimal latency, no HTTP overhead.

Prerequisites

  • Unity Editor running with Unity Bridge Lite package installed
  • Bridge auto-starts on port 6400 when Unity loads

Install via Package Manager:

https://github.com/rafaqat/unitybridgelite.git?path=UnityPackage

Quick Commands

# Ping Unity
python3 <skill-path>/scripts/unity_client.py ping

# Get scene hierarchy
python3 <skill-path>/scripts/unity_client.py hierarchy --pretty

# Create a cube
python3 <skill-path>/scripts/unity_client.py menu path="GameObject/3D Object/Cube"

# Change object color
python3 <skill-path>/scripts/unity_client.py color name=Cube color=FF0000

Available Commands

Basic Commands

Command Description
ping Health check
list_commands List all commands
hierarchy Get scene hierarchy
scene Get scene info
selection Get selected objects

GameObject Commands

Create via menu:

python3 <skill-path>/scripts/unity_client.py menu path="GameObject/3D Object/Cube"
python3 <skill-path>/scripts/unity_client.py menu path="GameObject/3D Object/Sphere"
python3 <skill-path>/scripts/unity_client.py menu path="GameObject/Light/Point Light"

Create empty GameObject:

python3 <skill-path>/scripts/unity_client.py create name=MyObject
python3 <skill-path>/scripts/unity_client.py create name=Child parent=MyObject

Select object:

python3 <skill-path>/scripts/unity_client.py select name=Cube

Set material color (hex):

python3 <skill-path>/scripts/unity_client.py color name=Cube color=FF0000
python3 <skill-path>/scripts/unity_client.py color name=Sphere color=00FF00

Animation Commands

Start rotation (degrees/second):

# Rotate on Y axis at 45 deg/sec
python3 <skill-path>/scripts/unity_client.py rotate name=Cube y=45

# Rotate on multiple axes
python3 <skill-path>/scripts/unity_client.py rotate name=Cube x=10 y=45 z=5

Stop rotation:

python3 <skill-path>/scripts/unity_client.py stop_rotation name=Cube
python3 <skill-path>/scripts/unity_client.py stop_rotation all=true

Start orbit (circle around point):

# Orbit around origin, radius 3, speed 60 deg/sec
python3 <skill-path>/scripts/unity_client.py orbit name=Cube radius=3 speed=60

# Orbit around custom center
python3 <skill-path>/scripts/unity_client.py orbit name=Cube radius=5 speed=30 center_x=0 center_y=1 center_z=0

Stop orbit:

python3 <skill-path>/scripts/unity_client.py stop_orbit name=Cube
python3 <skill-path>/scripts/unity_client.py stop_orbit all=true

Package Management

Install package:

# By package name
python3 <skill-path>/scripts/unity_client.py install package=com.unity.xr.arkit

# From git URL
python3 <skill-path>/scripts/unity_client.py install package="https://github.com/user/repo.git"

List installed packages:

python3 <skill-path>/scripts/unity_client.py packages --pretty

Settings & Editor Control

Open Project Settings:

# Open XR settings
python3 <skill-path>/scripts/unity_client.py settings path="Project/XR Plug-in Management"

# Open Player settings
python3 <skill-path>/scripts/unity_client.py settings path="Project/Player"

# Open Quality settings
python3 <skill-path>/scripts/unity_client.py settings path="Project/Quality"

Play mode:

python3 <skill-path>/scripts/unity_client.py play play=true   # Enter play mode
python3 <skill-path>/scripts/unity_client.py play play=false  # Exit play mode

Player Settings (iOS/Android)

Get current player settings:

python3 <skill-path>/scripts/unity_client.py player platform=ios --pretty
python3 <skill-path>/scripts/unity_client.py player platform=android --pretty

Set iOS player settings:

# Set bundle ID and company
python3 <skill-path>/scripts/unity_client.py set_player platform=ios bundleIdentifier=com.company.app companyName=MyCompany

# Configure for ARKit
python3 <skill-path>/scripts/unity_client.py set_player platform=ios \
  requiresARKitSupport=true \
  cameraUsageDescription="AR features require camera access"

# Enable automatic signing
python3 <skill-path>/scripts/unity_client.py set_player platform=ios \
  appleEnableAutomaticSigning=true \
  appleDeveloperTeamID=XXXXXXXXXX

# Set target iOS version
python3 <skill-path>/scripts/unity_client.py set_player platform=ios targetOSVersion=13.0

Set Android player settings:

python3 <skill-path>/scripts/unity_client.py set_player platform=android \
  bundleIdentifier=com.company.app \
  minSdkVersion=AndroidApiLevel26

Build Target / Platform Switching

Get current build target:

python3 <skill-path>/scripts/unity_client.py build_target --pretty

Switch build platform:

python3 <skill-path>/scripts/unity_client.py switch_platform target=iOS
python3 <skill-path>/scripts/unity_client.py switch_platform target=Android
python3 <skill-path>/scripts/unity_client.py switch_platform target=macOS
python3 <skill-path>/scripts/unity_client.py switch_platform target=WebGL

MultiSet SDK Configuration

Get current MultiSet config:

python3 <skill-path>/scripts/unity_client.py multiset --pretty

Set MultiSet credentials:

# Set client ID and secret (creates Assets/Resources/MultiSetConfig.asset)
python3 <skill-path>/scripts/unity_client.py set_multiset \
  clientId=YOUR_CLIENT_ID \
  clientSecret=YOUR_CLIENT_SECRET

Create generic ScriptableObject:

# Create any ScriptableObject asset
python3 <skill-path>/scripts/unity_client.py create_so \
  typeName=MultiSetConfig \
  path=Assets/Resources/MultiSetConfig.asset

Python API Usage

import sys, os
sys.path.append(os.path.expanduser('~/.claude/skills/unity/scripts'))
from unity_client import send_command

# Ping
result = send_command('ping')

# Create cube and color it
send_command('execute_menu', {'path': 'GameObject/3D Object/Cube'})
send_command('set_material_color', {'name': 'Cube', 'color': '0000FF'})

# Animate
send_command('start_rotation', {'name': 'Cube', 'y': 45})
send_command('start_orbit', {'name': 'Cube', 'radius': 3, 'speed': 60})

# Install package
send_command('install_package', {'package': 'com.unity.xr.arkit'})

# Open settings
send_command('open_settings', {'path': 'Project/XR Plug-in Management'})

# Configure MultiSet SDK
send_command('set_multiset_config', {
    'clientId': 'your_client_id',
    'clientSecret': 'your_client_secret'
})

Response Format

All commands return JSON:

{
  "status": "success",
  "result": { ... }
}

Or on error:

{
  "status": "error",
  "error": "Error description"
}

Troubleshooting

"No Unity port files found"

  • Unity must be running with Bridge Lite installed
  • Check ~/.unity-bridge/ for status files

"Connection refused"

  • Unity may be recompiling - wait and retry
  • Restart Unity if bridge is stuck

"Unknown command"

  • Unity needs to recompile after code changes
  • Click on Unity window to trigger recompile