# Plugins

[Docs](https://www.rightnowai.co/docs) / [RightNow Agent](https://www.rightnowai.co/docs/agent) / [Plugins](https://www.rightnowai.co/docs/plugins)

Updated 2026-10-11

> **Release status**
>
> 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

**Plugin components**

| Component | Conventional path |
| --- | --- |
| [Skills](https://www.rightnowai.co/docs/skills) | skills/ |
| [Slash commands](https://www.rightnowai.co/docs/slash-commands) | commands/ |
| [Agents](https://www.rightnowai.co/docs/subagents) | agents/ |
| [Hooks](https://www.rightnowai.co/docs/hooks) | hooks/hooks.json |
| [MCP servers](https://www.rightnowai.co/docs/mcp) | .mcp.json |
| [LSP servers](https://www.rightnowai.co/docs/plugins#plugin-manifest) | .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.

**JSON**

```json
{
  "name": "team-tools",
  "version": "1.0.0",
  "description": "Team workflows and integrations",
  "author": { "name": "Platform Team" },
  "skills": "skills",
  "commands": "commands",
  "agents": "agents",
  "hooks": "hooks/hooks.json",
  "mcpServers": ".mcp.json",
  "lspServers": ".lsp.json"
}
```

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.

**PowerShell**

```powershell
rightnow plugin marketplace list
```

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/installed-plugins/` and adds the plugins to `[plugins].enabled`; an explicit `disabled` entry still wins.
- Enabled plugins add skills, commands, and agents. With the shipped configuration, skills and commands from user plugins need `machine_wide = true` under `[skills]`.

**Plugin locations**

| Plugin location | Starts enabled | Hooks, MCP, and LSP |
| --- | --- | --- |
| --plugin-dir | Yes | Run |
| \[plugins\].paths | Yes | Run inside your home folder, or when trusted |
| ~/.rightnow/plugins/ and installed plugins (user) | No; an install with `--trust` enables | Run |
| .rightnow/plugins/ (project) | No | Run once enabled; 1.0.5 has no folder-trust check |

> **Warning: Plugins run with your privileges**
>
> 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

**PowerShell**

```powershell
rightnow plugin list --json
```

**rightnow plugin commands**

| 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

1. Create a Git repository or local folder with one directory per plugin.
2. Add `.claude-plugin/marketplace.json` with the marketplace name and a `plugins` array whose entries point to local folders or separate repositories. Pin a full `sha` on remote entries.
3. Add `.claude-plugin/plugin-index.json` only when the marketplace needs component summaries for browsing; installation does not depend on it.
4. Marketplace entries can include `tags` and `keywords` alongside version, author, and homepage metadata.
5. Validate each plugin from its root with `rightnow plugin validate .` before sharing the source.

**PowerShell**

```powershell
rightnow plugin validate .
```

Preview the version-derived Git tag without creating it:

**PowerShell**

```powershell
rightnow plugin tag . --dry-run
```

## Organization policy

- `managed_config.toml` distributes marketplace sources and enabled plugins.
- `managed-settings.json` can set `strictKnownMarketplaces` and `allowedMcpServers`; its policy cannot be overridden by user or project configuration.
- `[marketplace] require_sha = true` refuses unpinned remote installs and updates. `RIGHTNOW_MARKETPLACE_REQUIRE_SHA` can 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](https://www.rightnowai.co/docs/troubleshooting).

## Previous

[Skills](https://www.rightnowai.co/docs/skills)

## Next

[Migrate from Claude Code or Codex](https://www.rightnowai.co/docs/migration)
