How a plugin works
Think of a plugin as a labeled box of capabilities. It carries a manifest that names the bundle and declares what it contributes, plus the files that make up each contribution. When you enable the plugin, 100xprompt merges those capabilities into your workspace as if you had authored them yourself.One plugin can contribute many capability types at once. A single “Reviewer” plugin might add a
/review command, a code-review skill, a dedicated review agent, and a hook that runs your linter before every edit - from one install.What a plugin can add
Every capability below can ship inside the same bundle. A plugin author picks whichever ones fit. You get all of them when you enable it.| Capability | What it adds | How you use it |
|---|---|---|
| Commands | Reusable slash commands with prompts and arguments | Type /name in any session |
| Skills | On-demand instructions and playbooks 100xprompt loads when relevant | Applied automatically when the task matches |
| Agents | Purpose-built agents with their own instructions and tool access | Invoke or delegate to them by name |
| MCP connections | Connections to external tools and data sources | Their tools appear in the model’s toolset |
| Automation hooks | Commands that react to events in your workflow | Fire automatically as you work |
| Permission defaults | Sensible default allow/ask rules for the tools it ships | Applied under your own rules, which always win |
Plugin permission defaults are layered beneath your own configuration. Your rules always take precedence, so an installed plugin can never loosen a boundary you set.
Install a plugin
Suppose a teammate points you at a plugin that automates your review workflow. You install it from a marketplace name, a Git repository, or a local folder. The<source> can be a marketplace plugin name, github:owner/repo[/subdir][@ref], a Git URL, or a local path.
Add a marketplace (optional)
Marketplaces are catalogs of installable plugins. Add one, then browse what’s available.
Activate it
Restart 100xprompt (or reload your configuration) so the new capabilities load. Newly installed plugins are enabled by default.
Enable, disable, and remove
Turn a plugin off without losing it, turn it back on later, or remove it entirely. Every installed plugin moves through the same lifecycle.- Disable
- Enable
- Remove
Keep the plugin installed but stop its capabilities from loading.
Author a plugin manifest
The manifest is the one file that makes a folder installable. Name it100xprompt-plugin.json (or plugin.json) at the root of your bundle. It carries the plugin’s identity plus the contributions that aren’t discovered from folders on their own - MCP connections, hooks, and permission defaults.
Manifest fields
| Field | Required | Purpose |
|---|---|---|
name | Yes | Unique, lowercase kebab-case identifier - also the install folder name |
version | No | Version string shown when listing plugins |
description | No | One-line summary shown in listings and marketplaces |
author | No | Who maintains the plugin |
homepage | No | Link to docs or the source repository |
license | No | License identifier for the bundle |
mcp | No | MCP connections the plugin contributes |
hooks | No | Automation hooks the plugin registers |
permission | No | Default permission rules, layered beneath the user’s own |
What a plugin bundles
Alongside the manifest, a plugin ships its commands, skills, and agents as ordinary files in dedicated folders at the bundle root. 100xprompt picks these up when the plugin is enabled. You write them exactly as you would for your own workspace.The manifest declares only what can’t be inferred from folders (MCP, hooks, permissions). Commands, skills, and agents are discovered from their folders - so adding one is as simple as dropping in a file.
React to your workflow with hooks
Hooks let a plugin respond to events as you work - before a tool runs, after it finishes, when you submit a prompt, when a session starts, and more. Each hook points at a command that receives the event and can add context, adjust behavior, or block an action.Events a hook can react to
| Event | Fires when | A hook can |
|---|---|---|
SessionStart | A new session begins | Set up context or state |
UserPromptSubmit | You submit a prompt | Inject extra context before the model responds |
PreToolUse | Before a tool runs | Allow, adjust the input, or block the action |
PostToolUse | After a tool runs | Add follow-up notes to the result |
PermissionRequest | A permission is requested | Approve or deny it automatically |
Stop | The agent is about to finish its turn | Ask it to keep working |
matcher, so a lint check only runs before edits, or a formatter only runs after writes.
Best practices
Prefer marketplaces for discovery
Prefer marketplaces for discovery
Add a marketplace and use
100xprompt plugin marketplace browse to find vetted plugins with install counts and descriptions, rather than tracking down repositories by hand.Keep bundles focused
Keep bundles focused
A plugin that does one thing well - one workflow, its command, its agent, and its hook - is easier to trust, enable, and reason about than a grab-bag of unrelated capabilities.
Disable before you debug
Disable before you debug
If behavior changes unexpectedly, disable recently added plugins one at a time. Because disabling is instant and reversible, it’s the quickest way to isolate a cause.
Pin a version when it matters
Pin a version when it matters
Installing from a repository with an explicit ref (
@v1) gives you a stable, reproducible bundle across machines and teammates.Related
Marketplace
Browse and install curated plugins from catalogs you add.
Skills
Package reusable instructions and playbooks 100xprompt loads on demand.
Commands
Author slash commands with prompts, arguments, and tool access.