Skip to content
Conduit

skill

gtk-rs-skills

Agent skills and reference docs for building modern GTK 4 + libadwaita apps in Rust with gtk-rs: development guide, project scaffolding and code review.

leinardi/gtk-rs-skillscommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/leinardi/gtk-rs-skills itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Nov 1, 2026

gtk-rs skills

Agent skills and reference documentation for building modern GTK 4 + libadwaita applications in Rust with gtk-rs. Based on guidance from the official gtk-rs book and patterns from well-maintained GNOME Rust apps listed on gtk-rs.org (Fractal, Amberol, Authenticator, Shortwave, Pika Backup, Warp, Fragments, Identity, Video Trimmer, Mission Center, Podcasts, Helvum, Icon Library, Contrast, Solanum).

Tested against gtk4 0.11 / libadwaita 0.9 / glib 0.22 (GTK 4.22, libadwaita 1.9, GNOME 50), Rust edition 2024, Blueprint, Meson and Flatpak. New apps from the template require that baseline; in existing projects on older versions, the skills tell the agent to keep the project's versions and verify each API against them rather than upgrade unasked.

Skills

SkillUse it for
gtk-rs-developmentAny change to a gtk-rs app: rules that apply everywhere, plus 20 topic references loaded on demand.
gtk-rs-new-appScaffolding a new app from a tested template (Meson, Cargo, Blueprint, GSettings, metainfo, Flatpak, CI).
gtk-rs-reviewReviewing gtk-rs code or diffs for freezes, leaks, re-entrancy panics, outdated APIs and packaging mistakes.

References (skills/gtk-rs-development/references/)

TopicFile
App/window structure, module layout, data flow, errors, loggingarchitecture.md
Subclassing, properties, signals, enums/boxed, base classesgobject.md
clone!, weak refs, handler lifetimes, RefCell re-entrancyclosures-and-lifetimes.md
GSettings, window state, persistencesettings-and-state.md
Main loop, threads, tokio, channels, cancellationasync-and-threads.md
Portals, D-Bus, notifications, secrets, GStreamerplatform-integration.md
Cargo + Meson, config constants, GResource, Blueprint build, data filesproject-layout-and-build.md
Flatpak, Flathub, CI, releasespackaging-and-ci.md
Tests, headless runs, inspector, warnings, leaks, profilingtesting-and-debugging.md
Blueprint and composite templatestemplates-and-blueprint.md
Actions, menus, accelerators, shortcuts dialogactions-and-shortcuts.md
List views, factories, models, filters and sorterslists-and-models.md
Adaptive libadwaita UI, dialogs, preferences, toastslibadwaita-ui.md
CSS, custom drawing, layout, animationscss-drawing-animation.md
Document apps: open, save, unsaved changes, quit, crash recoverydocument-apps.md
TextView/TextBuffer, Unicode offsets, undo, search, GtkSourceViewtext-editing.md
Clipboard, drag and drop, file dropsclipboard-and-dnd.md
Accessibility and internationalisationaccessibility-and-i18n.md
Compile errors keyed by error textcompile-traps.md
Deprecated APIs and their replacementsdeprecated-apis.md

The references are plain Markdown and work as human documentation too.

Installation

Claude Code (plugin)

/plugin marketplace add leinardi/gtk-rs-skills
/plugin install gtk-rs-skills@gtk-rs-skills

For a local checkout: /plugin marketplace add /path/to/gtk-rs-skills.

Claude Code (without the plugin system)

Copy or symlink the skill directories into ~/.claude/skills/ (all projects) or <project>/.claude/skills/:

ln -s "$PWD/skills/gtk-rs-development" ~/.claude/skills/gtk-rs-development
ln -s "$PWD/skills/gtk-rs-new-app" ~/.claude/skills/gtk-rs-new-app
ln -s "$PWD/skills/gtk-rs-review" ~/.claude/skills/gtk-rs-review

Other agents

The skills follow the open Agent Skills layout (SKILL.md + resources). For agents that only read AGENTS.md, see docs/AGENTS.md for a snippet that points them at the guide.

Scaffolding a new app

Ask your agent to "create a new GTK app called Notes", or run the generator yourself:

python3 -I skills/gtk-rs-new-app/scripts/new_app.py \
  --app-id io.github.you.Notes --name Notes --dest ~/Projects/notes
cd ~/Projects/notes
meson setup _build -Dprofile=development && meson compile -C _build
meson devenv -C _build ./src/notes

The generated project passes cargo clippy -- -D warnings (pedantic) and meson test (desktop, metainfo and schema validation), and runs without GTK warnings.

Development

See CONTRIBUTING.md and AGENTS.md. In short:

make pre-commit-install   # pre-commit + commit-msg hooks
make check                # every pre-commit hook on every file
make test                 # generator unit tests
make template-check       # generate an app from the template, lint, build and test it

The guidance pins specific crate versions. When gtk4-rs/libadwaita release new versions, bump the template (Cargo.toml features, meson.build checks, Flatpak runtime), the baseline line in skills/gtk-rs-development/SKILL.md and deprecated-apis.md, re-verify the snippets, and run make template-check. Releases are described in docs/release.md.

License

MIT, see LICENSE. Some material is adapted from third-party sources; see THIRD_PARTY_NOTICES.md.

↑↓ navigate openesc close