Revue
DocumentationJetBrains IDEs

Editors: JetBrains IDEs, VS Code and Neovim

Open your branch's pull request in Revue straight from your editor, or start a new one, and see the repository's open pull requests in a sidebar. That's in JetBrains IDEs, VS Code (and the editors built on it) and Neovim, with Revue Companion; Zed is coming soon.

Each companion runs the revue command, so Revue must be installed. It works with every service Revue does (GitHub, Bitbucket, Forgejo), through the accounts you're signed in to in Revue.

What Revue: Open Pull Request does#

For the branch checked out in the repository of the file you're in:

  1. Revue starts, if it isn't running.
  2. If the branch has an open pull request, it opens in a tab.
  3. If not, the New pull request page opens in the Pull requests tab, with the title, description and ticket filled in from the branch. See Opening a pull request.

A branch that isn't pushed yet is pushed when you press Push and open pull request (git push -u, never forced). The default branch can't have a pull request: Revue says so.

It's the same as running revue --pull-request <folder> in a terminal: see Command line.

JetBrains IDEs#

IntelliJ IDEA, WebStorm, PyCharm, GoLand, Rider, CLion, RustRover and the other JetBrains IDEs, 2026.3 or later, with the Git plugin (bundled with every one of them).

Install#

  1. Settings → Plugins → Marketplace, search for Revue Companion, and install it (its Marketplace page). Its source is in revue-companion, with how to build it yourself.
  2. Restart the IDE if it asks.
  3. If revue isn't on your PATH, set its location in Settings → Tools → Revue Companion. Left empty, the plugin looks on the PATH, then in the usual install places (/Applications/Revue.app, %LOCALAPPDATA%\Programs\Revue, ~/.local/bin).

