Skip to content
Docsgr plugin

Command line

gr plugin

Write, check, install and manage Graphide plugins

From the help of gr 0.2.16. gr help plugin prints it in full.

Plugins add commands, keys, panels, status segments, pickers and map badges to the app, written in TypeScript against one interface.

gr plugin [command]

gr plugin api

Print the plugin interface: the page, the declaration file, the schema or one topic

Topics: elements, events, methods, capabilities, commands, limits, errors, actions, reserved, types, test, context. With no topic, the page an agent reads (api.md); --dts prints plugin.d.ts, --json api.json.

gr plugin api [topic] [flags]
FlagWhat it does
--dtsprint plugin.d.ts
--jsonprint api.json

gr plugin approve

Read what a plugin adds and may do, and approve it (on a terminal only)

Prints the review of a plugin: what it adds, each capability it asks for in words, what they mean together, its files, and its panels as text. Then asks, on your terminal, which capabilities to grant and whether to approve the version shown. Nothing of a plugin runs before this.

gr plugin approve <name> | builtin [flags]

gr plugin check

Check a plugin folder: its files, its manifest and its script (--test runs its tests)

gr plugin check [dir] [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is
--testrun the plugin's own tests too

gr plugin config

Read a plugin's settings, or change them (key=null puts a default back)

With no key=value, prints the plugin's settings and their schema. A value is read as JSON when it is JSON (true, 3, "text", null) and as text otherwise; null puts the setting back to its default. A value the setting's kind does not take is refused and said, and nothing else is held back by it.

gr plugin config <name> [key=value ...] [flags]
FlagWhat it does
--disableswitch the plugin off
--enableswitch the plugin on
--jsonprint the daemon's JSON as it is
--limit stringArrayset one of your limits for it, key=value (handler_ms=800; null gives it back); on a terminal only

gr plugin dev

Let a plugin's folder load as it stands and again on every save (on a terminal only)

Development mode loads a plugin from its folder as it stands, and loads it again each time a file in it is saved, so the plugin can be changed and tried without an approval for every change.

gr plugin dev [dir or name] [flags]
FlagWhat it does
--offswitch development mode off

gr plugin disable

Switch a plugin off; nothing of it is removed

gr plugin disable <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin enable

Switch a plugin on (an approved one runs as it was approved)

gr plugin enable <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin hash

Print a plugin folder's content hash, offline

gr plugin hash <dir> [flags]

gr plugin import

Make a plugin of a VS Code or Zed extension's themes, icons, languages and snippets, and install it

Make a data plugin of a VS Code or Zed extension, write it to your plugins folder, and install it; it awaits approval like any plugin.

gr plugin import <source> [flags]
FlagWhat it does
--jsonprint what was imported, and the install, as JSON
--out stringthe folder to write the plugin to (default: your plugins folder's <name>)

gr plugin install

Install a store name, folder or git source, --from-config, or --from-repo; each needs approval

Install a store name (store:<name> or store:<name>@<version>), a folder, a repository or folder link on GitHub, GitLab, Codeberg or Bitbucket, or any HTTPS git URL. A bare name falls to the store when no folder matches. A person approves each install.

gr plugin install [source] [--from-config | --from-repo] [flags]
FlagWhat it does
--from-configinstall missing sources named in config.toml
--from-repoinstall this root's .graphide/plugins.toml with its pinned hashes
--jsonprint the daemon's JSON as it is

gr plugin list

List plugins and their states (--root adds a repository's)

gr plugin list [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin logs

A plugin's log lines

gr plugin logs <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is
--since stringonly lines after this time, such as 2026-10-08T12:00:00Z

gr plugin new

Start a plugin: a manifest, a script, its declaration file, a test and a fixture

gr plugin new <name> [flags]
FlagWhat it does
--adds stringwhat it starts with: command,panel,status,picker,badges,tool (default "command")
--dir stringwhere to write it (default: your plugins folder)
--jsonprint the daemon's JSON as it is

gr plugin publish

Prepare a plugin store draft and ask the person to confirm on their terminal

gr plugin publish [folder|link] [--confirm <name>@<version>] [flags]
FlagWhat it does
--confirm stringconfirm this existing draft on your terminal
--jsonprint the daemon's JSON

gr plugin reload

Load a plugin afresh over its state, and give one that was switched off for failing another go

gr plugin reload <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin remove

Remove a plugin (a folder in your plugins folder is moved aside, not deleted)

gr plugin remove <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin render

Draw one view of a plugin folder on fixtures and print it as text

Draws a view of a plugin folder (installed or not) in a confined host, on fixtures, and prints it as text: the same text a plugin's tests read with v.text(), the plugin_render tool returns and the review page shows.

gr plugin render [dir] --view <id> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is
--png stringalso write a picture to this file, drawn by the app
--size string<width>x<height> of a picture, such as 400x600
--state stringa JSON file holding the world to draw on, laid over the folder's fixtures (- reads standard input)
--textthe text form only (what is printed when no picture is asked for)
--theme stringink or marble
--view stringthe view to draw: a panel's id, such as todos.list

gr plugin review

Print what a person is shown before approving a plugin; approves nothing

gr plugin review <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin rollback

Restore a plugin's previous approved version

gr plugin rollback <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

Find plugins on this machine by words in their name, description and what they add

gr plugin search [words] [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin secret

Enter or clear a plugin's secret: a token it sends only to its host (a terminal only)

A plugin's secret setting is a token it needs and never reads: you enter it here, the daemon keeps it in your OS keychain (never config.toml), and puts it in a header of each request the plugin sends to the one host the setting names, or gives it to the plugin's MCP server. The plugin sees only whether it is set.

gr plugin secret [command]

gr plugin secret clear

Forget a plugin's secret

gr plugin secret clear <name> <key> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin secret set

Enter a plugin's secret on this terminal, with nothing shown as you type

gr plugin secret set <name> <key> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin status

How a plugin runs: its host, its handlers' times, its last errors (no name: every plugin's state)

gr plugin status [name] [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is
--logsinclude its log lines
--since stringwith --logs: only lines after this time, such as 2026-10-08T12:00:00Z

gr plugin test

Check a plugin folder and run its own tests (*.test.ts) on fixtures, with fake time and no network

gr plugin test [dir] [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

gr plugin unpublish

Drop your draft or withdraw a version (a person's terminal for a confirmed version)

gr plugin unpublish <name>@<version> [flags]
FlagWhat it does
--jsonprint the daemon's JSON

gr plugin update

Fetch the newest store version or requested git revision; changes need approval

gr plugin update <name> [flags]
FlagWhat it does
--jsonprint the daemon's JSON as it is

Every command also takes --root <folder>, the project to act on. Without it, gr uses the git repository you are in, or else the current folder.

These docs describe Graphide 0.2.16, the latest release. Something wrong or missing? Tell us onDiscord or at hello@graphide.com.