Plugins
Updated
RightNow Agent, the terminal coding agent, is paused. Its guides stay online as reference.
A plugin packages skills, commands, agents, hooks, MCP servers, and LSP servers in one installable directory. Installing with --trust enables new plugins for the next reload.
What a plugin can bundle
| Component | Conventional path |
|---|---|
| Skills | skills/ |
| Slash commands | commands/ |
| Agents | agents/ |
| Hooks | hooks/hooks.json |
| MCP servers | .mcp.json |
| LSP servers | .lsp.json |
An optional plugin.json can override paths or add metadata. Plugin installation copies bundled files; install required runtimes and dependencies separately.
Write a plugin manifest
A manifest requires a kebab-case name of 1 to 64 characters, using lowercase ASCII letters, digits, and hyphens with no leading or trailing hyphen. It may add version, description, author, homepage, repository, license, and keywords metadata. Skills, commands, and agents accept one path or a list of paths.
Template: save this as plugin.json at the plugin root and remove entries for components you do not ship.
Hooks, MCP servers, and LSP servers accept either one path or an inline JSON object. Relative component paths are resolved inside the plugin root; paths that escape it are rejected.
Marketplaces
A marketplace is a plugin catalog. Adding one installs nothing (a local path must exist); removing one uninstalls its plugins. Replace the example sources and plugin names on this page with ones you can access.
Sources: owner/repo, a Git URL, or a local folder; add --force skips the reachability check. config.toml can also list [[marketplace.sources]], each with a name and a git URL (optional branch) or path.
Install, enable, and trust
Installation syntax is rightnow plugin install SOURCE [--trust]. This is a template: replace SOURCE with a repository, Git URL, local path, or marketplace entry you have reviewed.
- Without
--trust, the command prints the source and a warning, then exits 1. - With
--trust, it installs into~/.rightnow/and adds the plugins toinstalled-plugins/ [plugins].enabled; an explicitdisabledentry still wins. - Enabled plugins add skills, commands, and agents. With the shipped configuration, skills and commands from user plugins need
machine_wide = trueunder[skills].
| Plugin location | Starts enabled | Hooks, MCP, and LSP |
|---|---|---|
| --plugin-dir | Yes | Run |
| [plugins]. | Yes | Run inside your home folder, or when trusted |
| ~/.rightnow/ | No; an install with --trust enables | Run |
| .rightnow/ | No | Run once enabled; 1.0.5 has no folder-trust check |
Only add marketplaces and install plugins from sources you trust. Plugins under the effective product home's plugins/ directory (normally ~/.rightnow/plugins/) are trusted automatically. Project plugins in .rightnow/plugins/ stay disabled until you enable them; 1.0.5 does not check folder trust before their hooks, MCP servers, or LSP servers run.
Plugin subcommand
| Action | Reference syntax |
|---|---|
| List | rightnow plugin list [--json] [--available] |
| Details | rightnow plugin details NAME |
| Enable or disable | rightnow plugin enable NAME / rightnow plugin disable NAME |
| Update | rightnow plugin update [NAME] |
| Uninstall | rightnow plugin uninstall NAME [--confirm] [--keep-data] |
| Validate | rightnow plugin validate [PATH] |
| Tag | rightnow plugin tag [PATH] [--push] [--dry-run] |
| Add a marketplace | rightnow plugin marketplace add SOURCE |
| Refresh marketplaces | rightnow plugin marketplace update [NAME] |
| Remove a marketplace | rightnow plugin marketplace remove SOURCE |
rightnow plugin uninstall also accepts the rm and remove aliases. --available requires --json. Use rightnow inspect for an inventory of discovered plugin components and their sources. Uppercase words are placeholders; square brackets mark optional arguments.
Publish a marketplace
- Create a Git repository or local folder with one directory per plugin.
- Add
.claude-plugin/with the marketplace name and amarketplace.json pluginsarray whose entries point to local folders or separate repositories. Pin a fullshaon remote entries. - Add
.claude-plugin/only when the marketplace needs component summaries for browsing; installation does not depend on it.plugin-index.json - Marketplace entries can include
tagsandkeywordsalongside version, author, and homepage metadata. - Validate each plugin from its root with
rightnow plugin validate .before sharing the source.
Preview the version-derived Git tag without creating it:
Organization policy
managed_config.tomldistributes marketplace sources and enabled plugins.managed-settings.jsoncan setstrictKnownMarketplacesandallowedMcpServers; its policy cannot be overridden by user or project configuration.[marketplace] require_sha = truerefuses unpinned remote installs and updates.RIGHTNOW_MARKETPLACE_REQUIRE_SHAcan also enable that restriction, and neither setting loosens it.
Discovery and hook context
ACP clients can pass _meta.pluginDirs for one session. A dedicated rightnow agent stdio process can repeat --plugin-dir; leader mode ignores that flag and discovers its own plugins.
Plugin hooks receive RIGHTNOW_PLUGIN_ROOT for installed files and RIGHTNOW_PLUGIN_DATA for writable state, caches, and logs. Plugin-provided values override same-named handler environment entries.
The /plugins interface
/plugins opens the Hooks, Plugins, Marketplace, Skills, and MCP Servers tabs. After an install, press r in the Plugins tab or start a new session. A skill then appears in the slash menu if its plugin is enabled and it is user-invocable; with the shipped configuration, skills from installed plugins also need [skills] machine_wide = true. Ambiguous names take the plugin prefix, such as /deploy-tools:release.
If a component does not load, inspect its installed source with rightnow plugin list --json, review its enablement and trust, then continue with troubleshooting.