plugins
updated 21 OctoberPlugins 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.
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
through nerd’s plugin socket, the only socket it may reachPick 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 filtersHow 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 stepsOpen 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.