research/agent-tooling.md
Agent tooling: what a coding agent gets
Use this file to set up Claude Code (or any coding agent) before c131 and c132 start: which skills exist and what is in them, which documentation is machine-readable and how large it is, which MCP servers exist and which fit, where the demo apps and worked examples are, what to watch for an hour, and how strobe is meant to be driven. It ends with what to install into .claude/skills and why. Every source was read on 2026-11-09; this ecosystem moves weekly, so re-check the versions before acting on them.
1. GPUI Kit's own material for agents
| Item | What it is | State on 2026-11-09 | Source |
|---|---|---|---|
npx skills add longbridge/gpui-kit | The README's install line, "for your AI coding agent (Cursor, Claude Code, Gemini CLI, Codex, etc.)" | Installs two skills: gpui-kit and gpui-kit-design-guides | https://github.com/longbridge/gpui-kit#skills-for-ai-coding-agents |
skills/gpui-kit/ | SKILL.md (22,497 B) plus references/: coding-guides.md (44,090 B, "a verbatim copy of https://gpui-kit.com/docs/coding-guides.md"), conventions.md (5,362 B, which constructor, state owner, event and layout contract per component family), recipes.md (5,324 B, "the tested application recipe" with its verification command), usage.md (11,463 B), and gpui/ with 22 files on action, async, context, element (6 files), entity (5), event, focus handle, global, layout and style, and tests (3) | About 240 KB of text, read on demand by the agent | https://github.com/longbridge/gpui-kit/tree/main/skills/gpui-kit |
skills/gpui-kit-design-guides/ | SKILL.md (4,219 B) plus references/design-guides.md (52,284 B, a verbatim copy of /docs/design-guides.md) | The design rules: "a requirement, not inspiration" | https://github.com/longbridge/gpui-kit/tree/main/skills/gpui-kit-design-guides |
| Both SKILL.md files | Tell the agent to read the guide file itself: "do not answer from this page, from a similar file in the codebase, or from training data"; if the design skill is missing, fetch the .md page | The same discipline our data-interface bible asks for | same |
AGENTS.md at the repo root | "Keep project rules here; CLAUDE.md imports this file for Claude Code" (CLAUDE.md is one line: @AGENTS.md). Read the two guides before any UI change; project overview; commands | Plus .agents/COMPONENT_TEST_RULES.md (6,519 B) and a release-notes command | https://github.com/longbridge/gpui-kit/blob/main/AGENTS.md |
gpui-kit.com /skills | A per-version page ("Skills available for working with GPUI Kit") | Renders an empty list on v0.9.1 and on main: the Astro page reads skills/ and .claude/skills/ at build time and the payload carries []. Read the repo, not the page | https://gpui-kit.com/skills, website/src/pages/skills.astro |
| skills.sh listing | 19 skills, 6.7K installs: gpui-kit 1.4K, gpui-kit-design-guides 1.3K, then 17 older per-topic skills (gpui-entity, gpui-async, new-component…) at 139 to 336 each | The 17 are the earlier generation; today's repo folds them into skills/gpui-kit/references/gpui/. Installing today gets two | https://www.skills.sh/longbridge/gpui-kit |
| Third-party skills | aprilnea/gpui-skills → gpui-component (51 installs, first seen 2026-01-21, 9 stars); terraphim/codex-skills/gpui-components | Predate the rename; no version stated. Not needed | https://www.skills.sh/aprilnea/gpui-skills/gpui-component |
| Any docs page as Markdown | Append .md to a page URL (/docs/fonts.md, /component/data-table.md) | The right unit to fetch into context | https://gpui-kit.com/llms.txt |
/llms.txt | 47,730 B, 384 lines: a flat alphabetical index of about 300 entries, each title twice (English and zh-CN) with a one-line description | Fits in context; use it to find the page | https://gpui-kit.com/llms.txt |
/llms-full.txt | 4,737,688 B, 100,831 lines: the whole site in both languages | Too large to paste (over a million tokens). Fetch pages | https://gpui-kit.com/llms-full.txt |
| Context7 | Indexes /longbridge/gpui-kit: 13,875 snippets, 1,958,016 tokens, trust score 9.9, "updated 1 week ago" | The one documentation MCP that covers the kit | https://context7.com/longbridge/gpui-kit |
| docs.rs | gpui-kit, gpui-component, gpui-pre and gpui all resolve | API reference; gpui-pre is the one the kit pins | https://docs.rs/gpui-kit, https://docs.rs/gpui-pre/latest/gpui/ |
| crates.io | gpui-kit 0.9.1 (published 2026-11-09, 309,237 downloads); gpui-pre 0.3.12 (2026-11-09, 446,806) | Weekly | https://crates.io/crates/gpui-kit |
| Repository | 20,095 stars, 1,231 forks, 153 open issues, 113 discussions (General, Q&A), pushed 2026-11-09 | Discussions are the Q&A channel | https://github.com/longbridge/gpui-kit |
2. Native Shell's material for agents
Same author, same shape, built in the same month.
npx skills add longbridge/nshinstallsnsh(SKILL.md 16,226 B: "Build, run, test and package Native Shell (NSH) apps in Rust, TSX or both", with Coding Guides and "a tested app in Rust and in TSX") andnsh-design-guides(4,840 B). The README names "Claude Code, Codex, Cursor, Gemini CLI and others". — https://github.com/longbridge/nsh#skills-for-ai-coding-agentsAGENTS.md,CLAUDE.mdandCONTEXT.mdat the root;/llms.txt58,776 B, 269 lines (about 125 links per language);/llms-full.txt2,386,567 B, 44,031 lines; pages serve as.md. — https://nsh.dev/llms.txt- Repository: 2,273 stars, 143 forks, 107 open issues, created 2026-10-14. — https://github.com/longbridge/nsh
- Not for V1 (D2); install only if c132 picks medium E (nsh TSX mocks). See native-shell.md.
3. GPUI itself
- The API reference the kit uses is
docs.rs/gpui-pre, notdocs.rs/gpui(frozen at 0.2.2 since 2025-10-22). GPUI's README: "still in active development … and is still pre-1.0. There will often be breaking changes between versions." — https://raw.githubusercontent.com/zed-industries/zed/main/crates/gpui/README.md, https://gpui.rs crates/gpui/examples: 46 entries, among thema11y.rs,system_notifications.rs,set_menus.rs,on_window_close_quit.rs,toggle_headless.rs,data_table.rs,uniform_list.rs,testing.rs,window_positioning.rs. The shortest route to how Zed does a thing. — https://github.com/zed-industries/zed/tree/main/crates/gpui/exampleszed-industries/awesome-gpui: about 150 apps in four groups, about 30 libraries, 6 tools, each entry with a star count and an activity status (active, quiet, dormant, archived); 458 commits; it carries its own skill at.agents/skills/awesome-gpui-projects. Libraries worth knowing:gpui-router,gpui-nav,gpui-storybook,gpui-devtools(element picker and style inspection),gpui-hooks,plotters-gpui. — https://github.com/zed-industries/awesome-gpui- Books:
MatinAniss/gpui-book(283 stars, marked dormant) andvanuan.github.io/gpui-book(currency unverified). Zed's blog posts on ownership (2024-01-25) and the Metal pipeline (2024-02-07) remain the written account of the design. — https://github.com/MatinAniss/gpui-book, https://zed.dev/blog - Zed repository: 94,583 stars, 3,058 open issues. — https://github.com/zed-industries/zed
4. MCP servers
| Server | What it does | State | Fit for us |
|---|---|---|---|
gpui-mcp (themixednuts) | A bridge crate installed in the app (BridgeHandle::install(window, cx, BridgeConfig::new(AppId::new("my-app")?, "My App"))) plus a gpui-mcp-server binary that "discovers running apps on its own". Tools: list_apps, get_ui_tree, find_elements, click_element, type_text, set_value, keyboard, hover_element, drag_element, scroll, wait_for_element, wait_for_state, save_ui_snapshot, diff_current_ui, screenshot, compare_screenshots, start_video_recording. Client config: { "mcpServers": { "gpui": { "command": "gpui-mcp" } } } | 9 stars, Apache-2.0, created 2026-08-03, last push 2026-10-09, no releases. Requires [patch.crates-io] so the app, the platform crate and the bridge share one GPUI build; supports gpui-pre 0.3.5 to 0.3.7 and gpui-kit = "=0.7.0". We are on 0.9.1 and gpui-pre 0.3.12: not covered | Not yet. The kit's headless test-support (find, click, input, press) is the agent's hands for now (see gpui-kit.md). Revisit when the spike needs an agent to drive a live window |
| Context7 | Documentation lookup; resolves /longbridge/gpui-kit | Indexed, see §1 | Yes, optional: a "how do I" channel that beats pasting llms-full.txt |
| strobe | Five tools, each exactly one CLI command: status, record, bench, query, report. Streamable HTTP, POST /mcp, 127.0.0.1 only, bearer token; its instructions say "Load the 'strobe' skill before using strobe tools" | strobe up registers the MCP in opencode's config and writes the skill to ~/.config/opencode/skills/strobe/SKILL.md; nothing is written for Claude Code | Register by hand, or let the agent call the CLI the skill teaches. See §7 |
| A GPUI or GPUI Kit docs MCP from Longbridge or Zed | — | None found | — |
5. Demo apps and worked examples
| Where | What | Why it matters to us |
|---|---|---|
Kit crates/story | The gallery of every component: cargo run in the kit checkout; crates/story-web is the wasm build (nightly, "Showcase only") | The living catalog; what c132 mocks against |
Kit examples/ | 33 directories: hello_world, sidebar, dock, table_in_scrollable, system_monitor, input, dialog_overlay, focus_trap, fps_monitor, markdown, stream-markdown, webview, app_assets, tig, speech, ai_recipes, and the shell examples js_dock, js_story, js_todolist, js_webview | system_monitor and sidebar are the closest to a Status page; app_assets shows bundling |
Kit skills/gpui-kit/references/recipes.md | "A complete compiled view with retained state, subscriptions, and overlay layers" with a verification command | The agent's starting skeleton for c131 Phase 0 |
| gpui-kit.com/apps | "100 apps found", dated 2026-09-05 to 2026-11-09, open source and commercial: Longbridge Pro (trading, commercial), OpenLogi (local-first, "no account or telemetry"), disktree, Zedis, tty7, Wake, BarSQL and Ossgui (credentials in the OS keychain), SwitchHosts Lite | Proof that kit apps ship; none of the visible entries is a tray utility |
| awesome-gpui apps | Cap (24.7k stars), OpenLogi (25.4k), disktree (4.1k), Zeron (3.5k), Sonora (2.7k), zedis (2.2k), Navop (2.1k), Loungy (1.7k, a Spotlight-style launcher), tty7 (1.5k); nearest to our shape: hi5 (a macOS menu-bar app), Traydex (a Windows shelf), bandmeter (a Linux network monitor), clp and ropy (clipboard managers) | Where a tray-shaped GPUI app has been tried; star counts as the list shows them, not re-checked |
Zed crates/gpui/examples | 46 files (§3) | OS features without the kit |
6. An hour of video, chosen
| Title | Who, where, when | Why |
|---|---|---|
| "Rendering at 1 million pixels / millisecond with GPUI" | Conrad Irwin (Zed), EuroRust 2025, 2025-10-09, a 45-minute slot | The renderer explained by its maintainers: "render a new frame to the entire screen every 8ms". — https://www.youtube.com/watch?v=sheIOOf-xRo |
| "Zed 1.0: GPUI, Rust, and the future of native apps" | Mikayla Maki (Zed), PodRocket by LogRocket, about May 2026 (date from search metadata, unverified) | Zed's own view of GPUI for other apps, after 1.0. — https://www.youtube.com/watch?v=a2FkwhZ1xvQ |
| "The Workflow of the Future With Zed" | Nathan Sobo interviewed on Syntax, about August 2026 (unverified) | Why Rust, how GPUI works, from the founder. — https://www.youtube.com/watch?v=GsLyhrxaMIo |
| "I'm Using GPUI For Everything" | Syntax (Scott Tolinski, Wes Bos), about October 2026 (unverified) | The enthusiasm the "Electron killer" post reacts to; useful for what web developers expect. — https://www.youtube.com/watch?v=SdJXHYuRr48 |
| "Native UIs without Electron" | Software Unscripted (Richard Feldman) with Nathan Sobo, 2024-05-04, audio | The design rationale, before the kit existed. — https://shows.acast.com/software-unscripted/episodes/664fde448c77cc0013b33384 |
| "Rust Streams" playlist | Duane Bester, livestreams building with GPUI ("First look at the new Rust GPUI framework from Zed!", a second on web sockets feeding a view) | Watching someone hit the API's edges. — https://www.youtube.com/playlist?list=PLzIkykhdNahwxfVbxgZR69TQSsJc-6Rqq |
Durations were not checked (YouTube pages return no metadata to a fetch); titles and channels were confirmed through YouTube's oEmbed endpoint.
7. strobe, the measuring tool
- Repository
anomalyco/strobe: created 2026-10-31, 141 stars, Rust, tagsv0.22.0tov0.26.0, zero GitHub releases, GitHub detects no licence file; the npm package@hona/strobeis MIT and published 0.24.0, 0.25.0 and 0.26.0 on 2026-11-09 alone. — https://github.com/anomalyco/strobe, https://registry.npmjs.org/@hona/strobe - Install:
bun add -d @hona/strobe && bunx strobe up.upchecks cpu, power, gpu, displays, targets and engine, installs a helper for "deep mode" (admin on Windows), registers a daemon that starts at login, registers the MCP and the skill (in opencode), and calibrates. — README, SPEC §5.3 - The skill (
skill/SKILL.md, 37,144 B) is playbooks: "Did my change make it faster?", "Why is it slow?", "Where is the memory? Does it leak?", "A native app, or any process from outside":record exe:<path> --native(--windowlessfor a tray app),record pid:<n>, thenquery <rec> threads,memory,insights. A refused measurement is an answer, "never 'no value'". — https://raw.githubusercontent.com/anomalyco/strobe/main/skill/SKILL.md - Its own budget: the daemon idles at ≤ 8 MB private memory and ≤ 0.1% of a core (SPEC §19). Our app's idle numbers come from
recordruns, as planned in platform.md §11.
8. What to install for c131 and c132
- The kit's two skills, in
../qnative:npx skills add longbridge/gpui-kit. Check where the installer writes (the kit's own site loader reads bothskills/and.claude/skills/); if not.claude/skills/, copyskills/gpui-kitandskills/gpui-kit-design-guidesfrom the repo at the tag we pin (0.9.1 today). Re-install on every kit bump: the coding guide is a copy of a page that changes weekly. - Not the 17 legacy skills on skills.sh; they are folded into the
gpui-kitskill. - strobe, on the build Mac:
bun add -d @hona/strobe && bunx strobe up, with the npm version pinned (three versions in one day). Copyskill/SKILL.mdto.claude/skills/strobe/SKILL.mdyourself;upwrites only opencode's. Skip the MCP at first: the skill teaches the CLI, and the daemon's HTTP endpoint needs the token from<state>/mcp-tokenand the port fromstate.jsonto register by hand. - Context7 MCP, optional, one entry in
.mcp.json; the agent then resolves/longbridge/gpui-kitfor "how do I" lookups instead of readingllms-full.txt. - Not
gpui-mcpuntil it tracks the kit'sgpui-prepin; the kit's headless tests are the agent's hands. - Not the nsh skills unless c132 chooses medium E.
- qnative's
CLAUDE.mdfollows the kit's pattern: one line pointing at the two skills and at the data-interface rules, so every agent reads the same guides before touching a screen. For c132, the design-guides skill is the brief a mock is held to; a mock that departs from it says why. - Fetch pages, not the firehose:
curl https://gpui-kit.com/docs/<page>.mdfor one topic;/llms.txtto find it.
Open questions
- Does
npx skills addwrite to.claude/skillsfor Claude Code, or to.agents/skills? Check at install. - Is the skill's coding guide current with 0.9.1 (it is a copy, undated)? Diff it against
/docs/coding-guides.mdat install. - Will
gpui-mcpfollowgpui-prepast 0.3.7? Ask in its issues when the spike needs it. - What does
strobe statusdemand on macOS (permissions, the helper)? The spike finds out.
Sources (all read 2026-11-09)
https://github.com/longbridge/gpui-kit (README, AGENTS.md, skills/, website/src/pages/skills.astro, releases) · https://gpui-kit.com/skills · https://gpui-kit.com/llms.txt · https://gpui-kit.com/llms-full.txt · https://www.skills.sh/longbridge/gpui-kit · https://www.skills.sh/aprilnea/gpui-skills/gpui-component · https://context7.com/longbridge/gpui-kit · https://docs.rs/gpui-kit · https://docs.rs/gpui-pre/latest/gpui/ · https://crates.io/api/v1/crates/gpui-kit · https://crates.io/api/v1/crates/gpui-pre · https://github.com/longbridge/nsh (README, skills/) · https://nsh.dev/llms.txt · https://nsh.dev/llms-full.txt · https://raw.githubusercontent.com/zed-industries/zed/main/crates/gpui/README.md · https://github.com/zed-industries/zed/tree/main/crates/gpui/examples · https://gpui.rs · https://github.com/zed-industries/awesome-gpui · https://github.com/MatinAniss/gpui-book · https://github.com/themixednuts/gpui-mcp · https://gpui-kit.com/apps/ · https://www.youtube.com/watch?v=sheIOOf-xRo · https://eurorust.eu/2025/talks/rendering-at-1-million-pixels-millisecond-with-gpui/ · https://www.youtube.com/watch?v=a2FkwhZ1xvQ · https://www.youtube.com/watch?v=GsLyhrxaMIo · https://www.youtube.com/watch?v=SdJXHYuRr48 · https://shows.acast.com/software-unscripted/episodes/664fde448c77cc0013b33384 · https://www.youtube.com/playlist?list=PLzIkykhdNahwxfVbxgZR69TQSsJc-6Rqq · https://github.com/anomalyco/strobe · https://raw.githubusercontent.com/anomalyco/strobe/main/README.md · https://raw.githubusercontent.com/anomalyco/strobe/main/skill/SKILL.md · https://raw.githubusercontent.com/anomalyco/strobe/main/SPEC.md · https://registry.npmjs.org/@hona/strobe