Agent skill

Gpui Action

by StudentWeis in StudentWeis/ropy

Action definitions and keyboard shortcuts in GPUI. An agent skill from StudentWeis/ropy.

MITAuto-check passed

Install Gpui Action

skills CLI
$ npx skills add StudentWeis/ropy --skill gpui-action -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install StudentWeis/ropy gpui-action --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/StudentWeis/ropy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/gpui-action .claude/skills/gpui-action && rm -rf skills-src

Use ~/.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/

Facts

Skill name
gpui-action
GitHub stars
194
Token cost
~916 tokens
SKILL.md length
56 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
MIT

At a glance

Action definitions and keyboard shortcuts in GPUI. An agent skill from StudentWeis/ropy.

  • Implementing actions
  • SKILL.md covers Overview, Quick Start, Key Formats and Action Naming, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Keyboard shortcuts

What it does

Gpui Action is an agent skill from StudentWeis/ropy. Action definitions and keyboard shortcuts in GPUI. Use when implementing actions, keyboard shortcuts, or key bindings.

Its SKILL.md is about 920 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Cross-platform, lightweight clipboard manager written in Rust and GPUI. The licence is MIT.

When your agent uses it

  • Implementing actions
  • Keyboard shortcuts

Example prompts

  • “/gpui-action”

What it can do on your machine

Read from SKILL.md and the folder at commit 4e784df. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are rust).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gpui Action loads about 916 tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 56 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~33
When it runs · the whole SKILL.md, loaded when a task matches
~916

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from StudentWeis/ropy at commit 4e784df, republished under its MIT licence (© StudentWeis). 56 words, ~916 tokens.

