Cline

Open-source coding agent shipping as a VS Code extension and a CLI from one monorepo. Both surfaces use the official TypeScript SDK unpatched, except the CLI's stdio path, which is a hand-written JSON-RPC client fixed at 2024-11-05.

At a glance

Registry id cline
Vendor Cline Bot Inc.
Category ide
Platforms windows, macos, linux
Licence Apache-2.0
Source https://github.com/cline/cline
Home https://cline.bot/
Wire names Cline, @cline/core
SDK @modelcontextprotocol/sdk 1.30.0 · declares ^1.29.0 · official TypeScript SDK · unpatched · pins 2025-11-25
Prefers 2025-11-25
Speaks 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25
Source last updated 2026-08-25
Last read 2026-08-25
Probed 3.0.74 (see below)

Capabilities

Capability Status Known by At
Transports
  ↳ stdio ● full read, declared 2024-11-05, 2025-06-18, 2025-11-25
  ↳ sse ● full read, declared 2025-06-18, 2025-11-25
  ↳ streamableHttp ● full read, declared 2025-06-18, 2025-11-25
Authentication
  ↳ oauth ● full read 2025-11-25
  ↳ header ● full read 2025-11-25
Tools ● full read, declared 2024-11-05, 2025-06-18, 2025-11-25
  ↳ listChanged ◐ partial read 2024-11-05, 2025-11-25
  ↳ result ● full read 2025-11-25
    ↳ content ● full read ⇧ 2025-11-25
    ↳ structuredContent ● full read ⇧ 2025-11-25
    ↳ isError ● full read ⇧ 2025-11-25
    ↳ _meta ● full read ⇧ 2025-11-25
    ↳ media ◐ partial read ⇧ 2025-11-25
Resources ◐ partial read, declared 2025-06-18, 2025-11-25
  ↳ listChanged ● full read 2025-11-25
  ↳ subscribe ○ unsupported read 2025-11-25
Prompts ◐ partial read 2025-11-25
  ↳ listChanged ● full read 2025-11-25
Completions ○ unsupported read 2025-11-25
Sampling ○ unsupported read 2024-11-05, 2025-11-25
Elicitation ○ unsupported read 2024-11-05, 2025-11-25
Roots ○ unsupported read 2024-11-05, 2025-11-25
Logging ◐ partial read 2024-11-05, 2025-11-25
Instructions ○ unsupported read 2024-11-05, 2025-11-25
Icons ○ unsupported read 2025-11-25
Tasks ○ unsupported read 2025-11-25
JSON Schema — not recorded
Extensions — not recorded
Beyond the spec
  ↳ mcpRemoteProxyRewrite ● full read 2025-11-25
  ↳ sharedSettingsFile ● full read 2025-11-25

● full ◐ partial ○ unsupported · untested — not recorded ⇧ rests on the parent capability's evidence

Not recorded means nobody has looked, which is not the same claim as unsupported. Under tools.result, full means the field reaches the model on the default conversational path, partial means it does under a condition the notes name, and unsupported means it never does.

What the table flattens

Verified by the probe

34 records from the live probe (probe/), client version 3.0.74. Each row is one run against the instrumented fixture server with the model mocked; the verdict says which fixture fields reached the model. Glyphs: […] content, {…} structuredContent, ⟨…⟩ the whole envelope, "…" a placeholder. The scenario link opens the record; the raw captures sit next to it. Overlay: data/verified/cline.json.

Scenario Config Run At Version Verdict
apps.visibility
app_only default http 2025-11-25 3.0.74 tool offered but never called
app_only default stdio 2024-11-05 3.0.74 tool offered but never called
tools.result._meta
meta_only default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 0x, _meta reached the model)
meta_only default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 0x, _meta reached the model)
with_meta default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x, _meta reached the model)
with_meta default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x, _meta reached the model)
tools.result.audience
audience_user default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
audience_user default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
tools.result.content
empty_object default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 0x, structuredContent 0x)
empty_object default stdio 2024-11-05 3.0.74 "…" no marker reached the model; payload: "{}"
large default http 2025-11-25 3.0.74 […] content only (1x, as json)
large default stdio 2024-11-05 3.0.74 […] content only (1x, as json)
no_content_key default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 0x, structuredContent 1x)
no_content_key default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 0x, structuredContent 1x)
tools.result.isError
is_error default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
is_error default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
tools.result.media
with_image default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
with_image default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
tools.result.outputSchema
schema_match default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
schema_match default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
schema_mismatch default http 2025-11-25 3.0.74 "…" client error text, no fixture field: "{"error":"MCP error -32602: Structured content does not match the tool's output "
schema_mismatch default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
tools.result.structuredContent
mirror default http 2025-11-25 3.0.74 ⟨…⟩ envelope (payload 2x)
mirror default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (payload 2x)
sc_empty default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 0x)
sc_empty default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 0x)
sc_null default http 2025-11-25 3.0.74 "…" client error text, no fixture field: "{"error":"[\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\","
sc_null default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 0x)
sc_string default http 2025-11-25 3.0.74 "…" client error text, no fixture field: "{"error":"[\n {\n \"expected\": \"record\",\n \"code\": \"invalid_type\","
sc_string default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
structured_only default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 0x, structuredContent 1x)
structured_only default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 0x, structuredContent 1x)
summary_and_data default http 2025-11-25 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)
summary_and_data default stdio 2024-11-05 3.0.74 ⟨…⟩ envelope (content 1x, structuredContent 1x)

Where the evidence disagrees

Research notes

Provenance

Read at 110138b5 on 2026-08-25, from main of https://github.com/cline/cline.git. That commit was authored 2026-08-25.

SDK. Two workspaces declare it and disagree: sdk/packages/core asks for ^1.29.0 and apps/vscode for ^1.25.1. bun.lock hoists one copy, so both run 1.30.0. patchedDependencies covers @opentui-ui/dialog and ollama-ai-provider-v2 and not the SDK, which is the answer to the question opencode raised: Cline is on the same SDK and does not patch it. The protocol version is the SDK's on every path except one - 1.30.0 pins LATEST_PROTOCOL_VERSION at 2025-11-25 - but the CLI's stdio client does not use the SDK at all and sends 2024-11-05 of its own accord.

Paths read:

Source is not vendored. To reproduce any claim above, check out that commit in the client's repository.


Generated from data/clients.json, data/verified/cline.json by scripts/build-cards.js. Edit the registry, rerun the probe or the ingest, not this file.