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
- 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.
- 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.
- 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.
- 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/.
- 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 costCline / .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
- 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.
- 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.
- 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.
- 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/.
- 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
- Restate the change in one sentence.
- Propose a minimal plan for my repo (or a throwaway pilot).
- Implement only what I approve; prefer small diffs and tests.
- Call out risks (permissions, breaking APIs, cost).
Start by confirming you understood the proposal.
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.