Files
cline/docs/customization/plugins.mdx
T
0b0ca9b1fa docs: add SDK documentation (#10350)
* docs: add comprehensive SDK documentation as top-level tab

Adds 27 new documentation pages for the Cline SDK (@clinebot/core,
@clinebot/agents, @clinebot/llms, @clinebot/shared) organized into
a dedicated "SDK" tab in the Mintlify docs navigation.

Structure:
- Getting Started: overview, quickstart, examples
- Core Concepts: agents, sessions, tools, streaming/events, extensions,
  hooks, providers/models
- Guides: building an agent, custom tools, writing extensions, permission
  handling, scheduled agents, multi-agent teams, connectors, production
- Architecture: layered stack overview, hub-spoke RPC, package reference
- API Reference: ClineCore, Agent, Gateway, Tools API, Events, Types
- CLI: commands, configuration, connector setup

Removes the old single-page SDK overview (cline-sdk/overview.md) that
documented the previous ACP-based ClineAgent API, and removes its
reference from the Cline CLI navigation group.

* docs: fix SDK docs review feedback

- Change "desktop app" to "JetBrains plugin" in overview (not released yet)
- Rename "Providers & Models" to "Model Providers"
- Rename "Streaming & Events" to "Streaming Events"
- Remove duplicate cli/connectors.mdx (guides/connectors.mdx covers everything)

* docs: add wizard commands, Discord connector, and platform credential details

* feat(docs): create CLI tab with new feature pages and updated reference

- Add CLI as its own top-level tab in docs navigation
- Remove CLI group from Docs tab and SDK tab
- Delete SDK CLI pages (content moved to CLI tab)
- Add new feature pages: connectors, scheduling, MCP servers, agent teams
- Rewrite cli-reference.mdx with all new commands (connect, mcp, schedule,
  rpc, checkpoint, doctor) and new flags (reasoning-effort, thinking,
  sandbox, teams, spawn, tool-enable/disable, autoapprove)
- Update configuration.mdx with new directory structure, env vars
  (CLINE_DATA_DIR, CLINE_RPC_ADDRESS, CLINE_SESSION_BACKEND_MODE,
  CLINE_SANDBOX), and MCP wizard reference

* docs: rename Docs tab to Extension and reorder tabs

Tab order: Extension, CLI, SDK, Kanban, Enterprise, API, Learn

* docs: simplify SDK install to single @clinebot/core package

@clinebot/core re-exports from agents, llms, and shared, so users
only need one install and one import source. Updated all getting-started,
quickstart, examples, and guide pages to import from @clinebot/core.
Concept and reference pages keep individual package imports since they
document those specific packages.

* docs: use @clinebot/sdk as the primary install and import path

@clinebot/sdk is an alias for @clinebot/core that re-exports from all
packages. All user-facing pages (overview, quickstart, examples, guides)
now show npm install @clinebot/sdk and import from @clinebot/sdk.
Architecture and reference pages keep individual package names since
they document the internal package structure.

* docs: rename Extension tab to Cline

* docs: fix packages page and merge duplicate imports

* fix: use getting-started page in CLI tab nav and remove conflicting redirect

* docs: rename CLI Getting Started page title to Overview

* docs: rename cline-cli/ to cli/ and cline-sdk/ to sdk/

Shorter, cleaner URL paths. Updated all internal links across every
doc page and added 44 redirects for old paths so existing URLs
don't break.

* docs: update hub-spoke architecture from gRPC/RPC to WebSockets

- Rewrite hub-spoke.mdx: WebSocket protocol, capability brokerage,
  spoke workers, session participants, hub daemon discovery
- Replace all RPC/gRPC/sidecar references with hub/WebSocket across
  all SDK and CLI docs
- Backend modes: local/hub/remote/auto (was local/rpc/auto)
- Hub command replaces rpc command (cline hub start/stop/status/ensure)
- Default port 25463 (was 4317), log file hub-daemon.log
- Remove @clinebot/rpc and @clinebot/scheduler from architecture docs
  (functionality absorbed into @clinebot/core)
- Update ClineCore reference to remove rpc options
- Add capability brokerage and session participant concepts

* docs: add Ecosystem page to SDK tab

* docs: move Ecosystem page after Guides and fix opening sentence

* docs: rename extensions to plugins across all SDK and CLI docs

- Rename AgentExtension to AgentPlugin in all code examples
- Rename ExtensionAPI to PluginAPI
- Rename extensions.mdx to plugins.mdx, writing-extensions.mdx to writing-plugins.mdx
- Rename all variable names (databaseExtension -> databasePlugin, etc.)
- Rename config field from extensions to plugins
- Update all prose, section headers, and cross-links
- Add redirects for old paths

* clean up attempt 1

* remove deprecated features

* part 1 of large provider changes

* a large pass on workflows

* cli ref updates

* config rewrite

* more concise instsallation and model selection

* provider reorg cont

* update providers

* one step further cleaning up

* kanban finishing clean up

* wip...

* another big cleanup - remove the CLI tabgroup

* sdk tighten up pt1

* more sdk doc tightening

* making more progress

* doc update based on bee latest branch

* nit update on codepaths

* remove learn section

* docs: add plugin install command documentation

Document the new clite plugin install command across CLI reference,
customization plugins page, SDK plugins concept page, and the writing
plugins guide. Cover all three source types (npm, git, local), the
package.json manifest format with cline.plugins field, host-provided
dependency handling, auto-detection logic, and the install directory
structure.

Reference cline/typescript-lsp-plugin as a concrete install example.

* docs: deduplicate plugin install docs

Trim redundant plugin install content from CLI reference, SDK plugins
concept page, and writing-plugins guide. Each now links to the
customization/plugins page as the single source of truth for manifest
format, install commands, and directory layout.

* further simplify the doc

* further clean up

* mark warnings

* docs: rename @clinebot to @cline and clite to cline

SDK packages moved to the @cline npm org. Update all docs references
to use @cline/sdk, @cline/agents, @cline/core, @cline/shared, @cline/llms
and the cline CLI binary name.

* docs: streamline SDK docs with example references (#10617)

* docs: streamline SDK docs with example references and @cline/sdk imports

Replace large standalone code blobs in SDK docs with references to
working examples in the SDK repository. Users can now clone and run
real code instead of copy-pasting from docs.

- Update all imports from @cline/agents, @cline/core, @cline/shared
  to @cline/sdk (the public-facing package)
- Fix model IDs from claude-sonnet-4-6 to claude-sonnet-4-20250514
- Quickstart: trim duplicate code patterns, add cards linking to
  cli-agent, code-review-bot, multi-agent, desktop-app examples
- Overview: add examples table with difficulty progression, update
  install instructions to use @cline/sdk
- Building an Agent: rewrite as a walkthrough of the code-review-bot
  example rather than inline code blobs across 4 separate files
- Creating Custom Tools: rewrite to use createTool with zod, add
  completion tools section, reference working examples
- Tools: show createTool with zod as primary pattern
- Events: reference multi-agent example for streaming UI pattern
- Architecture: update install to @cline/sdk

* fix: use claude-sonnet-4-6 model ID across all SDK docs

* remove connector page from sdk

* small reordering

* clean up sdk app and plugin examples

---------

Co-authored-by: Renee Huang <renee@cline.bot>

* remove features/connectors

* doc revisions

* fix references after folder change

* docs: fix SDK review feedback after rebase

* docs: address Greptile SDK review feedback

* docs: move TUI page under CLI nav

* docs: restore TUI page placement

---------

Co-authored-by: Renee Huang <renee@cline.bot>
Co-authored-by: John Simone <john@cline.bot>
Co-authored-by: Arafatkatze <arafat.da.khan@gmail.com>
2026-05-12 16:55:33 -07:00

139 lines
4.7 KiB
Plaintext

---
title: "Plugins"
sidebarTitle: "Plugins"
description: "Install and manage plugins that extend Cline with custom tools, hooks, and capabilities."
---
<Warning>
This feature currently only applies to Cline SDK, CLI, and Kanban. This feature is not applicable on VSCode and JetBrains Extension for now.
</Warning>
Plugins extend Cline with custom tools, lifecycle hooks, slash commands, and more. They can be installed globally (available in all sessions) or per-project.
## Installing Plugins via CLI
The `cline plugin install` command installs plugins from three source types:
<Tabs>
<Tab title="Git Repository">
```bash
cline plugin install https://github.com/owner/repo.git
cline plugin install git@github.com:owner/repo.git
```
The installer clones the repository, installs production dependencies, and registers the plugin entry files.
To install a specific branch or tag, append `@ref`:
```bash
cline plugin install https://github.com/owner/repo.git@v1.2.0
cline plugin install https://github.com/owner/repo.git@main
```
</Tab>
<Tab title="npm Package">
```bash
cline plugin install npm:@scope/my-plugin
cline plugin install --npm my-plugin
```
</Tab>
<Tab title="Local Path">
```bash
cline plugin install ./my-plugin
cline plugin install ~/plugins/my-tool
cline plugin install /absolute/path/to/plugin.ts
```
Local installs copy the file or directory into the plugin store. Both single `.ts`/`.js` files and directories with a `package.json` are supported.
</Tab>
</Tabs>
Additional flags:
| Flag | Description |
|------|-------------|
| `--force` | Replace an existing install for the same source |
| `--json` | Output the result as JSON (useful for scripting) |
| `--cwd <path>` | Install to `<path>/.cline/plugins` instead of the global directory |
After installation, confirm the plugin is loaded by running `cline config` and checking the plugin tab.
### Example: TypeScript Navigation Plugin
The [typescript-lsp-plugin](https://github.com/cline/typescript-lsp-plugin) is a good reference for how plugins work. It adds a `goto_definition` tool that uses the TypeScript Language Service API to resolve symbol definitions through imports, re-exports, and type aliases.
Install it with:
```bash
cline plugin install https://github.com/cline/typescript-lsp-plugin.git
```
Once installed, Cline can call `goto_definition` with a file path and line number to find where symbols are defined, which is much more precise than text search.
## Plugin Manifest Format
For a repository or npm package to be installable as a Cline plugin, its `package.json` should include a `cline` field that declares plugin entry points:
```json
{
"name": "my-cline-plugin",
"version": "1.0.0",
"cline": {
"plugins": [
{
"paths": ["./index.ts"],
"capabilities": ["tools", "hooks"]
}
]
}
}
```
The `cline.plugins` array accepts:
| Format | Example |
|--------|---------|
| Object with `paths` array | `{ "paths": ["./src/plugin.ts"], "capabilities": ["tools"] }` |
| Plain string | `"./index.ts"` |
Each path should point to a `.ts` or `.js` file that exports an `AgentPlugin` (either as the default export or a named export).
If no `cline.plugins` field is present, the installer falls back to auto-discovery: it looks for standard entry points, then recursively scans for `.ts` and `.js` files (skipping `node_modules` and `.git`).
### Host-Provided Dependencies
Dependencies under the `@cline/` scope (like `@cline/core`, `@cline/shared`) are provided by the host runtime. The installer automatically strips these from the plugin's dependency list before running `npm install`, so you should declare them as `peerDependencies`:
```json
{
"peerDependencies": {
"@cline/core": "*"
},
"peerDependenciesMeta": {
"@cline/core": {
"optional": true
}
}
}
```
## Plugin Directory Structure
Plugins are stored in the `plugins` directory at two levels:
```
~/.cline/
plugins/ # Global plugins
_installed/ # Managed by `cline plugin install`
npm/ # npm-sourced plugins
git/ # git-sourced plugins
local/ # local-sourced plugins
.cline/ # Project root
plugins/ # Project-scoped plugins
```
Global plugins (`~/.cline/plugins/`) are available across all sessions. Project plugins (`.cline/plugins/` in your repo) are available only when working in that project.
## Writing Plugins
For a guide on building plugins with the SDK, see [Writing Plugins](/sdk/guides/writing-plugins). For the plugin API reference, see [SDK Plugins](/sdk/plugins).