Skip to content
Proposals/Install Agent Plugins under ~/.agents/plugins an
proposalteamP5Worth a lookCline

Install Agent Plugins under ~/.agents/plugins and set agentPluginPaths for extra roots

Cline SDK v0.0.83 discovers Agent Plugins only from ~/.agents/plugins/* on the hub host via root plugin.json. Workspace .agents/plugins is not scanned. Skills are plugin-name:skill-name, MCP starts from mcp.json, extra roots need agentPluginPaths, and enablement lives in hub settings.

Why this loop

SDK v0.0.83 moves plugin discovery and enablement onto the hub. Packages under ~/.agents/plugins/* are validated from plugin.json; skills/ entries are exposed through the skills tool as plugin-name:skill-name; stdio, Streamable HTTP, and legacy SSE servers in mcp.json start without writing cline_mcp_settings.json. Workspace .agents/plugins is ignored so cloning a repo cannot implicitly start repo-controlled MCP servers—extra roots must be passed as agentPluginPaths. Enablement is keyed by manifest name in hub settings and publishes settings.changed, so drop client-side loaders and enablement stores. Do not disable skills by editing SKILL.md: settings.toggle({type: "skills"}) previously wrote a disabled key into frontmatter that the strict parser rejected, making the skill vanish. InMemoryMcpManager.dispose() now continues disconnecting remaining servers instead of aborting on the first rejection. Install plugins only on the hub host, enable them centrally, and treat repo-local plugin dirs as inert.

Proposed actions

  1. On the hub host, install each Agent Plugin as ~/.agents/plugins/<plugin-name>/ with a root plugin.json, skills under skills/, and MCP servers in mcp.json (stdio, Streamable HTTP, or legacy SSE). Do not add those servers to cline_mcp_settings.json.
  2. Delete or ignore any workspace .agents/plugins directory—Cline SDK v0.0.83 will not scan it. For plugin packages outside ~/.agents/plugins, pass those directories explicitly as agentPluginPaths.
  3. Enable and disable plugins only in hub settings keyed by the plugin's manifest name. Never write a disabled key into a skill's SKILL.md frontmatter to toggle it.
  4. Instruct the agent to invoke hub-managed skills via the skills tool as <plugin-name>:<skill-name>, matching the folder under ~/.agents/plugins and the skill under skills/.
  5. Tell the agent that apply_patch Add File is rejected if the path already exists; use UPDATE or DELETE for existing files so the patch cannot silently overwrite contents.

Agent prompt

Paste into your agent or query via MCP (get_agent_prompt) — free, no extra AI cost

Cline / .clinerules task

DevAgentRadar → Cline

You are helping me adopt a real coding-assistant change. Work only from the facts below. Do not invent features.

Context

Assistant: Cline Proposal: Install Agent Plugins under ~/.agents/plugins and set agentPluginPaths for extra roots Summary: Cline SDK v0.0.83 discovers Agent Plugins only from ~/.agents/plugins/* on the hub host via root plugin.json. Workspace .agents/plugins is not scanned. Skills are plugin-name:skill-name, MCP starts from mcp.json, extra roots need agentPluginPaths, and enablement lives in hub settings. Primary source: https://github.com/cline/cline/releases/tag/sdk/sdk/v0.0.83

Why it matters

SDK v0.0.83 moves plugin discovery and enablement onto the hub. Packages under ~/.agents/plugins/* are validated from plugin.json; skills/ entries are exposed through the skills tool as plugin-name:skill-name; stdio, Streamable HTTP, and legacy SSE servers in mcp.json start without writing cline_mcp_settings.json. Workspace .agents/plugins is ignored so cloning a repo cannot implicitly start repo-controlled MCP servers—extra roots must be passed as agentPluginPaths. Enablement is keyed by manifest name in hub settings and publishes settings.changed, so drop client-side loaders and enablement stores. Do not disable skills by editing SKILL.md: settings.toggle({type: "skills"}) previously wrote a disabled key into frontmatter that the strict parser rejected, making the skill vanish. InMemoryMcpManager.dispose() now continues disconnecting remaining servers instead of aborting on the first rejection. Install plugins only on the hub host, enable them centrally, and treat repo-local plugin dirs as inert.

Suggested actions

  1. On the hub host, install each Agent Plugin as ~/.agents/plugins/<plugin-name>/ with a root plugin.json, skills under skills/, and MCP servers in mcp.json (stdio, Streamable HTTP, or legacy SSE). Do not add those servers to cline_mcp_settings.json.
  2. Delete or ignore any workspace .agents/plugins directory—Cline SDK v0.0.83 will not scan it. For plugin packages outside ~/.agents/plugins, pass those directories explicitly as agentPluginPaths.
  3. Enable and disable plugins only in hub settings keyed by the plugin's manifest name. Never write a disabled key into a skill's SKILL.md frontmatter to toggle it.
  4. Instruct the agent to invoke hub-managed skills via the skills tool as <plugin-name>:<skill-name>, matching the folder under ~/.agents/plugins and the skill under skills/.
  5. Tell the agent that apply_patch Add File is rejected if the path already exists; use UPDATE or DELETE for existing files so the patch cannot silently overwrite contents.

Config surfaces this release may change

  • skills (high confidence) — check your repo before applying
  • hooks (high confidence) — check your repo before applying
  • MCP servers — check your repo before applying
  • background and headless runs — check your repo before applying

After you finish

Do not report this as applied to DevAgentRadar. You cannot write the visitor's loop.

Tell the human: open https://devagentradar.com/proposals/cline-sdk-sdk-v0-0-83-install-agent-plugins-under-agents-plugins-and-set and mark Applied, Skipped, or Failed. Proposal id: c42f3580-6c32-45af-897b-63935b5f045e

Your job

  1. Restate the change in one sentence.
  2. Propose a minimal plan for my repo (or a throwaway pilot).
  3. Implement only what I approve; prefer small diffs and tests.
  4. Call out risks (permissions, breaking APIs, cost).

Start by confirming you understood the proposal.

agentmcpmodelpricingcliRelease source ↗

Your loop

This browser · no sign-in · not shared as “you”

After you run the prompt

Only you can mark this. Agents cannot write your loop.

Your decision stays on this device. A public tally appears after a few votes.

Originating release signal

ClineSDK 0.0.83Sep 15, 2026

SDK v0.0.83

Hub-managed Agent Plugins. · Packages under ~/.agents/plugins/* on the hub host are discovered and validated from their root plugin.json; valid skills under skills/ are exposed through the skills tool as plugin-name:skill-name, and stdio, Streamable HTTP, and legacy SSE servers from mcp.json are started without touching cline_mcp_settings.json. · Workspace .agents/plugins directories are deliberately not scanned, so opening a repo cannot implicitly start repo-controlled MCP servers; extra roots require an explicit agentPluginPaths. · +72 more changes
Verified excerpt — the source's own words
  • Hub-managed Agent Plugins. Packages under ~/.agents/plugins/* on the hub host are discovered and validated from their root plugin.json; valid skills under skills/ are exposed through the skills tool as plugin-name:skill-name, and stdio, Streamable HTTP, and legacy SSE servers from mcp.json are started without touching cline_mcp_settings.json. Workspace .agents/plugins directories are deliberately not scanned, so opening a repo cannot implicitly start repo-controlled MCP servers; extra roots require an explicit agentPluginPaths. Enablement lives in hub settings keyed by manifest name and publishes settings.changed, so clients no longer need their own loader or enablement store. Two bugs fixed along the way: settings.toggle({type: "skills"}) wrote a disabled key into a plugin skill's SKILL.md frontmatter, which the strict Agent Skills parser then rejected so the skill silently vanished until hand-edited; and InMemoryMcpManager.dispose() aborted on the first disconnect() rejection, leaking every remaining server's process

Excerpt ends here — this release continues at the source ↗.

Primary source ↗