VS Code coauthoring plugin built on Cline (@cline/sdk) #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
An inner-loop VS Code extension that delivers human+machine coauthoring on
local files — live human/Claude attribution (what the machine changed vs. what
you changed, in the buffer), region-anchored threads, and a propose/accept
flow — built as a standalone extension on Cline's
@cline/sdkagent.Problem / pain
Coauthoring with an AI in the editor today has no persistent threads and no
solid attribution/provenance: you can't see which spans the machine wrote vs.
which you wrote, and discussion isn't anchored to document regions. Claude for VS
Code can take a highlighted region as context but keeps no durable record. The
forge (Gitea / rfc-app) is the outer loop — review, multi-party deliberation, a
durable record. The inner loop, where writing actually happens keystroke by
keystroke, has no home.
Who feels it
A writer/engineer coauthoring prose or specs with Claude inside VS Code — one
human + one machine to start. (Later rungs add teams and the public process.)
Desired outcome / value
The editor becomes a real coauthoring surface: attribution + anchored threads
portable up to the Gitea rung later without re-homing. This validates the
coauthoring UX as the cheapest, fastest path to the core value — before any
server or Gitea investment.
Acceptance — "done right"
A human can coauthor a document with Claude in VS Code and:
(Epic-level end-state; the Features below refine each piece.)
Scope / non-goals
In scope: standalone extension on
@cline/sdk; 1 human + 1 machine; localfiles; git-native persistence of attribution + threads.
Out of scope (deferred, not forgotten): turn-taking choreography; multi-file
orchestration; the Gitea team rung (rfc-app#46); the rfc-app public-process
rung; other editors (JetBrains, etc.); any server for v1.
Assumptions · constraints · dependencies
@cline/sdk— not a fork of Cline, not a companion trying to extendCline's UI (VS Code extensions can't easily extend another's UI — rfc-app#48 Q2).
@cline/sdk(Apache-2.0; programmatic agent + tool/pluginregistration + MCP). Depends on its API stability.
(provenance, attributed diffs, anchored threads): editor (this) → Gitea
substrate (#46) → rfc-app. git is truth; the surfaces are clients.
Source / signal
ben.stull/rfc-app#48— "VS Code coauthoring plugin: the inner-loop rung" (thecapture-phase seed for this Epic), sibling of #46 (Gitea substrate rung).
vs-code-cowriting-plugin-0001— Approach decision (standaloneon
@cline/sdk) explored here against Cline's published SDK.Priority (WSJF)
Provisional: Value high (core new capability + seeds the ladder) ·
Time-criticality medium · Opportunity-enablement high ÷ Size large
(epic) → P1.
Decomposition (Epic → Features)
Decomposed one level at a time — only the first Feature is filed now; the rest
are the planned shape, filed later as the Epic advances:
@cline/sdk→ #2(shipped — session 0002, PR #3 merged; #2 closed. De-risked Approach A and
established the project skeleton).
(shipped — session 0004, PR #5 merged; #4 closed. Established the sidecar
persistence + hybrid anchoring model on the shared
anchorsprimitive).(filed — next up).
.threads/sidecar vs. git notes vs.trailers) + round-trip to the Gitea rung (#46).
Solution notes (optional — NOT a design)
Native primitives already exist for the differentiated bits: Comments API for
region threads, Decorations API for attribution, inline-diff keep/reject
for propose-by-default.
@cline/sdksupplies the agent without a fork. The fullSolution Design (git-native format, live-attribution anchoring, where Claude runs,
server-or-not) is a follow-on brainstorming session — see rfc-app#48's open
questions.
The inner-loop coauthoring plugin is delivered: F2 threads (#4), F3 attribution (#6), F4 propose/accept (#12), F5 cross-rung format (#14), F6 diff-view (#17/#19), F7 rendered preview (#21), F8 out-of-workspace authoring (#25), F9 authorship-in-preview (PR #27) — all shipped to
mainon @cline/sdk. Closing the epic; further increments continue as their own features/tasks (e.g. #22 intra-diagram mermaid diffing).