plugins

updated 21 October

Plugins that show what they may do.

Previews, panels, top-row text, menu commands, tree marks and hooks into coding agents. Each plugin runs in its own sandbox: it writes outside its own data folder, reaches the network and hooks into coding agents only where its manifest says, and you see that before you install it. What it can read is wider, as for any program you run: most of your files and the environments of your other programs.

nerd --plugin-add https://github.com/nerdterm/nerd-plugin-peek

That adds peek; in nerd, Plugins… in the menu lists the catalog and adds one with a click.

2 plugins · 1 author · open source only

the plugin’s sandbox

peek

Previews for files nerd would otherwise show as binary or raw.

v1.0.1nerdterm0

its own sandbox, built from its manifest

reads

your files, except the folders ~/.ssh, ~/.aws, ~/.gnupg, ~/.docker, ~/.kube, ~/.azure, ~/.config/gh, ~/.config/gcloud, the whole of ~/Library (keychains, cookies, browsers, mail) and nerd's state root (sessions, screens, logs, other plugins and their data); the files ~/.netrc, ~/.npmrc and ~/.pypirc; the shell histories ~/.zsh_history, ~/.zsh_sessions, ~/.bash_history, ~/.bash_sessions, ~/.sh_history, ~/.history, ~/.local/share/fish and ~/.local/share/atuin; and the histories of python, node, psql, mysql, sqlite3, irb and less: ~/.python_history, ~/.node_repl_history, ~/.psql_history, ~/.mysql_history, ~/.sqlite_history, ~/.irb_history and ~/.lesshst. Any other file in your home folder is readable, token files such as ~/.codex/auth.json and ~/.git-credentials included, except as the plugin guide goes on to say: “A denied file covers every name that begins with it (~/.zsh_history.new, where zsh writes the history before renaming it). A link inside a denied folder other than ~/Library and nerd's state root, at most four levels down and among its first 2000 entries, denies what it points to, and so does a denied file or folder that is a link, even to something not yet there, unless the target is your home folder or above it, or a device such as /dev/null (how MySQL turns its history off). These rules are fixed when nerd reads the plugin's manifest, so a link added later counts after Reload plugins and agents. A history kept anywhere else (another HISTFILE, ZDOTDIR or XDG_DATA_HOME) is readable.” Other programs’ command lines and environments are readable too.

writes

its own data folder, and nothing else

its doors, and what each lets through

nerdwhat it adds: previewsthrough nerd’s plugin socket, the only socket it may reach
your fileswalled off: it writes only its own data folder
the networkwalled off: no network and no name lookups
coding agentswalled off

Pick a plugin, then a door, to see what its manifest lets through.

Double wall: a sandbox. A line out through the wall: an open door. No line: walled off. The plugin guide

The catalog

all 2, with filters

How review works

the pipeline
  • Checked. every release passes the catalog’s own scripts: a valid manifest and its risk level, an open source licence, no binaries or encoded blobs, pinned lockfiles, OSV-Scanner, GuardDog, YARA and Gitleaks, then a trial run in nerd’s sandbox with no network
  • Reviewed. a plugin that writes files, reaches the network or hooks into an agent, or whose level rose, is also read by the catalog’s maintainer before it is listed
  • Each release. goes through the same checks again; a release that may do more than the one before asks you again before nerd updates it
  • Revoked. a release the catalog revokes is turned off in nerd, or you are warned, depending on how it was revoked

Add your plugin

the steps

Open source, on public GitHub, with a plugin.json and a release tag. Check it the way the catalog will:

nerd --plugin-check --catalog <folder>
nerd --plugin-trial <folder>

Then open a pull request that adds one file, plugins/<name>.json, to the catalog repository. The review runs and sets the mark.