There’s been a lot of interest here in combining AI tools with Grasshopper, from AI-generated C# for components to MCP servers that let agents see and drive the canvas. One area I hadn’t seen covered is native, compiled Grasshopper plugins, having an agent scaffold, build, deploy, and verify a real C# plugin project. That’s what I’ve been working on, and I’d like to share two open-source agent skills that make it work reliably.
Agent skills are markdown instruction packages (just text files) that a coding agent, in this case Claude Code, loads on demand when a task matches.
I’ve run a simple test workflow bellow end-to-end. I gave Claude Code the prompt “create a dummy geodesic dome plugin …”
Here’s part of the run:
It scaffolds the project from the official Rhino.Templates, implements a GH_Component that generates a geodesic dome mesh, builds, deploys to %APPDATA%\Grasshopper\Libraries\, restarts Rhino, and then verifies its own work: it places the new component on the canvas, wires inputs, and reads the solver outputs to confirm the mesh actually comes out as expected. It also describes how to create icons.
The two skills
creating-grasshopper-plugin — everything for building a compiled .gha for Rhino 8 in C#: scaffolding from Rhino.Templates, GH_Component authoring, data trees, units and tolerance, multi-targeting (net48/net7.0-windows/net7.0 for Mac), local deploy, Yak packaging, and load-failure diagnosis. Its core rule: “build succeeded” is compilation, not verification, the agent isn’t allowed to report done until the component behaves correctly on the canvas.
using-cordyceps — teaches the agent to drive a live Grasshopper session through Cordyceps, @brookstalley MCP server. The skill covers a safe launch ritual (avoiding the autosave-recovery deadlock), reading the docs Cordyceps embeds, and a handful of empirical gotchas.
Why the combination matters
Each skill is useful alone, but the interesting part is the closed loop. Compiled plugins are a harder problem for an agent than script components, because the feedback loop is long: build, copy files, restart Rhino, check the palette, wire the component, read outputs. With these two skills the agent walks that whole loop itself and only reports success after inspecting real solver output.
Try it
https://github.com/daniel-locatelli/skills
In Claude Code:
/plugin marketplace add daniel-locatelli/skills
/plugin install daniel-locatelli-skills@daniel-locatelli
Or cross-agent (Cursor, Copilot, Codex, and 70+ others) via the skills.sh installer:
npx skills@latest add daniel-locatelli/skills
Everything is tested on Rhino 8 / Windows; the multi-target setup builds for Mac but I haven’t done any verification there, so reports are welcome. I’d love to hear from anyone who points this at their own plugin idea what worked, where the agent got stuck, and what the skills should pin down next.
