Actions

SkillDev tools

Lets your agent write or modify IntelliJ AnAction classes and register them in plugin.xml.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Actions skill

About this capability

Implement or change IntelliJ `AnAction` actions and registrations.

What this skill tells your AI

The instructions your AI receives, as published by jetbrains/intellij-community in .agents/skills/actions/SKILL.md and read by ahel’s review.

Guidelines for implementing IntelliJ actions (AnAction).

Documentation

Best Practices

  • NEVER instantiate Presentation in action constructors - Use no-argument constructors
  • Define text, description, and icon in plugin.xml - Not in constructor parameters
  • Use AnActionEvent#getCoroutineScope for launching suspending computations - actionPerformed runs synchronously with event invocation and may freeze the IDE.
  • Follow the convention:
    1. Set the id attribute for the action in plugin.xml
    2. Optionally set the icon attribute if an icon is needed
    3. Set text and description in the message bundle (e.g., GitBundle.properties):
    • action.<action-id>.text=Translated Action Text
    • action.<action-id>.description=Translated Action Description

Good example:

Kotlin:

class MyAction : AnAction()

plugin.xml:

<action id="My.Action.Id"
        class="my.package.MyAction"
        icon="my.package.MyIcons.ICON"/>

Bundle.properties:

action.My.Action.Id.text=My Action
action.My.Action.Id.description=Description of my action

Signals

GitHub stars
21k
Forks
6k
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
actions-jetbrains
Source
github.com/jetbrains/intellij-community