Skip to main content
Plugins extend Nagare with new tools, new chat channels (like Telegram), or custom system prompts. Each plugin is an independent process launched by the gateway, communicating with the gateway via IPC:
  • Linux/macOS: Unix socket ~/.nagare/nagare-plugin.sock.
  • Windows: named pipe \\.\pipe\nagare-plugin.
You can write plugins in Go or Rust.

Project structure

metadata.json

Feature (permission)

Plugins can only use the functionality they declare in features:

Build a plugin package

In the plugin directory, run:
This command:
  1. Reads and validates metadata.json.
  2. Builds the executable: go build if go.mod exists, or cargo build --release if Cargo.toml exists. The directory must not contain both.
  3. Computes the SHA-256 checksum of the executable.
  4. Packages everything into <package_name>.nagare_plugin.
To sign the package, add --sign. See Plugin Signing.

Managing plugins

Go to Settings → Plugins: During installation, you may receive a warning if the package is unsigned or unverified. See Plugin Signing.

Runtime environment

The gateway verifies the executable checksum before every launch. If it does not match, the plugin is marked as failed and other plugins continue running normally. Plugins inherit the gateway’s environment variables, plus: SDKs read these variables automatically.

Chat messages

With the chat feature, plugins receive agent responses as JSON chunks. Each chunk has a type field: The built-in Telegram plugin is a complete example. See the source code at plugins/telegram.