MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Autonomous graphics loop on IRIX 6.5.22 for GR2 (XZ/Extreme) and IMPACT (Solid/High/Maximum, MGRAS) - boot IRIS, build and run test/gltest (glprim, gltest) in the guest over telnet, capture board…
$ npx skills add techomancer/iris --skill gr2-gl-loop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install techomancer/iris gr2-gl-loop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/techomancer/iris.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/gr2-gl-loop .claude/skills/gr2-gl-loop && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gr2-gl-loop" agent skill from https://github.com/techomancer/iris/tree/main/.claude/skills/gr2-gl-loop into .claude/skills/gr2-gl-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gr2-gl-loop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/techomancer/iris/tree/main/.claude/skills/gr2-gl-loopType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add techomancer/iris --skill gr2-gl-loop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install techomancer/iris gr2-gl-loop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techomancer/iris.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/gr2-gl-loop .agents/skills/gr2-gl-loop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gr2-gl-loop" agent skill from https://github.com/techomancer/iris/tree/main/.claude/skills/gr2-gl-loop into .agents/skills/gr2-gl-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gr2-gl-loop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add techomancer/iris --skill gr2-gl-loop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install techomancer/iris gr2-gl-loop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techomancer/iris.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/gr2-gl-loop .cursor/skills/gr2-gl-loop && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gr2-gl-loop" agent skill from https://github.com/techomancer/iris/tree/main/.claude/skills/gr2-gl-loop into .cursor/skills/gr2-gl-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gr2-gl-loop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/techomancer/iris.git --path .claude/skills/gr2-gl-loop--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add techomancer/iris --skill gr2-gl-loop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install techomancer/iris gr2-gl-loop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techomancer/iris.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/gr2-gl-loop .gemini/skills/gr2-gl-loop && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gr2-gl-loop" agent skill from https://github.com/techomancer/iris/tree/main/.claude/skills/gr2-gl-loop into .gemini/skills/gr2-gl-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gr2-gl-loop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install techomancer/iris gr2-gl-loopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add techomancer/iris --skill gr2-gl-loop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/techomancer/iris.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/gr2-gl-loop .github/skills/gr2-gl-loop && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gr2-gl-loop" agent skill from https://github.com/techomancer/iris/tree/main/.claude/skills/gr2-gl-loop into .github/skills/gr2-gl-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gr2-gl-loop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add techomancer/iris --skill gr2-gl-loop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install techomancer/iris gr2-gl-loop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techomancer/iris.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/gr2-gl-loop .opencode/skills/gr2-gl-loop && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gr2-gl-loop" agent skill from https://github.com/techomancer/iris/tree/main/.claude/skills/gr2-gl-loop into .opencode/skills/gr2-gl-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gr2-gl-loop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gr2-gl-loopAutonomous graphics loop on IRIX 6.5.22 for GR2 (XZ/Extreme) and IMPACT (Solid/High/Maximum, MGRAS) - boot IRIS, build and run test/gltest (glprim, gltest) in the guest over telnet, capture board…
Gr2 Gl Loop is an agent skill from techomancer/iris. Autonomous graphics loop on IRIX 6.5.22 for GR2 (XZ/Extreme) and IMPACT (Solid/High/Maximum, MGRAS) - boot IRIS, build and run test/gltest (glprim, gltest) in the guest over telnet, capture board traces around each run, verify rendered pixels, record/replay sessions. Use for any autonomous gfx work: GL pipeline configurations (primitives, shading, vertex/colour forms, depth, scissor, viewport), board bring-up, visuals, performance.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Model Context Protocol. The licence is BSD-3-Clause.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0622008. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
shcargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
IRIS_ROOT_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Gr2 Gl Loop loads about 3.4k tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 1,717 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from techomancer/iris at commit 0622008, republished under its BSD-3-Clause licence (© techomancer). 1,717 words, ~3,423 tokens.
.claude/skills/gr2-gl-loop/SKILL.md (or your agent's skills folder).Written for GR2 first; everything carries over to IMPACT with the board's
own monitor commands (mgras ... for gr2 ...). See "IMPACT (MGRAS)"
below for what differs.
Drive one GL configuration at a time through the real IRIX GL stack
(libglcore EXPRESS -> HQ2 FIFO -> our HLE in src/dev/gr2/{hq2,gl}.rs) and
check the pixels. Each glprim run draws exactly one primitive, so its FIFO
trace is short and every option flips one piece of state or one address bit.
| What | Where |
|---|---|
| Test app | test/gltest/glprim.c (--help lists every option), built by test/gltest/irix.sh with MIPSpro cc |
| Guest shell | tools/irix-sh.py (telnet via host port 2323, root, no password; single-shot) |
| File exchange | built-in NFS: host ./shared = guest /shared (mount with tools/irix-sh.py mount-shared). noexec: copy to /tmp before building/running |
| Monitor | iris MCP (mcp__iris__run_command), i.e. the monitor on 127.0.0.1:8888 |
| Token map | ignore/gr2/HQ2.h "OpenGL token addressing" (source of truth; add findings there) |
ignore/ip28/iris.toml ([graphics] board = "solidimpact" | "highimpact" | "maximpact"), disk ip28_6522_realhw.raw written
directly (never kill iris while IRIX runs). Root has a password:
p00pp00p. tools/irix-sh.py takes --password or
IRIS_ROOT_PASSWORD=p00pp00p (glprim-case.py passes the environment on).target/release/iris with --features gr4-jit,jitv2,lightning,opcodefusion,rex-jit: do not overwrite it. Build
your own with --target-dir target/claude (same features) and run
target/claude/release/iris --config ignore/ip28/iris.toml from the
repo root (the Bash cd wrapper is broken: cd ... && exec ... inside
one command works, as does run_in_background). The CPU starts by
itself; this build exits on guest power-off, so after shutdown just
wait for the pid to go.tools/mon.py "mgras status" "rss regs" ...
(the MCP run_command has been seen returning the previous command's
output). Useful: mgras status|xmap|pix X Y|stats|jit|fbdump DIR|shot F.png|trace F [hq,rss,cpu,tex|all]|rec F|rec off, rss regs (decodes
the IR, shows each raster engine's backlog), locks (who holds what)./tmp is emptied at boot: re-copy and rebuild gltest each boot
(cp /shared/gltest/* /tmp/gltest/ && sh irix.sh gltest glprim).
/shared mounts by itself on this image.4Dwm and then
toolchest in ps -ef, plus ~15 s, before screenshots; then xset s off.tools/glprim-case.py detects the board. IMPACT's scanout applies the
DAC gamma (SGI default 1.7), so mid-level colours read back brighter
than GR2's (the pink clear 1, 0.5, 0.75 shows as ffaad7); probe
saturated colours, or check values with glprim --read ... --check.
glprim picks the deepest visual by default (12,12,12, which the raster
JIT leaves to the interpreter): use --visual 8,8,8,8 for the JIT path.tools/gltex-matrix.py runs glprim's tex scene over formats
and sizes and checks every texel's raw framebuffer word (all pass as of
48089c43). Several GL clients share TRAM through the texture manager's
page saves and restores (tl_spec 0xd60 loads in mgras trace F hq,tex): a bug there damages every client.gltest --bench is meaningless (see
rules/mgras/guest-gl-benchmarks-miss-board-time.md). Record the session
(mgras rec F ... mgras rec off) and time its replay offline with
MGRAS_REPLAY_NOCHECK=1 MGRAS_REPLAY_BOARD=high|max MGRAS_REPLAY=F cargo test --release --target-dir target/claude --lib --features gr4-jit mgras_replay_file -- --nocapture (wall time + final state hash).MGRAS_REPLAY=ignore/mgras-golden/desktop2.rec must pass every
checkpoint (also with MGRAS_REPLAY_BOARD=max). irix6522-boot.rec is
stale (11 of 16 checkpoints fail at 35a40840 too).cargo build --release --features developer (developer: monitor tooling;
do not combine with lightning).run_in_background: true, as a command of
its own (target/release/iris > <scratchpad>/iris-run.log 2>&1). A
nohup ... & inside a chained command does not survive the command, and
starting it right after killing the old process can fail: check
pgrep -a iris before going on. (config: iris.toml, Indy R5000 + XZ,
disk scsi1.raw.)run_command("cpu start") (check with
get_status if unsure).tools/irix-sh.py wait --timeout 900 returns once telnet answers with a
login prompt (network and inetd are up; X/xdm come up around then too).tools/irix-sh.py mount-shared./etc/autologin = root, and the ONE-SHOT flag
/etc/autologin.on, which clogin deletes when it logs in. Re-create it
(touch /etc/autologin.on) every boot before shutdown. The session takes
~1 min after telnet comes up: wait until ps -ef | grep 4Dwm shows it.haven + /usr/sbin/bongo, octahedra) takes over the
whole screen after 10 min idle and every probe reads black. The desktop
re-applies its saver settings after /root/.sgisession, so run
/usr/bin/X11/xset s off once the session is up, and check
xset q | grep timeout: = 0.ps -eo pid,args | grep '[t]arget/release/iris$'). pgrep -f target/release/iris also matches
the shell running the command and kills it.iris.toml currently writes the disk image directly (no overlay): never
kill iris while IRIX is running (see Shutdown).
mkdir -p shared/gltest && cp test/gltest/{glprim.c,main.c,irix.sh} shared/gltest/
tools/irix-sh.py run 'mkdir -p /tmp/gltest && cp /shared/gltest/* /tmp/gltest/' \
'cd /tmp/gltest && sh irix.sh glprim 2>&1'Every session gets DISPLAY=:0.0, /bin/sh, cwd /tmp. The exit status of
irix-sh.py run is the last command's status (124 = timeout/connection).
Preferred: tools/glprim-case.py CASE [--probe gx,gy[=rrggbb]]... [--notrace] -- <glprim options>
does all of the below (trace, run, window origin, probes in GL window
coordinates, fbdump, crop of the window to $GLPRIM_OUT/CASE.png, trace off,
kill glprim) and exits with the number of failed probes. It talks to the
monitor on 127.0.0.1:8888 directly (works alongside the MCP). Stage the
sources first (cp test/gltest/* shared/gltest/, then copy to /tmp in the
guest and sh irix.sh glprim).
By hand:
run_command("gr2 trace /tmp/gl-<case>.log all") # MCP
tools/irix-sh.py run 'cd /tmp/gltest && ./glprim <options> --hold 4000'
run_command("gr2 fbdump /tmp/gl-<case>") # during the hold, or
run_command("gr2 pix <x> <y>") # spot checks (display coords)
run_command("gr2 trace off")Run the capture commands while --hold keeps the window up (launch the
guest command in the background with & if you need to sample during the
hold). glprim prints its configuration and its real window origin
(window origin OX,OY size WxH; the window manager moves windows). A GL
window pixel (gx, gy) is display pixel (OX + gx, OY + H - 1 - gy).
Default geometry (unit square scaled to the viewport, glOrtho 0..w, 0..h):
triangle (0.2w,0.2h) red, (0.8w,0.2h) green, (0.5w,0.8h) blue. Flat shading
uses the provoking vertex (last vertex for triangles/strips/fans/quads, the
FIRST vertex for GL_POLYGON). Clear default is pink (1, 0.5, 0.75) =
rgb=ff80bf.
gr2 pix x y prints the VRAM word, DID, XMAP mode and composed rgb.gr2 fbdump DIR writes VRAM planes and the composed screen as PNGs; view
them with the Read tool.HQ exec lines show the HLE's view: VERTEX (...) -> window (...), GL triangle ..., GL_CLEAR ... rect. Unknown tokens appear as
tokNNN / (N words, not implemented) with their modifier bits decoded
(V3|USEV:VERTEX, C3:COLOR, LOADV:...).--scene depth|stencil|alphatest|blend draws small multi-primitive scenes
with known images (see the comment above draw_scene in glprim.c); verified
probes are in the history of this skill's cases (depth: (170,150) red,
(230,150) blue; stencil: (200,120) blue, (20,20) pink; blend: (200,120)
800080, (300,120) 8040df; alphatest: (200,200) ~1c1cc6, (90,62) pink).
Change one option at a time. Suggested order: clear only (-p none), flat
triangle, --smooth, --mono, every -p primitive, --vtx 2f/4f/2i/3i/2s/3d,
--color 4f/3ub/4ub/once, --viewport, --scissor, --cull/--cw,
--polymode, --persp, --depth, --db. When a new token or format shows
up, decode it against ignore/gr2/libglcore/decomp/EXPRESS (struct offset
X = FIFO index (X - 0x2000)/4), record it in HQ2.h with the emitter as
citation, implement in src/dev/gr2/gl.rs, add a replay test in
src/dev/gr2/hq2_tests.rs built from the trace (see glprim_triangle), and
re-run the case.
A guest restart costs ~6 minutes, so capture once and iterate offline:
extract the HQ2 FIFO writes of a case (from the window setup 0x1e5 to the
GL_FINISH after the draw, 2D command groups 0x12C..0x1EA dropped) into
src/dev/gr2/testdata/glprim_<scene>.trace ("index value" hex per line) and
replay it in a unit test with replay_trace() (hq2_tests.rs); the window
origin is the first two words after 1e5. See the lighting/fog tests.
/usr/demos/General_Demos/<name>/<name> (atlantis, ideas, buttonfly, flight,
powerflip, ...). GL state is swapped per context on GE_HQMSAV; still, test demos one at a
time.
Demos that wait for input need it injected: ideas sits on its title
screen until clicked (and needs another click to restart after its
animation), so a run without a click only ever draws the title.
Two ways, both scriptable:
ps2 (any PS/2 machine: Indy, Indigo2/IP28):
ps2 mouse <dx> <dy> [buttons] sends one relative mouse packet (buttons:
1 left, 2 right, 4 middle; send a packet with the button, then one with 0
to release), ps2 type <ascii text> types a string, ps2 enter presses
Enter, ps2 status shows the controller state. Moves are relative and go
through X's pointer acceleration: to reach a spot, first push the pointer
into the top-left corner with a few large negative moves, then step to the
target in small moves.run_command("ps2 mouse -500 -500") # corner (repeat to be sure)
run_command("ps2 mouse 40 30") # small steps to the target
run_command("ps2 mouse 0 0 1") # press left
run_command("ps2 mouse 0 0 0") # releasetest/gltest/xclick.c (xclick NAME [BUTTON [X Y]]
or xclick NAME key KEYSYM) clicks or presses a key at exact window
coordinates in the first window whose name starts with NAME;
test/gltest/xresize.c (xresize NAME W1 H1 W2 H2 [COUNT] [DELAY_MS])
resizes a window repeatedly. Build with sh irix.sh xclick xresize.
Precise, no acceleration, but needs a telnet session.Demo sources (ideas, atlantis, ...) are published on opengl.org: read them before guessing what a demo sends.
tools/irix-sh.py run 'touch /etc/autologin.on; sync; shutdown -p -g0 -y'Then wait about a minute (the developer build does not exit on power-off),
check /tmp/iris-run.log / the monitor for the power-off, and only then kill
the iris process.
cd may be aliased; use builtin cd or absolute paths./shared is noexec: always build and run from /tmp./bin/sh), no pkill, and
chmod wants a+x rather than +x.<stdint.h>.version bit 0 (FIN3) is waiting for a
Finish (0xA3) we did not answer; a stuck client on bit 1 is FIN2 (kernel
context switch).© techomancer, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/gr2-gl-loop of techomancer/iris.
Open the folder on GitHubat commit 0622008
Gr2 Gl Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gr2 Gl Loop this skilltechomancer/iris | 125 | — | ~3.4k | Automated safety check: Pass | BSD-3-Clause | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Figma use_figma Plugin API Ruleswarpdotdev/warp | 65k | 4 repos | ~4.4k | Automated safety check: Pass | AGPL-3.0 | |
| Stitch to Remotion Walkthrough Videosgoogle-labs-code/stitch-skills | 8.5k | 6 repos | ~3.2k | Automated safety check: Notes | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
google-labs-code/stitch-skills
Builds walkthrough videos from Stitch design projects using Remotion, with transitions, zoom effects and text overlays on each screen.
coollabsio/coolify
A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.
Works with
Autonomous graphics loop on IRIX 6.5.22 for GR2 (XZ/Extreme) and IMPACT (Solid/High/Maximum, MGRAS) - boot IRIS, build and run test/gltest (glprim, gltest) in the guest over telnet, capture board…. Gr2 Gl Loop is an agent skill from techomancer/iris.22 for GR2 (XZ/Extreme) and IMPACT (Solid/High/Maximum, MGRAS) - boot IRIS, build and run test/gltest (glprim, gltest) in the guest over telnet, capture board traces around each run, verify rendered pixels, record/replay sessions.
Gr2 Gl Loop fits situations like: any autonomous gfx work: GL pipeline configurations (primitives; vertex/colour forms.
Run `npx skills add techomancer/iris --skill gr2-gl-loop -a claude-code`. Or copy the skill folder (.claude/skills/gr2-gl-loop in techomancer/iris) into .claude/skills/gr2-gl-loop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add techomancer/iris --skill gr2-gl-loop -a codex`. Or copy the skill folder (.claude/skills/gr2-gl-loop in techomancer/iris) into .agents/skills/gr2-gl-loop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add techomancer/iris --skill gr2-gl-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gr2-gl-loop, .gemini/skills/gr2-gl-loop, .github/skills/gr2-gl-loop and .opencode/skills/gr2-gl-loop in your project.
Going by SKILL.md and its folder, Gr2 Gl Loop needs the command-line tools its instructions call (sh and cargo) and credentials named IRIS_ROOT_PASSWORD.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Gr2 Gl Loop is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Gr2 Gl Loop: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
techomancer (a GitHub user) maintains it in techomancer/iris, which has 125 GitHub stars. The repository was last updated on October 11, 2026.
Source: techomancer/iris on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.