grove
Documentation menu

Browser extension

The Grove extension for Chrome and Edge adds definitions and references to file pages on your code host, and agrove keyword to the address bar for jumping to repositories.

The extension's panel listing references of SetContext on a file pageThe extension's panel listing references of SetContext on a file page

Installing

The extension is served by your Grove instance rather than a web store, so it always matches your server.

Developer mode

  1. In Grove, open Set me up → Browser extension and download the extension (/extension/grove-extension.zip).
  2. Unzip it to a folder you’ll keep.
  3. Open chrome://extensions (or edge://extensions) and turn on Developer mode.
  4. Click Load unpacked and pick the unzipped folder.

Managed install with automatic updates

When PUBLIC_URL is set, Grove also serves a signed package and an update manifest (/extension/grove-extension.crx, /extension/updates.xml). Add the entry shown under Set me up → Browser extension to Chrome’s ExtensionInstallForcelist policy and Chrome installs the extension on managed machines and keeps it up to date from your instance.

The signing key lives at DATA_DIR/extension-key.pem. Back it up: installed extensions only accept updates signed with the same key.

Setting it up

Click the Grove icon in the toolbar:

The extension popup with server URL, API key, IDE and sync statusThe extension popup with server URL, API key, IDE and sync status
Field Value
Server URL your Grove instance, e.g. https://grove.example.com
API key a grove_… key; leave empty on a public instance. Create a key opens Grove’s API key page
Clone with the IDE the address-bar c command clones into

Click Save. The extension syncs the list of repositories from Grove and turns itself on for the code hosts they come from. It syncs again at most once an hour when you open Grove, or when you click Sync. Reload open code host tabs after a sync.

On file pages

On a GitHub, GitLab or Bitbucket file page of an indexed repository:

Action Result
Ctrl/⌘+click an identifier definition and references in this repository
Ctrl/⌘+Shift+click the same, across all repositories
select text, Alt/⌥+D definition and references
select text, Alt/⌥+R references in all repositories

The panel switches between Definition and References and between This repo and All repos. Move through matches with the arrow keys, open one with Enter and close the panel with Esc. Open in grove continues with the full search.

In the address bar

Type grove, then Tab or space, then part of a repository name. Enter opens the best match in Grove. Prefixes pick another destination:

Input Opens
api the repository in Grove
g api the repository on its code host
p api its pull or merge requests
i api its issues
c api clones it in your IDE (set in the popup)
vscode api, idea api, … clones it in a specific IDE: vscode, idea, webstorm, goland, pycharm, phpstorm, rider, clion, rubymine

Privacy

The extension only runs on the code hosts your Grove instance indexes, renders results in an isolated panel the page can’t read, and only talks to your Grove server.