Skip to content

Packages, skills and plugins ​

This page explains the four kinds of add-ons pi-webapp can show, where to manage each, and how to turn the built-in tools on and off.

Which is which ​

These terms are easy to mix up because they sit near each other in the interface.

TermWhat it isWhere you manage it
Pi packageA bundle you install from npm, Git or a local folder. It can contain extensions and skills.Pi Settings → Packages
Pi extensionCode that adds capabilities to Pi itself, such as new commands and tools. It can come from a package or be loaded on its own from a path.Pi Settings → Packages
SkillA folder or SKILL.md file of task guidance that Pi can load on demand.Pi Settings → Skills
PluginA pi-webapp feature with its own screen: the built-in Files, Terminal and Git tools, and optional ones such as Excalidraw.Plugins in the sidebar

Installing a package is not the same as switching a plugin on or off, and the two live in different places on purpose.

Packages and extensions ​

Open Pi Settings → Packages. The page lists:

  • Installed packages, with the extensions each one includes.
  • Standalone extensions that aren't part of a package, each marked Enabled or Disabled and Project or Global.
  • Add package, where you enter a source.
  • Extension paths, for loading a single extension file or folder.

Add a package ​

Enter one of these in the Add package box and click Add:

SourceExample
npm packagenpm:@scope/package-name
Git repositorygit:github.com/user/repo or https://github.com/user/repo
SSHssh://git@github.com/user/repo or git@github.com:user/repo
Local folder/path/to/package

Pi reloads its resources afterwards. The entry is saved to Pi's global settings (~/.pi/agent/settings.json), so the terminal Pi sees it too. To remove one, use its remove action in the list.

If you type a package source (anything starting with npm:, git:, http(s)://, ssh:// or git@) into the extension or skill box, the dialog stops you and offers Go to packages, because those boxes accept file paths only.

Load an extension from a path ​

Under Extension paths, enter the path to an extension file or folder and click Add. A package source here is rejected and flagged Not loaded: use Add package instead.

Skills ​

Pi Settings → Skills lists the skills Pi has discovered and loaded, with their paths. To add one that isn't discovered automatically, enter the path of a SKILL.md file or the folder that contains it under Configure skills manually.

Skills also appear as skill:<name> entries in the conversation's command menu.

Plugins ​

Click Plugins in the sidebar, under New session. The page has two groups, and a refresh button reads the latest state of both.

The Plugins page

Built-in capabilities ​

Workspace files, Terminal and Git are on by default. Each has a switch.

  • The switch is global: it applies to every workspace and chat on this service, and it persists across restarts.
  • Switching needs every chat to be idle. The page says so; try again once they have finished.
  • Turning a tool off closes its open tabs and blocks its requests. Turning off Terminal also ends every terminal on the service: a Disable Terminal? dialog warns that unsaved shell work may be lost, and you confirm with Disable and stop terminals.
  • The switch shows what the service confirmed, not what you clicked.

Official plugins ​

Optional plugins that you download on demand. At the moment this is Excalidraw (Official). Press Download first, then enable it; the switch is unavailable until the plugin is installed. Click a row for its description, version, Check updates and Uninstall. The full flow is in Diagrams with Excalidraw.

Installed plugins can update on their own without replacing the page or interrupting your chats. An open editor delays the version switch, and a failed download is not retried automatically and never discards the version you have.

When do changes take effect? ​

  • Adding, removing or editing packages, extensions and skills: Pi resources reload right away, and the dialog reports problems.
  • A package that changes its own code after you've loaded it, or a plugin you're developing: the page does not replace backend code. Restart the service (pi-webapp stop, then start it), or in a terminal session run /reload and /web.

Plugin authors can find the development setup on the Developers page.

These pages describe the source in this repository. Check Pi Settings → General for the version you are running.