Agent skill

uloop-simulate-keyboard

Simulate keyboard key input in PlayMode via Input System. Use when you need to: (1) Press game control keys like WASD, Space, or Shift during PlayMode, (2) Hold keys down for continuous movement or actions, (3) Combine multiple held keys for complex input like Shift+W for sprint.

Stars 249
Forks 21

Install this agent skill to your Project

npx add-skill https://github.com/hatayama/unity-cli-loop/tree/main/.claude/skills/uloop-simulate-keyboard

SKILL.md

Task

Simulate keyboard input on Unity PlayMode: $ARGUMENTS

Workflow

  1. Ensure Unity is in PlayMode (use uloop control-play-mode --action Play if not)
  2. Execute the appropriate uloop simulate-keyboard command
  3. Take a screenshot to verify the result: uloop screenshot --capture-mode rendering
  4. Report what happened

Tool Reference

bash
uloop simulate-keyboard --action <action> --key <key> [options]

Parameters

Parameter Type Default Description
--action enum Press Press, KeyDown, KeyUp
--key string (required) Key name matching Input System Key enum (e.g. W, Space, LeftShift, A, Enter). Case-insensitive.
--duration number 0 Hold duration in seconds for Press action (0 = one-shot tap). Ignored by KeyDown/KeyUp.

Actions

Action Behavior Use Case
Press KeyDown → wait → KeyUp One-shot tap (jump, use item)
KeyDown KeyDown only (held until KeyUp) Start continuous movement, hold sprint
KeyUp KeyUp only (release held key) Stop movement, release sprint

KeyDown/KeyUp Rules

  • KeyDown fails if the key is already held
  • KeyUp fails if the key is not currently held
  • Multiple keys can be held simultaneously (e.g. W + LeftShift for sprint)
  • All held keys are automatically released when PlayMode exits

Global Options

Option Description
--project-path <path> Target a specific Unity project (mutually exclusive with --port)
-p, --port <port> Specify Unity TCP port directly (mutually exclusive with --project-path)

Examples

bash
# One-shot key press (tap W once)
uloop simulate-keyboard --action Press --key W

# Jump (tap Space)
uloop simulate-keyboard --action Press --key Space

# Hold W for 2 seconds (move forward)
uloop simulate-keyboard --action Press --key W --duration 2.0

# Sprint forward (hold Shift + W, then release)
uloop simulate-keyboard --action KeyDown --key LeftShift
uloop simulate-keyboard --action KeyDown --key W
uloop screenshot --capture-mode rendering
uloop simulate-keyboard --action KeyUp --key W
uloop simulate-keyboard --action KeyUp --key LeftShift

Prerequisites

  • Unity must be in PlayMode
  • Input System package (com.unity.inputsystem) must be installed
  • Active Input Handling must be set to Input System Package (New) or Both in Player Settings
  • Game code must read input via Input System API (e.g. Keyboard.current[Key.W].isPressed), not legacy Input.GetKey()

Expand your agent's capabilities with these related and highly-rated skills.

hatayama/unity-cli-loop

uloop-simulate-mouse-ui

Simulate mouse click, long-press, and drag on PlayMode UI elements via EventSystem screen coordinates. Use when you need to: (1) Click buttons or interactive UI elements during PlayMode testing, (2) Drag UI elements from one position to another, (3) Hold a drag at a position for inspection before releasing, (4) Long-press UI elements that respond to sustained pointer-down. For game logic that reads Input System (e.g. WasPressedThisFrame), use simulate-mouse-input instead.

249 21
Explore
hatayama/unity-cli-loop

uloop-execute-menu-item

Execute Unity Editor menu commands programmatically. Use when you need to: (1) Trigger menu commands like save, build, or refresh, (2) Automate editor actions via menu paths, (3) Run custom menu items defined in project scripts.

249 21
Explore
hatayama/unity-cli-loop

uloop-find-game-objects

Find GameObjects in the active scene by various criteria. Use when you need to: (1) Search for objects by name, regex, or path, (2) Find objects with specific components, tags, or layers, (3) Get currently selected GameObjects in Unity Editor. Returns matching GameObjects with hierarchy paths and components.

249 21
Explore
hatayama/unity-cli-loop

uloop-simulate-keyboard

Simulate keyboard key input in PlayMode via Input System. Use when you need to: (1) Press game control keys like WASD, Space, or Shift during PlayMode, (2) Hold keys down for continuous movement or actions, (3) Combine multiple held keys for complex input like Shift+W for sprint.

249 21
Explore
hatayama/unity-cli-loop

uloop-run-tests

Execute Unity Test Runner and get detailed results. Use when you need to: (1) Run EditMode or PlayMode unit tests, (2) Verify code changes pass all tests, (3) Diagnose test failures with error messages and stack traces. Auto-saves NUnit XML results on failure.

249 21
Explore
hatayama/unity-cli-loop

uloop-control-play-mode

Control Unity Editor play mode (play/stop/pause). Use when you need to: (1) Start play mode to test game behavior, (2) Stop play mode to return to edit mode, (3) Pause play mode for frame-by-frame inspection.

249 21
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results