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]
| Flag | What it does |
|---|---|
--dts | print plugin.d.ts |
--json | print 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]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON as it is |
--test | run 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]
| Flag | What it does |
|---|---|
--disable | switch the plugin off |
--enable | switch the plugin on |
--json | print the daemon's JSON as it is |
--limit stringArray | set 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]
| Flag | What it does |
|---|---|
--off | switch development mode off |
gr plugin disable
Switch a plugin off; nothing of it is removed
gr plugin disable <name> [flags]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print what was imported, and the install, as JSON |
--out string | the 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]
| Flag | What it does |
|---|---|
--from-config | install missing sources named in config.toml |
--from-repo | install this root's .graphide/plugins.toml with its pinned hashes |
--json | print the daemon's JSON as it is |
gr plugin list
List plugins and their states (--root adds a repository's)
gr plugin list [flags]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON as it is |
gr plugin logs
A plugin's log lines
gr plugin logs <name> [flags]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON as it is |
--since string | only 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]
| Flag | What it does |
|---|---|
--adds string | what it starts with: command,panel,status,picker,badges,tool (default "command") |
--dir string | where to write it (default: your plugins folder) |
--json | print 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]
| Flag | What it does |
|---|---|
--confirm string | confirm this existing draft on your terminal |
--json | print 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]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON as it is |
--png string | also write a picture to this file, drawn by the app |
--size string | <width>x<height> of a picture, such as 400x600 |
--state string | a JSON file holding the world to draw on, laid over the folder's fixtures (- reads standard input) |
--text | the text form only (what is printed when no picture is asked for) |
--theme string | ink or marble |
--view string | the 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]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON as it is |
gr plugin rollback
Restore a plugin's previous approved version
gr plugin rollback <name> [flags]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON as it is |
gr plugin search
Find plugins on this machine by words in their name, description and what they add
gr plugin search [words] [flags]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON as it is |
--logs | include its log lines |
--since string | with --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]
| Flag | What it does |
|---|---|
--json | print 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]
| Flag | What it does |
|---|---|
--json | print the daemon's JSON |
gr plugin update
Fetch the newest store version or requested git revision; changes need approval
gr plugin update <name> [flags]
| Flag | What it does |
|---|---|
--json | print 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.