Skip to main content
Extensions add remote tools to Pup’s assistant. You run the extension server; Pup controls who can use it and what information it receives. In this version, only the Discord server owner can register and install their own extensions. See Build an extension for the manifest, signing, tool results and compatibility checks.

Connect your extension

Open Extensions in your server’s dashboard and enter the HTTPS URL of the extension’s manifest. Save the signing secret on your extension server, then choose Test connection. Pup verifies that the server accepts signed requests before you can install it. The signing secret is shown once. Keep it out of source control and ordinary extension settings. If you replace it, update your extension server within ten minutes, while the previous secret still works.

Choose settings and permissions

After installing, fill in the extension’s settings and choose an audience for each tool: only you, selected roles and members, or everyone with extension access. Members also need Use extensions in Staff access. Create a custom permission set with that permission and grant it to the same members or roles. Your owner access remains available without a role assignment. Every tool call sends its inputs, the asker’s Discord ID, the current channel and the extension settings. A tool that requests the original message also receives the member’s triggering message and its channel, separately from the assistant’s interpretation. It does not receive the whole conversation. If the extension uses member events, it also receives member IDs when members join or leave, and you choose the channel where its results may appear. The settings screen also shows whether each command’s / results are public or visible only to the asker. Commands also work with your server’s prefix, such as ^snacks; those reply in the channel, like Pup’s own prefix commands. Save these choices, then Enable extension. Saving settings alone does not enable an extension. Never enter passwords, tokens or API keys in its settings.

Pause, disable or uninstall

Pausing or disabling stops the extension from running. Pup also pauses an extension after repeated delivery failures; check its server before enabling it again. Uninstalling removes its commands, saved settings, approvals and delivery history from Pup. It does not delete information already sent to the extension’s server. Reinstalling requires setup again.

Using tools

Ask Pup normally. Pup chooses available tools and writes its reply in the conversation. Some tasks ask a follow-up question; only the person who started the request can answer, by replying or with their next message. Long tasks post updates when progress changes and return a reply when they finish. Some tools open a thread for the request; you can keep talking to Pup there without mentioning it again. The thread has the same visibility as its channel. Pup asks before a write based on outside content, and always asks for tools marked as irreversible. Approval is limited to the displayed action and inputs. Only the asker can respond. Details opens a private view of the full planned inputs and available source excerpts; long details arrive as a text file. Opening Details does not approve anything; the original approval keeps its deadline. Commands and buttons run without an approval card: running them is the member’s own choice, and the permissions you set decide who can. Extensions cannot moderate members, change Discord roles or channels, send DMs, or post outside their invocation or assigned channels. These limits also apply to self-hosted Pup.

Your approval preferences

Open Your approvals from the server picker or Extensions page to see tools for which you chose Auto-review. Pup checks that the planned actions match your request and scans the outside content for injected instructions, and asks you if either flags or can’t finish. Irreversible tools and writes after hosted web search still require your approval. Choose Ask next time to turn off Auto review for a tool. This takes effect immediately and is recorded in the audit history; it cannot undo actions already started. You can withdraw your own choices even after losing access to a server. Other people’s choices are never shown here. Turning Auto review off does not add approval prompts to actions that do not otherwise need approval.

Operator controls

Installation operators can open Extension operations from the server picker. This requires Pup’s operator role; owning a Discord server does not grant it. The page lists installations, recent event delivery status, attempts and timing, and global blocks. It does not expose signing secrets, tool inputs or message content. A Manifest URL block matches that exact manifest address. An Endpoint URL block matches that exact address when Pup checks it. A Domain and subdomains block covers the hostname and its subdomains, across paths and ports. URLs are canonicalized; domains use lowercase ASCII hostnames without wildcards. Blocks apply across every server and override enabled installation state. They stop newly checked requests, but cannot undo work already dispatched. Removing a block lets enabled installations run again unless another block applies. Adding and removing blocks retains an identifier-only operator history, including after removal. Keep incident details in your private operational records.