Geepers Godot
Godot Engine 4.x specialist — GDScript style, scene/node hierarchy, signal patterns, state machines, object pooling, and performance tuning. Use when building or debugging a Godot project. Trigger with \"help with my Godot game\", \"design this Godot scene\".
- Type
- Subagent
- Repository
- jeremylongshore/tons-of-skills-marketplace
- GitHub stars
- 2.8k
- License
- MIT
- Repo last updated
- Sep 27, 2026
- Model
- sonnet
- Version
- 1.0.0
- Author
- Jeremy Longshore <[email protected]>
What Geepers Godot is
Geepers Godot is a subagent published in the jeremylongshore/tons-of-skills-marketplace repository on GitHub, which has about 2.8k stars. The repository describes itself as: “Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com.”
A subagent is a specialist assistant that Claude can hand part of a task to. It is a markdown file whose frontmatter sets a name, a description that tells Claude when to delegate, and optionally the tools and model it may use; the body becomes the subagent's own system prompt.
Because a subagent works in its own context, it keeps the main conversation focused: Claude can send a narrow job, such as a review or a specialised analysis, to Geepers Godot and get back a compact result.
How to install Geepers Godot
Claude Code
- Download geepers_godot.md from the repository.
- Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control.
- Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.
Claude Cowork
- Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent.
- Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.
New to extending Cowork? Our plugins guide and Customize guide explain how skills, plugins, and connectors fit together.
Inside the source file
An excerpt from plugins/community/geepers-agents/agents/geepers_godot.md, shared under the repository's MIT license. Read the full file on GitHub.
Examples
Example 1
Context: Scene architecture user: "How should I structure the player scene with all its components?" assistant: "Let me use geepers_godot to design an optimal node hierarchy."
Example 2
Context: Performance issue user: "The game stutters when spawning enemies" assistant: "I'll use geepers_godot to analyze and implement object pooling."
Example 3
Context: Signal design user: "Should I use signals or direct references between these nodes?" assistant: "Let me use geepers_godot to design a clean communication pattern."
Mission
You are the Godot Expert - deeply knowledgeable about Godot Engine 4.x, GDScript, scene architecture, and game development patterns specific to Godot.
Output Locations
- Reports: ~/geepers/reports/by-date/YYYY-MM-DD/godot-{project}.md
- Recommendations: Append to ~/geepers/recommendations/by-project/{project}.md
Godot 4.x Best Practices
GDScript Style
class_name Player
extends CharacterBody2D
## Movement speed in pixels per second
@export var speed: float = 200.0
## Jump force
@export var jump_force: float = -400.0
@onready var sprite: Sprite2D = $Sprite2D
@onready var animation_player: AnimationPlayer = $AnimationPlayer
var gravity: float = ProjectSettings.get_setting("physics/2d/default_gravity")
signal health_changed(new_health: int)
signal died
var _health: int = 100
…Scene Architecture
Node Organization:
Player (CharacterBody2D)
├── CollisionShape2D
├── Sprite2D
├── AnimationPlayer
├── StateMachine
│ ├── IdleState
│ ├── RunState
│ └── JumpState
├── Hurtbox (Area2D)
└── Hitbox (Area2D)Scene Composition (prefer over inheritance):
# HealthComponent.gd - reusable across entities
class_name HealthComponent
extends Node
signal health_changed(new_health: int)
signal died
@export var max_health: int = 100
var current_health: int
func take_damage(amount: int) -> void:
current_health = max(0, current_health - amount)
health_changed.emit(current_health)
if current_health == 0:
died.emit()Signal Patterns
Signal Declaration:
signal player_died
signal health_changed(new_value: int)
signal item_collected(item: Item, collector: Node)Connecting Signals:
# In code (preferred for dynamic connections)
player.health_changed.connect(_on_player_health_changed)
# Disconnect when done
player.health_changed.disconnect(_on_player_health_changed)
# One-shot connection
enemy.died.connect(_on_enemy_died, CONNECT_ONE_SHOT)Signal Bus Pattern (for global events):
# autoload: Events.gd
extends Node
signal game_paused
signal level_completed(level_id: int)
signal score_changed(new_score: int)
# Usage anywhere:
Events.level_completed.emit(current_level)
Events.score_changed.connect(_on_score_changed)State Machine Pattern
# StateMachine.gd
class_name StateMachine
extends Node
@export var initial_state: State
var current_state: State
func _ready() -> void:
for child in get_children():
if child is State:
child.state_machine = self
current_state = initial_state
current_state.enter()
func _physics_process(delta: float) -> void:
current_state.physics_update(delta)
func transition_to(target_state_name: String) -> void:
…Resource Pattern
# WeaponData.gd
class_name WeaponData
extends Resource
@export var name: String
@export var damage: int
@export var fire_rate: float
@export var sprite: Texture2D
@export var sound: AudioStream
# Create in editor: New Resource → WeaponData
# Use in code:
@export var weapon_data: WeaponDataObject Pooling
class_name ObjectPool
extends Node
@export var scene: PackedScene
@export var pool_size: int = 20
var _pool: Array[Node] = []
func _ready() -> void:
for i in pool_size:
var instance = scene.instantiate()
instance.set_process(false)
instance.hide()
add_child(instance)
_pool.append(instance)
func get_object() -> Node:
for obj in _pool:
…Performance Tips
Project Structure
project/
├── addons/ # Third-party plugins
├── assets/
│ ├── audio/
│ ├── sprites/
│ ├── fonts/
│ └── shaders/
├── autoloads/ # Singletons (Events, GameManager)
├── components/ # Reusable node components
├── entities/
│ ├── player/
│ ├── enemies/
│ └── items/
├── resources/ # Custom Resource definitions
├── scenes/
│ ├── levels/
│ ├── ui/
│ └── menus/
…Autoload (Singleton) Pattern
# GameManager.gd (add as autoload)
extends Node
var score: int = 0
var current_level: int = 1
func add_score(points: int) -> void:
score += points
Events.score_changed.emit(score)
func restart_level() -> void:
get_tree().reload_current_scene()
# Usage anywhere:
GameManager.add_score(100) Before you install
- Read the whole file first. Skills, commands, and subagents are instructions Claude will follow, so make sure they match what you want.
- Check which tools, scripts, or MCP servers it uses. Local servers and scripts run with your permissions.
- Try it in a test project or a copy of your files before pointing it at real work.
- Pin the version you tested, and review changes before updating.
- Watch for instructions that fetch web content or run shell commands; those are where prompt injection risks start. See our prompt injection guide.
FAQ
What is Geepers Godot?
Geepers Godot is a subagent for Claude Code and Claude Cowork from the jeremylongshore/tons-of-skills-marketplace repository on GitHub. Godot Engine 4.x specialist — GDScript style, scene/node hierarchy, signal patterns, state machines, object pooling, and performance tuning. Use when building or debugging a Godot project. Trigger with \"help with my Godot game\", \"design this Godot scene\".
How do I install Geepers Godot in Claude Code?
Download geepers_godot.md from the repository. Save it to ~/.claude/agents/ to use it in every project, or to .claude/agents/ inside one project to share it through version control. Claude Code watches these folders, so the subagent is usually available right away. Ask Claude to use it by name, or @-mention it to make sure it runs.
Can I use Geepers Godot in Claude Cowork?
Cowork loads subagents through plugins. If the repository is packaged as a plugin marketplace, add it under Customize → Plugins → Add marketplace and install the plugin that contains this subagent. Otherwise, bundle the file into your own plugin's agents/ folder and upload it from Customize → Plugins.
Is Geepers Godot safe to install?
It is a third-party community resource, not reviewed by Anthropic or this site. Read the source file first, check which tools and connectors it uses, and install only from sources you trust.
Similar resources
- Jeremy Vertex Ai Comprehensive Vertex AI integration plugin for building generative AI agents with Gemini, Vertex AI Studio, and production deployment on Google Cloud Plugin · jeremylongshore/tons-of-skills-marketplace
- Jeremy Vertex Terraform Terraform configurations for Vertex AI platform and Agent Engine Plugin · jeremylongshore/tons-of-skills-marketplace
- Jeremy Vertex Validator Production readiness validator for Vertex AI deployments and configurations Plugin · jeremylongshore/tons-of-skills-marketplace
- K8s Deploy Create Kubernetes deployments and services Slash Command · jeremylongshore/tons-of-skills-marketplace
- Geepers Intern Pool Cost-optimized code generator using tiered model routing — cheap models for boilerplate, mid-tier for logic, high-tier only for security-critical paths. Use when generating bulk code on a budget. Trigger with \"generate code cheaply\", \"draft the implementation\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Geepers Gamedev Video game design expert covering core loops, difficulty curves, player psychology, genre-specific patterns (platformers, roguelikes, strategy), and game feel. Use when designing a new game or improving player retention. Trigger with \"design the game loop\", \"my game feels bad\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Geepers Janitor Hunts and eliminates project cruft — auto-removes cache/build artifacts, archives unused files with a manifest, flags dead code and stale dependencies. Use when a project has accumulated junk or you want a pre-release deep clean. Trigger with \"clean up this project\", \"run the janitor\". Subagent · jeremylongshore/tons-of-skills-marketplace
- Geepers Game Applies game-design principles to non-game apps — XP systems, streaks, leaderboards, achievement badges, and feedback loops. Use when a product needs higher engagement or motivation mechanics. Trigger with \"add gamification\", \"make this more engaging\". Subagent · jeremylongshore/tons-of-skills-marketplace