plugins

You want a spore reachable where your team already talks, or able to search the web, drive a browser or read a spreadsheet. The runtime does not ship these; plugins add them. A plugin is an npm package named spore-plugin-<name>. One a spore uses must be allowed on the machine, spore plugin allow, and named in the plugins of its spore.cmk. Some plugins offer a service: a program spore runs for you as a systemd user unit, one instance per bot, defined with spore service define and started with spore service start. Plugins are defined under how a turn runs, services under talking to a spore. Every package below lives in the spore repository, and its README is its full documentation.

the runtime and the command

packagewhat it adds
@rhizogrip/sporethe runtime and the library
@rhizogrip/spore-clithe spore command and its terminal

services

Each puts your spores where people, or a program, talk to them, and runs on the machine the spores are on as a systemd user unit. Telegram and Discord are shown step by step on use. Console, Slack, Teams and Telegram give spores nothing, so they need no spore plugin allow: spore service offers each once it is installed. Discord's also gives a spore $SPORE_DISCORD, to read what was said in a channel before it was addressed, so it is allowed and named like the plugins below.

packagewhat it adds
@rhizogrip/spore-plugin-consoleyour spores behind a console a program talks to, over loopback HTTP, as a service
@rhizogrip/spore-plugin-discordpeople and spores in one Discord channel, as a service
@rhizogrip/spore-plugin-slackyour spores in Slack direct messages and channels, as a service
@rhizogrip/spore-plugin-teamsyour spores in Microsoft Teams personal chats and channels, as a service
@rhizogrip/spore-plugin-telegramyour spores in Telegram chats, as a service

what spores can use

Each is allowed with spore plugin allow and named in a spore's plugins. Some take a setting when allowed, such as the browser's debugging port or the sluice socket's directory; the README gives it.

packagewhat it adds
@rhizogrip/spore-plugin-braveweb search, its key held by the runner
@rhizogrip/spore-plugin-browsera browser for spores, over CDP
@rhizogrip/spore-plugin-cairna record spores share, append-only and hash-chained, as a service
@rhizogrip/spore-plugin-documentsxlsx, docx, pptx, odt and PDF, for the programs an agent writes
@rhizogrip/spore-plugin-imagessharp, for the programs an agent writes
@rhizogrip/spore-plugin-mcpMCP servers' tools, as a program the agent runs
@rhizogrip/spore-plugin-sluicehost commands for spores, as a sluice broker's rules allow them
@rhizogrip/spore-plugin-sshSSH keys spores can use and never read

The runner is the process on the host's side of a turn; brave's key is read from its environment and never reaches the agent. CDP is the Chrome DevTools Protocol, which reaches the agents' own Chrome. A cairn is a record several spores share that nobody changes, each entry hashed with the one before it, written by a daemon the plugin runs as a service; it has a page of its own. sharp is an image library, importable by the programs an agent writes. The MCP plugin is a client the agent runs as a program, inside its own sandbox, with each result written to a file. sluice is a broker on the host that runs the commands a spore's rules allow — a service's status, a restart, its journal — and refuses everything else; it is not one of the runner's brokers, defined under how a turn runs. Writing a plugin of your own is covered in the repository's docs/plugins.md.