Use#

  • Open Pull Request / Create Pull Request: the button at the left of the Revue Companion tool window's toolbar, or Revue: Open Pull Request from Find Action (Ctrl+Shift+A, Cmd+Shift+A on macOS) or the Git menu. Its name says whether the branch has an open pull request (with its number) once the tool window has looked; until then it's Open or Create Pull Request. Give it a key in Settings → Keymap if you like.
  • The Revue Companion tool window (its icon on the side bar) lists the repository's open pull requests that are yours or await your review, in your theme's colours, under the sections Revue uses: This branch (the one of the branch you're on), To review, Mine and Others, each with how many it holds. Click a section's header to fold it. Each pull request shows its title, then its number, author (you for yours) and when it was last updated; drafts say Draft, and those awaiting your review say so.
    • Click a pull request, or press Enter, for its details: the whole title, its author, branches and when it was updated, with Open in Revue, Open in browser and Copy link. ‹ Pull requests or Esc goes back to the list. Its context menu also opens it in Revue or the browser, or copies its link.
    • The Filter button in its toolbar picks Yours and Review Requests, Yours, Awaiting Your Review or All Open, and has Include Drafts. The project remembers the choice, and the search field says which it searches.
    • The search field above the list searches them as the service does (a title, #12…).
    • More load as you scroll to the end of the list.
    • The list refreshes when you open the tool window, when you switch branches, and every few minutes while it's open, or with Refresh.
    • A project with several repositories has a repository chooser in the toolbar.
    • Revue answers the list, so it must be running: the tool window offers Start Revue when it isn't.
  • The other way round: when Revue's editor button opens a pull request while this IDE is running, it opens in this IDE, even if your default editor is another one (see Which editor opens). The plugin brings forward the window that has the pull request's branch checked out, or opens the folder in a new window, instead of another editor starting (see The open buttons).

The plugin was called Revue before; it's the same plugin, now named Revue Companion (dev.cleangame.revue.companion). Search the Marketplace for Revue Companion.

Which editor opens#

Open in editor (the editor button in a pull request's or repository's header, E, and Reveal in code editor on a diff line) first looks for editors running Revue Companion, then:

  1. None running: your default editor (Settings → Behavior) opens, as without the plugin.
  2. One running: that editor, even if it isn't your default editor.
  3. Several running, your default editor among them: your default editor. When it runs twice (two windows' worth of the same IDE, each its own process), the one with the pull request's branch, else the one you used last.
  4. Several running, none of them your default editor: always the same one, the first of:
    1. the one with a window that has the pull request's repository on its branch;
    2. the one with the repository open on any branch;
    3. the one you used last (it has the focused window);
    4. the first in Revue's list of IDEs (IntelliJ IDEA, PyCharm, RustRover, GoLand, WebStorm, CLion, PhpStorm, Rider…), then VS Code (and the editors built on it), Zed and Neovim, then the one that started first.

VS Code, Zed and Neovim companions tell Revue they're running through the revue command (see Telling Revue an editor runs), and are chosen the same way. Zed opens through its own zed command, in the window that has the branch. A Neovim in a terminal opens the file, and Revue brings its terminal forward where it can (macOS; Linux under X11 with xdotool); where it can't, it tells you to switch to it.

An editor picked from the menu beside the button opens as before, and the terminal, AI assistant and folder buttons don't look for Revue Companion. If the editor chosen was closed in the meantime, your default editor opens instead.

VS Code#

VS Code 1.95 or later, and the editors built on it (VSCodium, Cursor, Windsurf…), with the built-in Git extension.

Install#

  1. VSCodium, Cursor, Windsurf and other editors that use Open VSX: Extensions, search for Revue Companion, install.
  2. VS Code: until it's on the Visual Studio Marketplace, download revue-companion-<version>.vsix from the latest vscode-v… release, then Extensions → … → Install from VSIX….
  3. If revue isn't on your PATH, set revueCompanion.path in the settings. Left empty, the extension looks on the PATH, then in the usual install places.

Its source is in revue-companion.

Use#

  • Revue: Open or Create Pull Request: the Command Palette, the Source Control view's title, or the status bar item with the branch's pull request's number and state. See What Revue: Open Pull Request does.
  • The Pull Requests view (the Revue icon in the activity bar): the repository's open pull requests in Revue's sections, the branch's on a card above them, with a filter, search and more as you scroll. A pull request's page has Review in IDE, Open in Revue, Switch to Branch, Create Worktree, and tabs for how it stands, its files, the conversation, its Slack threads and its stack.
  • In a file the branch's pull request changes: its changes in the gutter, Revue: Show Pull Request Diff, Open File in Pull Request, Go to Pull Request File…, Add Pending Comment…, and your pending comments on their lines.
  • Review in IDE (or Revue: Review Pull Request): the files in VS Code's diff editor, conversations and drafts as comment threads on their lines (reply, resolve, react, @ mentions, suggested changes), the Revue Review view with Viewed and Submit Review, and Finish your review beside the diff.
  • Revue: Account and Revue: Sign in to Revue.
  • The other way round: Revue's Open in editor opens a pull request's file in the VS Code window that has its repository, or its folder in a new window (see Which editor opens).

Neovim#

Neovim 0.11 or later, with git.

Install#

With vim.pack (Neovim 0.12 or later):

vim.pack.add({
  { src = "https://forgejo.cleangame.dev/thatrichan/revue-companion.nvim", version = vim.version.range("*") },
})

Nothing to call or set, and don't lazy-load it: it loads itself when used. lazy.nvim, mini.deps and others install it from the same URL. If revue isn't on your PATH, set vim.g.revue_companion = { path = "…" }. :checkhealth revue_companion says what it found. Its source is in revue-companion, and :help revue-companion has the rest.

Use#

  • :Revue opens the branch's pull request in Revue (see What Revue: Open Pull Request does), :Revue browse in the browser, :Revue yank copies its link, and require("revue_companion").status() is a statusline component.
  • :Revue list and :Revue pick: the repository's pull requests in Revue's sections, and each one's page (its state, checks, files, conversation, Slack threads and stack), with keys to open it, switch to its branch or make a worktree.
  • In your files: the pull request's changes and your pending comments as signs, ]r / [r between changes, :Revue diff against its base, :Revue files, :Revue comments, and :Revue comment on the lines selected.
  • :Revue review: a review in a tab, the files as a tree and the two sides in diff mode, with the conversations under their lines (reply, resolve, react, mark viewed), and :Revue submit.
  • The other way round: Revue's Open in editor opens a pull request's file in the Neovim that has its repository, in a tab (see Which editor opens). Neovim isn't offered to Revue over SSH or in a container, where it couldn't reach your desktop's Revue.

Coming soon#

  • Zed: Revue Companion, with code actions to open or create your branch's pull request, open a file in it and add a pending comment, your pending comments as hints, and the pull request's files in project symbols. Until then, run revue --pull-request in Zed's terminal, in the repository.

What each needs from Revue#

Each companion asks Revue only what the installed Revue knows (revue --version says editor N), and leaves out the rest. Reactions and who to mention in a comment need Revue 0.44 (editor 8); Open in editor reaching VS Code and Neovim needs 0.44 (editor 9). Without a companion, revue --pull-request in your editor's terminal does the same as Revue: Open Pull Request (see Command line).

Troubleshooting#

What you seeWhy, and what to do
Sign in to github.com (Settings → Accounts) to see …'s pull requestsNone of the repository's remotes is on a service you're signed in to in Revue. Sign in, or check git remote -v.
… isn't on a branchThe repository is on a detached HEAD (a tag, a commit, a rebase in progress). Check out a branch.
… isn't on GitHub, and Revue doesn't find it checked out in a clone of … to push itThe branch is neither pushed nor checked out in that folder. Push it, or run the command from the clone it's checked out in.
The tool window says Revue isn't runningThe list comes from the running Revue (it has your sign-ins). Click Start Revue.
The running Revue is too old to list pull requestsUpdate Revue: the list needs Revue 0.31 or later.
The tool window says a folder starting with {"dir": isn't a git repositoryThe running Revue is older than the plugin, whose filters and pages need Revue 0.31.1 or later. Update Revue and restart it.
Advanced: which repository a clone's remotes point at
  • The list shows the pull requests of upstream's repository first if it has one (a fork's pull requests are usually there), then origin's, then the other remotes'. Only remotes on services you're signed in to count.
  • A pull request from your fork counts as your branch's when the fork is one of the clone's remotes.
  • A new pull request is opened where the branch is pushed (its git upstream), else in origin's repository.
  • Remotes through SSH host aliases (git@github-work:acme/web.git) are followed to their real host with ssh -G.
  • Forgejo remotes match the Forgejo servers you're signed in to by their host name.