Download SKILL.mdSave it as .claude/skills/gpui-action/SKILL.md (or your agent's skills folder).
name
gpui-action
description
Action definitions and keyboard shortcuts in GPUI. Use when implementing actions, keyboard shortcuts, or key bindings.

Overview

Actions provide declarative keyboard-driven UI interactions in GPUI.

Key Concepts:

  • Define actions with actions! macro or #[derive(Action)]
  • Bind keys with cx.bind_keys()
  • Handle with .on_action() on elements
  • Context-aware via key_context()

Quick Start

Simple Actions
rust
use gpui::actions;

actions!(editor, [MoveUp, MoveDown, Save, Quit]);

const CONTEXT: &str = "Editor";

pub fn init(cx: &mut App) {
    cx.bind_keys([
        KeyBinding::new("up", MoveUp, Some(CONTEXT)),
        KeyBinding::new("down", MoveDown, Some(CONTEXT)),
        KeyBinding::new("cmd-s", Save, Some(CONTEXT)),
        KeyBinding::new("cmd-q", Quit, Some(CONTEXT)),
    ]);
}

impl Render for Editor {
    fn render(&mut self, _: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
        div()
            .key_context(CONTEXT)
            .on_action(cx.listener(Self::move_up))
            .on_action(cx.listener(Self::move_down))
            .on_action(cx.listener(Self::save))
    }
}

impl Editor {
    fn move_up(&mut self, _: &MoveUp, cx: &mut Context<Self>) {
        // Handle move up
        cx.notify();
    }

    fn move_down(&mut self, _: &MoveDown, cx: &mut Context<Self>) {
        cx.notify();
    }

    fn save(&mut self, _: &Save, cx: &mut Context<Self>) {
        // Save logic
        cx.notify();
    }
}
Actions with Parameters
rust
#[derive(Clone, PartialEq, Action, Deserialize)]
#[action(namespace = editor)]
pub struct InsertText {
    pub text: String,
}

#[derive(Action, Clone, PartialEq, Eq, Deserialize)]
#[action(namespace = editor, no_json)]
pub struct Digit(pub u8);

cx.bind_keys([
    KeyBinding::new("0", Digit(0), Some(CONTEXT)),
    KeyBinding::new("1", Digit(1), Some(CONTEXT)),
    // ...
]);

impl Editor {
    fn on_digit(&mut self, action: &Digit, cx: &mut Context<Self>) {
        self.insert_digit(action.0, cx);
    }
}

Key Formats

rust
// Modifiers
"cmd-s"         // Command (macOS) / Ctrl (Windows/Linux)
"ctrl-c"        // Control
"alt-f"         // Alt
"shift-tab"     // Shift
"cmd-ctrl-f"    // Multiple modifiers

// Keys
"a-z", "0-9"    // Letters and numbers
"f1-f12"        // Function keys
"up", "down", "left", "right"
"enter", "escape", "space", "tab"
"backspace", "delete"
"-", "=", "[", "]", etc.  // Special characters

Action Naming

Prefer verb-noun pattern:

rust
actions!([
    OpenFile,      // ✅ Good
    CloseWindow,   // ✅ Good
    ToggleSidebar, // ✅ Good
    Save,          // ✅ Good (common exception)
]);

Context-Aware Bindings

rust
const EDITOR_CONTEXT: &str = "Editor";
const MODAL_CONTEXT: &str = "Modal";

// Same key, different contexts
cx.bind_keys([
    KeyBinding::new("escape", CloseModal, Some(MODAL_CONTEXT)),
    KeyBinding::new("escape", ClearSelection, Some(EDITOR_CONTEXT)),
]);

// Set context on element
div()
    .key_context(EDITOR_CONTEXT)
    .child(editor_content)

Best Practices

✅ Use Contexts
rust
// ✅ Good: Context-aware
div()
    .key_context("MyComponent")
    .on_action(cx.listener(Self::handle))
✅ Name Actions Clearly
rust
// ✅ Good: Clear intent
actions!([
    SaveDocument,
    CloseTab,
    TogglePreview,
]);
✅ Handle with Listeners
rust
// ✅ Good: Proper handler naming
impl MyComponent {
    fn on_action_save(&mut self, _: &Save, cx: &mut Context<Self>) {
        // Handle save
        cx.notify();
    }
}

div().on_action(cx.listener(Self::on_action_save))

© StudentWeis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/gpui-action of StudentWeis/ropy.

Open the folder on GitHubat commit 4e784df

Compare with similar skills

Gpui Action 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.

Gpui Action compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gpui Action this skillStudentWeis/ropy194—~916Automated safety check: PassMIT
cmux Keyboard Shortcut Customizermanaflow-ai/cmux28k1 repos~3.1kAutomated safety check: PassCustom licence
Keyboard Shortcutsmarcus/sidecar1.1k—~11kAutomated safety check: PassMIT
Windsurf Keyboard Shortcutsjeremylongshore/tons-of-skills-marketplace2.8k—~484Automated safety check: PassMIT
Studio Shortcutssupabase/supabase111k—~919Automated safety check: PassApache-2.0
ActionsJetBrains/intellij-community21k—~341Automated safety check: PassCustom licence

Similar skills

  • Turns a described workflow preference into cmux keyboard shortcut bindings, proposing templates such as tmux-style or Vim-style and applying only what the user picks.

    28k GitHub starsUsed in 1 repo~3.1k tokens
    Productivity & AutomationAuto-check passed
  • Keyboard Shortcuts

    marcus/sidecar

    Reference for keyboard shortcut implementation, keybinding registration, shortcut parity with vim and other TUI tools, and the complete shortcut assignment table across all sidecar plugins.

    1.1k GitHub stars~11k tokensUpdated 3 days ago
    Auto-check passed
  • Windsurf Keyboard Shortcuts

    jeremylongshore/tons-of-skills-marketplace

    Configure custom keyboard shortcuts for Cascade and AI features.

    2.8k GitHub stars~484 tokensUpdated today
    Auto-check passed
  • Studio Shortcuts

    supabase/supabase

    Official

    Keyboard shortcut conventions for Supabase Studio. An agent skill from supabase/supabase.

    111k GitHub stars~919 tokensUpdated today
    Backend & APIsAuto-check passed
  • Actions

    JetBrains/intellij-community

    Official

    Implement or change IntelliJ AnAction actions and registrations.

    21k GitHub stars~341 tokensUpdated yesterday
    MobileAuto-check passed
  • Walks through adding a keyboard shortcut to LobeHub: the id type, default registration, translation text, the hook and an optional tooltip, plus scope and conflict advice.

    83k GitHub stars~647 tokensUpdated today
    Frontend & DesignAuto-check passed

More from StudentWeis/ropy

All 17 skills in this repo
  • Gpui Element

    StudentWeis/ropy

    Implementing custom elements using GPUI's low-level Element API (vs.

    194 GitHub stars~1.1k tokensUpdated 29 days ago
    Auto-check passed
  • Gpui Entity

    StudentWeis/ropy

    Entity management and state handling in GPUI. An agent skill from StudentWeis/ropy.

    194 GitHub stars~1.1k tokensUpdated 29 days ago
    Auto-check passed
  • Code Quality Review

    StudentWeis/ropy

    Review a code change, diff, pull request, module, or test suite for code quality, comment and documentation quality, and test quality.

    194 GitHub stars~2.2k tokensUpdated 29 days ago
    Auto-check passed
  • Contribution Flow

    StudentWeis/ropy

    Repository contribution workflow. An agent skill from StudentWeis/ropy.

    194 GitHub stars~705 tokensUpdated 29 days ago
    Auto-check passed
  • Gpui Async

    StudentWeis/ropy

    Async operations and background tasks in GPUI. An agent skill from StudentWeis/ropy.

    194 GitHub stars~934 tokensUpdated 29 days ago
    Auto-check passed
  • Gpui Context

    StudentWeis/ropy

    Context management in GPUI including App, Window, and AsyncApp.

    194 GitHub stars~802 tokensUpdated 29 days ago
    Auto-check passed

Questions about Gpui Action

What does Gpui Action do?

Action definitions and keyboard shortcuts in GPUI. An agent skill from StudentWeis/ropy. Gpui Action is an agent skill from StudentWeis/ropy. Action definitions and keyboard shortcuts in GPUI.

When should I use Gpui Action?

Gpui Action fits situations like: implementing actions; keyboard shortcuts.

How do I install Gpui Action in Claude Code?

Run `npx skills add StudentWeis/ropy --skill gpui-action -a claude-code`. Or copy the skill folder (.agents/skills/gpui-action in StudentWeis/ropy) into .claude/skills/gpui-action in your project. Claude Code loads it when a task matches its description.

How do I install Gpui Action in Codex?

Run `npx skills add StudentWeis/ropy --skill gpui-action -a codex`. Or copy the skill folder (.agents/skills/gpui-action in StudentWeis/ropy) into .agents/skills/gpui-action in your project. Codex loads it when a task matches its description.

Can I use Gpui Action in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add StudentWeis/ropy --skill gpui-action -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gpui-action, .gemini/skills/gpui-action, .github/skills/gpui-action and .opencode/skills/gpui-action in your project.

What does Gpui Action need to run?

SKILL.md names no scripts, command-line tools or credentials: Gpui Action is instructions for the agent only.

Does Gpui Action access the network?

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.

Is Gpui Action safe to install?

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.

What licence does Gpui Action use?

Gpui Action is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gpui Action use?

About 916 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gpui Action?

Skills that share tags, products or a category with Gpui Action: cmux Keyboard Shortcut Customizer (manaflow-ai/cmux, 28k stars), Keyboard Shortcuts (marcus/sidecar, 1.1k stars), Windsurf Keyboard Shortcuts (jeremylongshore/tons-of-skills-marketplace, 2.8k stars) and Studio Shortcuts (supabase/supabase, 111k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gpui Action?

StudentWeis (a GitHub user) maintains it in StudentWeis/ropy, which has 194 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on September 9, 2026.

Source: StudentWeis/ropy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.