Skip to content

feat(rider): add JetBrains Rider + Junie support #5

@JustAGhosT

Description

@JustAGhosT

Summary

Extend the existing IntelliJ plugin to explicitly support JetBrains Rider and add a Junie AI assistant integration.

The current extensions/pycharm plugin uses com.intellij.modules.platform so it technically runs on Rider, but it is not branded, tested, or listed for Rider in the marketplace. Junie (JetBrains' AI coding agent) has no integration at all.


Scope

1. Rider support (extensions/pycharm → extensions/intellij rename or new module)

  • Update plugin.xml to declare explicit compatibility with Rider:
    • Add <depends>com.intellij.modules.rider</depends> as an optional dependency or declare the plugin as platform-level
    • Update <idea-version since-build="233"/> to cover current Rider builds
    • Update plugin name/description to mention Rider
  • Rename extensions/pycharm/extensions/intellij/ (or keep as-is and add Rider to the supported products list)
  • Update .github/workflows/pycharm.yml → verify plugin against Rider build (add verifyPlugin with Rider IDE type)
  • Update root package.json scripts to reference the renamed extension if applicable

2. Junie integration

Junie exposes an extension point for AI context providers — plugins can register a JunieContextProvider that injects structured context into Junie's AI sessions.

Implement RetortJunieContextProvider:

  • Reads the active workspace's .agentkit/spec/teams.yaml, .claude/state/tasks/*.json, and AGENT_BACKLOG.md
  • Returns a formatted context block describing:
    • Active orchestration phase
    • Current tasks (in-progress)
    • Relevant teams for the open file (matched by scope globs)
  • Registered via com.intellij.junie.contextProvider extension point in plugin.xml

3. Junie slash command: /retort-ask

Register a Junie slash command that calls the state-watcher /api/ask endpoint:

  • Command: /retort-ask <query>
  • Hits http://localhost:<port>/api/ask?q=<query> (port from .retort-port or state-watcher discovery)
  • Formats top 3 RouteResult entries as markdown for the Junie chat

Implementation Notes

  • Junie SDK: com.intellij.junie plugin dependency (optional — degrade gracefully if Junie not installed)
  • State-watcher port discovery: read .retort-port file written by the IntelliJ plugin when it starts the daemon
  • Existing PyCharm functionality must not regress
  • Gradle module: add rider product type to verifyPlugin task in build.gradle.kts

Acceptance criteria

  • Plugin installs and activates in Rider without errors
  • All existing tool window actions work in Rider (sync, check, orchestrate, etc.)
  • RetortJunieContextProvider injects team context into Junie sessions when .agentkit is present
  • /retort-ask which team handles auth returns top results in Junie chat
  • ./gradlew verifyPlugin passes for both PyCharm and Rider build targets
  • CI workflow updated to verify against Rider

Related

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions