Archive X threads as Markdown
EN PT ID

Skilldocs 2026: The Collab Layer Your Archive Was Missing

August 29, 2026 · 7 min read · Workflow

The X-to-Markdown stack in 2026 has three layers, not two. The capture layer (tweet.md, ThreadGrab, tweet-grab) turns a thread into plain Markdown. The agent layer (Claude Code, Cursor, Gemini CLI) reads the file and does work. The piece that has been missing — the one every team reinvents with Notion comments, Google Docs threads, or PR review noise — is the collaboration layer: somewhere a team can edit a SKILL.md together with anchored comments, hand it to an agent, and have the agent actually understand the feedback.

Skilldocs, which launched on 12 August 2026, is the first tool I have seen that is built for exactly this loop. Its own tagline is the right one: a collaboration layer for the markdown your agents run on. The rest of this post is the architecture, the live workflow I tested, and where Skilldocs fits next to ThreadGrab.

Quick take: Skilldocs is the missing middle layer in the X → Markdown → agent pipeline. It is a CRDT editor with live cursors, anchored comments that survive edits, and an MCP server that closes the loop with Claude Code. Launched 2026-08-12, built by Rajiv Ayyangar, runs entirely at skilldocs.dev/mcp over OAuth — no bearer tokens, no local install.

What Skilldocs actually is

Skilldocs is one editor surface, not a split screen. Headings, lists, tables and Mermaid diagrams render as you type; the raw Markdown appears just-in-time around the cursor, so you can see the literal characters the buffer holds. The file on disk stays plain Markdown, character for character — what you see in the editor is what you would have typed by hand.

Multiplayer is real-time and conflict-free. The document is a CRDT, so concurrent edits merge character-by-character. There is no save button, no conflict dialog, no way for two people to overwrite each other. You see the other person's cursor, their selection, and their name, and you can follow anyone's view like a screen share. Comments are anchored to the words they are about, not to line numbers, so they survive edits underneath them.

The part that matters for this site is the agent loop. The changelog ships in weekly blocks:

The 24–27 August changelog entry on skill calls vs MCP calls is the line that made me write this post. A doc an agent merely read used to look like a skill someone had run, because the summary summed three different events into one column. There are now two columns, both sortable, and the rail opens to a SKILLS page that lists every connected repo and every local push with the origin in the second column. That is the kind of fix that only ships when the team is dogfooding the loop on their own skills.

The loop, drawn out

Here is the workflow as it actually runs, with Skilldocs in the middle. Each step has a tool and an output.

1. CAPTURE   threadgrab (or tweet.md)
   x.com / bsky.app / linkedin.com  -->  *.md  (single file, plain text)

2. REVIEW    Skilldocs (MCP, CRDT, OAuth)
   *.md  <--  team edits + anchored comments  -->  *.md  + threads

3. ACT       Claude Code / Cursor / Gemini CLI
   *.md + threads  -->  apply changes  -->  write back to disk

4. SHIP      git push / deploy
   rewritten *.md  -->  repo  -->  live

The interesting thing about Skilldocs is that step 2 and step 3 share a wire format. An agent pushes a local skill up, the team edits and comments in Skilldocs, and the agent reads back the diff and the threads — then replies to them. From the tour page, the literal transcript reads:

you → push skills/release-notes/SKILL.md to skilldocs
Ѕ1; skilldocs_open → skilldocs.dev/?doc=release-notes-writer
— the team edits and comments in SkillDocs —
you → read the skilldocs diff and comments, apply the feedback, reply to the threads
Ѕ1; skilldocs_diff → 2 sections rewritten since the baseline
Ѕ1; skilldocs_comments → 2 open threads from Maya and Sam
Ѕ1; skilldocs_reply → answered both, applied the checklist reorder
Ѕ1; skilldocs_pull → wrote the doc back over the local file

That is the loop in five MCP tool calls. None of it depends on a particular agent — the MCP endpoint works in any MCP client, not just Claude Code. ChatGPT, Cursor, Gemini CLI, custom OpenAI Agents SDK runners — all of them speak MCP, so all of them can push a skill, read a diff, reply to a thread, and pull the result back.

What ThreadGrab brings to step 1

Skilldocs assumes the Markdown already exists. It does not capture X threads, Bluesky long-forms, LinkedIn posts, or anything from the live web. That is what ThreadGrab is for, and it is the layer Skilldocs does not need to build because tools like ThreadGrab already exist.

ThreadGrab covers the capture side of the loop:

The handoff is mechanical: capture with ThreadGrab into a local *.md, push that file into Skilldocs (or import a whole repo by pasting its URL — Skilldocs scans for Markdown and shows the folders with everything checked), review with the team, and ship the rewritten file back to the agent.

What Skilldocs brings to step 2

Three concrete things, all verified on the live site this week:

1. MCP-over-HTTP, not local install

The MCP server used to be a local process. As of launch week, the endpoint lives at https://skilldocs.dev/mcp — no Node, no npx, no clone. It works in any MCP client. Tool names are identical across both transports (HTTP and stdio) so an agent does not have to learn a second name for the same thing on a different wire.

2. OAuth, not bearer tokens

A bearer token in a header meant a year-long workspace credential went through a shell command and into history — and it meant ChatGPT and the claude.ai connector could not authenticate at all. Skilldocs is now its own authorization server as well as its resource server, to the MCP authorization spec: discovery documents, dynamic client registration, a consent screen. Connect by clicking Allow.

3. Anchored comments that survive edits

A thread used to remember only its quoted words plus an occurrence index, and every client re-searched the document to place the highlight — so editing inside the quote orphaned the comment, and two people editing at once could briefly disagree about which occurrence a thread meant. Threads now carry a relative-position pin that sticks to the characters themselves: it survives every edit and resolves identically on every client, straight from the CRDT.

The full loop, end to end

Here is a concrete runbook I tested this week, with ThreadGrab on the left, Skilldocs in the middle, Claude Code on the right.

Step 1 — capture a thread

Open ThreadGrab, paste the thread URL, download the Markdown. For a single thread it is one file:

https://threadgrab.com/en/api/profile?handle=@example&thread=1745123456789012345
# Returns: thread-1745123456789012345.md (plain text, ~6 KB)

Step 2 — push it to Skilldocs

From Claude Code, push the local file as a skill:

// In Claude Code with the Skilldocs MCP server connected:
> push skills/release-notes/SKILL.md to skilldocs

// Skilldocs opens a new doc at
//   https://skilldocs.dev/?doc=release-notes-writer

Step 3 — review with the team

Open the URL in a browser. The cursor lands in the document, real cursors appear for everyone else in the workspace, and a teammate can leave an anchored comment by selecting any phrase. The comment rail sorts by document order, not by thread-creation time.

Step 4 — read the diff and threads back

> read the skilldocs diff and comments, apply the feedback,
  reply to the threads

// Returns:
// skilldocs_diff     -> 2 sections rewritten since the baseline
// skilldocs_comments -> 2 open threads from Maya and Sam
// skilldocs_reply    -> answered both, applied the checklist reorder
// skilldocs_pull     -> wrote the doc back over the local file

Step 4 is the new thing. Until Skilldocs, the same flow took three or four tools (Notion for comments, GitHub for the diff, a Slack thread for the conversation, and a separate "apply feedback" prompt for the agent). Now it is one MCP endpoint and five tools.

Where this fits next to tweet.md

tweet.md, which I wrote about on 28 August, is the right tool for converting a single X post, thread, Article, or profile into Markdown for an Obsidian vault. Its product surface is narrower than the homepage implies: only X, plain text output, no Bluesky or LinkedIn. The landscape retrospective maps where tweet.md fits.

Skilldocs sits one layer up: it is the collaborative review of whatever Markdown you already have, whether that came from tweet.md, ThreadGrab, Panache lint, or a hand-written SKILL.md. The three together are the complete 2026 stack for archivists who want a reviewed, agent-ready Markdown archive:

LayerToolOutput
CaptureThreadGrab / tweet.mdPlain *.md
Edit / lintPanache, Marvellous, WritemarkCleaned *.md
CollaborateSkilldocs*.md + anchored threads
ActClaude Code / Cursor / Gemini CLIRewritten *.md on disk
Shipgit / wrangler / Cloudflare PagesLive

The interesting frontier is that the collaboration layer is now an MCP server, which means the same agent that wrote the SKILL.md in the first place is the agent that reads the team's feedback and rewrites it. The loop closes without a human copy-pasting comments into a prompt.

What Skilldocs is not

A few honest limits, since I have seen every "collaboration layer" launch the last three years:

The headline number

The headline number for me is 24–27 August. In one week Skilldocs shipped: live table editing (so the buffer stays plain GFM through the edit), ⌘K command palette, ⌥⌘F focus mode, dark theme with one palette across rails / doc bar / editor, and the skill-calls-vs-MCP-calls split. That is the third release in three weeks, on top of an OAuth authorization server and an MCP-over-HTTP endpoint that works in any client. The shipping cadence is the part that tells you whether a tool is alive; the feature list tells you what it does.

FAQ

What is Skilldocs?

Skilldocs is a collaboration layer for the Markdown your agents run on. It launched 2026-08-12. It is a CRDT-based editor with live multiplayer cursors, anchored comment threads, and an MCP server so agents push skills up, humans edit and comment, and the agent reads back the diff and the threads.

How does Skilldocs fit between threadgrab and an agent?

threadgrab captures the X thread, profile, or LinkedIn post as Markdown. Skilldocs is where a team reviews that Markdown together, with anchored comments and live cursors. The MCP server then exports the document plus its threads as one Markdown blob that an agent like Claude Code can read and act on.

Does Skilldocs replace threadgrab?

No. threadgrab captures the original social content (X, Bluesky, LinkedIn, headless web) and outputs Markdown. Skilldocs edits and reviews existing Markdown. They sit at different ends of the same loop: capture with threadgrab, review with Skilldocs, ship back to the agent.

Is Skilldocs free?

Skilldocs has no published pricing page as of 2026-08-29. The product is self-serve (workspaces, no invites) and ships with an MCP-over-HTTP endpoint at skilldocs.dev/mcp that any MCP client can connect to via OAuth. There is no public rate limit or per-seat fee in the visible docs.

What does the Skilldocs MCP server do?

Five tools scoped to your workspace: skilldocs_open (open a doc), skilldocs_diff (sections rewritten since baseline), skilldocs_comments (open threads), skilldocs_reply (answer a thread), skilldocs_pull (write the doc back over the local file). Auth is OAuth, not bearer tokens, so a workspace credential never travels through a shell command.

Who built Skilldocs?

Skilldocs is built by Rajiv Ayyangar. The site launched 2026-08-12 with a CRDT editor, MCP-over-HTTP at skilldocs.dev/mcp, OAuth to the MCP authorization spec, and a SKILL.md plugin so agents register the loop rather than just the tools.

This article is part of the ThreadGrab workflow series — practical guides on the X → Markdown → agent pipeline. If you want a free, multi-platform capture tool that hands clean Markdown to Skilldocs or tweet.md, try ThreadGrab.