No description
  • TypeScript 55%
  • JavaScript 36.1%
  • Shell 8.6%
  • Python 0.3%
Find a file
Kjell Tore Guttormsen 5c6393f2f7 docs(linkedin-studio): N4 sannhetspass — GR-modellkorreksjon + maturity/saves/kø/SB-header + refs-badge 28
Del 1 (RE-verifisert mot ground truth): README maturity-note (herding 29/29 +
kald-review 29/29; gjenstår = GUI), CLAUDE.md maturity-linje (B-F10),
hardening-plan-køen t.o.m. S31a/b/c, second-brain-header (SB-S3a-e landet,
kun S4 gjenstår).

Del 2: D-1 BLOCKER — algorithm-signals GR-seksjonen omskrevet mot primærkilde
(LinkedIn engineering-blogg 2026-03-12, Hristo Danchev: Generative Recommender
(GR) offisielt navn + LLM-retrieval + utrulling annonsert); fabrikasjonsflagget
avviste en ekte primærkilde og er trukket med korreksjonsnote; 360Brew-skepsis
beholdt. D-2 — saves-begrunnelse: Marketing API v202604 har POST_SAVE på
/memberCreatorPostAnalytics (partner-gated; manuell inntasting forblir riktig
UX). B-F11 — README refs-badge 26->28 + 25-document->28-document (ls
references/*.md = 28). CLAUDE.md Architecture faar specifics-bank +
contract-gate-linjer.

CHANGELOG-catchup kommer i release-committen (0.6.0) for aa holde
versjonsdeklarasjonene konsistente per commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: df0a1ca3-78dd-455e-99a2-e7c133fcb5f6
2026-07-17 03:35:40 +02:00
.claude-plugin refactor(linkedin-studio): move agent fasit fixtures + tests out of agents/ (v0.5.3) 2026-06-24 13:29:57 +02:00
agents feat(linkedin-studio): RE-R3e — brief history + day-over-day diff (surfaced: frontmatter + Nytt siden sist) [skip-docs] 2026-06-26 14:40:09 +02:00
assets chore(linkedin-studio): re-add example placeholder; STATE.md now local-only 2026-06-20 11:07:26 +02:00
commands feat(linkedin-studio): N3 — Step 7.5 kodet-figur-rute + figure-design-guidelines [skip-docs] 2026-07-16 20:47:59 +02:00
config feat(linkedin-studio): SB-S3e — retire dead content-history + read-side brain reconcile [skip-docs] 2026-06-23 22:13:45 +02:00
docs docs(linkedin-studio): N4 sannhetspass — GR-modellkorreksjon + maturity/saves/kø/SB-header + refs-badge 28 2026-07-17 03:35:40 +02:00
hooks fix(linkedin-studio): N1 — prune-regex no-op + dato-uavhengige kalender-fixtures (TDD) [skip-docs] 2026-07-16 20:03:05 +02:00
references docs(linkedin-studio): N4 sannhetspass — GR-modellkorreksjon + maturity/saves/kø/SB-header + refs-badge 28 2026-07-17 03:35:40 +02:00
render feat(linkedin-studio): N3.5 — MR-F8 build-html-forsoning (blockquote+lenker+FIGUR->SVG port + paritetstest) [skip-docs] 2026-07-17 03:22:20 +02:00
scripts feat(linkedin-studio): N3 — Step 7.5 kodet-figur-rute + figure-design-guidelines [skip-docs] 2026-07-16 20:47:59 +02:00
skills feat(linkedin-studio): de-niche content framework + planner calendar — recast/rename to content-framework.md (B-S2a) [skip-docs] 2026-06-23 10:02:26 +02:00
tests refactor(linkedin-studio): move agent fasit fixtures + tests out of agents/ (v0.5.3) 2026-06-24 13:29:57 +02:00
.gitignore feat(linkedin-studio): SB-S3e — retire dead content-history + read-side brain reconcile [skip-docs] 2026-06-23 22:13:45 +02:00
CHANGELOG.md refactor(linkedin-studio): move agent fasit fixtures + tests out of agents/ (v0.5.3) 2026-06-24 13:29:57 +02:00
CLAUDE.md docs(linkedin-studio): N4 sannhetspass — GR-modellkorreksjon + maturity/saves/kø/SB-header + refs-badge 28 2026-07-17 03:35:40 +02:00
CODE_OF_CONDUCT.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
CONTRIBUTING.md refactor(linkedin)!: rename plugin linkedin-thought-leadership → linkedin-studio (v3.0.0) 2026-05-29 11:32:02 +02:00
GOVERNANCE.md docs: introduce GOVERNANCE.md and unify fork-and-own blurb 2026-05-03 14:57:00 +02:00
LICENSE feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00
README.md docs(linkedin-studio): N4 sannhetspass — GR-modellkorreksjon + maturity/saves/kø/SB-header + refs-badge 28 2026-07-17 03:35:40 +02:00
SECURITY.md feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command 2026-04-08 08:58:35 +02:00

LinkedIn Studio Plugin for Claude Code

Turn your expertise into LinkedIn authority — without the blank page, the guesswork, or the generic AI slop.

Solo-maintained, fork-and-own. This plugin is a starting point, not a vendor product. Issues are welcome as signals; pull requests are not accepted. See GOVERNANCE.md for the full model and what upstream provides.

AI-generated: all code produced by Claude Code through dialog-driven development. Full disclosure →

Version Platform Commands Agents Hooks Reference Docs License

Most experts know they should post on LinkedIn — and quietly don't. The blank editor wins. LinkedIn Studio turns that chore into a system: structured workflows that take you from idea to published, in your own voice, calibrated to how LinkedIn's topic-relevance ranking model (2026) actually distributes content. Two engines under one surface — a feed engine for short-form posts, carousels, and video scripts, and a long-form engine that runs newsletter editions and essays through a serious editorial pipeline before they ever lock.

This is not a shortcut. Hand the wheel to the AI and you land where everyone who did the same lands — the forgettable middle. The plugin removes the friction; the judgment, the genuine engagement, and the effort that make content worth reading remain entirely yours.

Tip

New here? Run /linkedin:onboarding — it walks you through profile optimization, personalization, and your first published post in one guided flow (~10 minutes).

Note

Pre-1.0. The earlier 1.0.04.1.0 numbering reflected ambition, not maturity. Honest about where it stands today: the architecture workstream (M0) is done — user data lives in a per-user data dir outside the plugin, with automatic migration — and all 29 command surfaces have passed both the interactive hardening gate (29/29) and independent cold-review (29/29). What remains for 1.0.0 is a GUI. See CHANGELOG.md.


Two Engines

LinkedIn Studio is really two content engines sharing one surface. They have different speeds, different gates, and different goals.

The Feed Engine — short-form, fast, frictionless

For everyday presence. The point is velocity without losing quality: every content command auto-copies the result to your clipboard, asks at most two questions, and runs your draft through the same algorithm-aware quality gates before it leaves your editor.

Want to… Command Time
React to an article or observation /linkedin:quick ~5 min
Write a substantial post /linkedin:post 1015 min
Turn a URL into a reaction post /linkedin:react ~5 min
Build a carousel (highest engagement format) /linkedin:carousel ~15 min
Script a video /linkedin:video ~10 min
Fill a whole week in one sitting /linkedin:batch ~30 min

📖 The Long-Form Engine — /linkedin:newsletter

For the pieces that build authority — newsletter editions, essays, series articles. This is what sets LinkedIn Studio apart from "AI writes your post" tools: an 18-phase pipeline where the draft is grounded in your real material before research (lived-specifics extraction) and then has to survive a gauntlet of quality gates before it locks.

skeleton gate ──▶ voice scrub ──▶ fact-check ──▶ editorial craft gate ──▶
persona resonance ──▶ cold adversarial review ──▶ visual assets ──▶ LOCK ──▶ hook conversion
   (before prose)      (de-AI)     (sources)        (is it well-made?)
                                                  (does it land?)   (cold, headless)

Each gate exists because skipping it is expensive: spine errors are caught at the outline stage, not after a full draft; claims past the model's knowledge cutoff must be web-searched; an editor judges craft a resonance sweep can't see; and a frozen draft is re-read by reviewers carrying no drafting-session context (argument, language, facts, reader-fit) — inline at Step 6.5 or in a fresh session via /linkedin:headless-review for maximum independence.

Short-form lives in /linkedin:post, :quick, :react, :carousel, :video. Long-form lives in /linkedin:newsletter. /linkedin:multiplatform adapts short-form across platforms; long-form repurposing routes back to /linkedin:newsletter.


Quick Start

Prerequisites

  • Claude Code with plugin support enabled
  • Node.js 18+ (for hooks and analytics CLI; analytics requires tsx: cd scripts/analytics && npm install)

Installation

Add the marketplace and browse plugins with /plugin:

claude plugin marketplace add https://git.fromaitochitta.com/open/ktg-plugin-marketplace.git

Or enable directly in ~/.claude/settings.json:

{
  "enabledPlugins": {
    "linkedin-studio@ktg-plugin-marketplace": true
  }
}

Get Started (5 minutes)

Run the onboarding wizard — it walks you through profile, setup, and your first post in one flow:

/linkedin:onboarding

Already Set Up?

Goal Command
Write a post /linkedin:post
Quick 5-min post /linkedin:quick
React to an article /linkedin:react
Write a long-form edition /linkedin:newsletter
View your stats /linkedin:report
See all commands /linkedin

Commands

All 29 commands use colon notation: /linkedin:post, /linkedin:quick, etc. The surface is organized into five journeys (Start · Create · Engage · Measure · Grow); /linkedin:create and /linkedin:measure are guided front-doors that route you to the right command when you know the journey but not the exact command. Run /linkedin for the live router with your posting status.

Onboarding & Setup

Command Description
/linkedin:onboarding Multi-step wizard — profile optimization, personalization, and your first post in one flow.
/linkedin:first-post First-post accelerator — zero to published in 10 minutes with guided hand-holding.
/linkedin:setup Populate asset templates with your real voice, case studies, and audience data (6 sub-workflows; calculates personalization score).
/linkedin:profile profile/topic-relevance optimization checklist — About, Experience, Headline, content-history alignment.
/linkedin Main router — posting status (streak, weekly progress) + the full command menu.

Content Creation

Command Description
/linkedin:create Create front-door. Routes you to the creation command that owns the format (post/quick/react/carousel/video/multiplatform/batch/newsletter). Delegates only.
/linkedin:post Full interactive post creation — angle, format, drafting, refinement. Best for substantial posts (1,2001,800 chars).
/linkedin:quick 5-minute quick post (3-line formula, 150500 chars) + the 8 post-type templates.
/linkedin:react URL-to-post pipeline — paste an article or link, get a reaction post.
/linkedin:carousel Structured multi-slide carousel with per-slide copy + layout guidance; optional slide images via mcp-image.
/linkedin:video Video script generator for 30s/60s/90s/2-min videos with pacing and visual cues.
/linkedin:multiplatform Adapt LinkedIn content for X threads, newsletter sections, blog posts, slides, YouTube scripts.
/linkedin:batch A full week of content in one session — one theme in, 35 posts out, written to the queue.
/linkedin:pipeline Full end-to-end pipeline from idea to published post (ideation → publish → post-analysis).
/linkedin:newsletter Long-form orchestrator — newsletter/essay/series article at series quality. Multi-session 18-phase pipeline; lived-specifics grounding BEFORE research, all gates BEFORE lock.
/linkedin:headless-review Cold adversarial review package on a FROZEN draft (content-reviewer + language-reviewer + fact-reviewer + persona-reviewer) — run in a fresh session for maximum isolation.
/linkedin:pivot Re-open a long-form edition after a substantive late change so cleared gates re-run before lock (heuristic: >20 % word-count or >2 new sections).

Engage

Command Description
/linkedin:calendar View/manage the scheduling queue + run the publish action (mark a post published, update state/streak, surface the first-hour plan).
/linkedin:firsthour Post-publish first-hour / reply-loop sprint — timestamped targets, draft comments, timeline; hands off to post-feedback-monitor.
/linkedin:outreach Collaborations + speaking under one paradigm — partner scoring, CFP search, formats, abstracts, pipeline tracker (unlocks ~1K).

Measure

Command Description
/linkedin:measure Measure front-door. Routes you to the right analytics command (import/report/analyze/audit/ab-test). Delegates only.
/linkedin:import Import a LinkedIn analytics CSV export into structured JSON (auto-detects ~/Downloads, parses, flags anomalies).
/linkedin:report Weekly performance report from imported data — metrics, top performers, trends, alerts.
/linkedin:analyze Diagnose performance issues — algorithm penalties, profile-content mismatch, reach drops.
/linkedin:audit Periodic strategy audit — top/bottom posts, topic distribution, format mix, trends. Run quarterly.
/linkedin:ab-test Design and track A/B content experiments.
/linkedin:competitive Competitive analysis of niche thought leaders — frequency, formats, hooks, differentiation gaps.

Grow

Command Description
/linkedin:strategy Growth + authority — phase guidance (01K → 10K+), trajectory-aware adjustments, signature-content compounding.
/linkedin:monetize Monetization — scored readiness, stage-specific plans, lead magnets, DM conversion, revenue dashboards (unlocks ~1K).

Agents

19 purpose-built agents power the commands — each with a fixed model and a focused job. The collaboration pipeline and a "which agent do I need?" map live in CLAUDE.md.

Agent Model Responsibility
content-optimizer Sonnet Optimize posts — hooks, structure, CTAs
strategy-advisor Sonnet Growth strategy + phase guidance
analytics-interpreter Sonnet Audience patterns + weekly/monthly reports
engagement-coach Sonnet 5x5x5 + first-hour + CEA commenting
content-planner Sonnet Weekly/monthly content calendars
network-builder Sonnet Strategic networking + outreach
content-repurposer Sonnet Format conversion + evergreen refresh
trend-spotter Sonnet Trending topics + opportunity scores
voice-trainer Sonnet Voice profile building + drift detection
differentiation-checker Sonnet Originality scoring + commodity detection
video-scripter Sonnet Video scripts with pacing + visual cues
post-feedback-monitor Opus Post-publish 48h monitoring
fact-checker Opus Claim verification, post-cutoff web search (longform)
editorial-reviewer Opus Craft gate — prose + narrative architecture (longform)
persona-reviewer Opus Reader-persona skeleton / resonance / conversion gate (longform)
voice-scrubber Opus De-AI scrub + Norwegian-chronicle voice (longform)
content-reviewer Opus Cold/headless argument-integrity review (longform)
language-reviewer Opus Cold/headless Norwegian-language review (longform)
fact-reviewer Opus Cold/headless re-verification + pivot-risk (longform)

Boundaries (as of 2026-05)

LinkedIn Studio is honest about what it can and cannot do for a personal profile:

  • Post-level analytics via API — exists, but is partner-gated (a vetted Community Management API app + a verified organization + a Page). Not self-serve for a solo profile, so the practical floor is the CSV export you drop into /linkedin:import. Per-post saves are visible in native post analytics (count-only, since ~Sept 2025) but absent from the CSV and have no self-serve API — the tool does not auto-track them, but you can add a Saves column to the CSV manually and /linkedin:import ingests it (omit it and saves stays unknown, never 0, never folded into engagement rate).
  • Auto-publish — technically possible via the w_member_social scope, so this is a design choice, not an API limit: the OAuth/token overhead plus LinkedIn's terms on automated posting make copy-to-clipboard + you-paste the right default. The calendar's "publish" action marks a post you posted as published — it never posts on your behalf.
  • Dwell time — internal to LinkedIn for organic posts; not exportable, not measured.
  • Also not covered: real-time/streaming analytics, automated engagement (ToS), profile editing via API, and team/multi-user workflows. The plugin generates recommendations and drafts; you apply them.

Content Quality Rules

Enforced through hooks and agent behavior, calibrated to documented topic-relevance signals:

Rule Threshold
Hook length 110140 characters
Post length (standard / quick) 1,2001,800 / 150500 characters
No external links in body body links correlate with lower reach → first comment
No corporate buzzwords blocklist: leverage, synergy, paradigm shift, thought leader, disruptive, value proposition, ecosystem, holistic approach
Topic alignment must align with your 5 core expertise areas
Topic rotation no back-to-back same pillar; no pillar >50 % in 14 days (warn-only)
Voice consistency AI-authenticity check + voice matching (voice-guardian hook)

Example Workflows

Sunday content prep

/linkedin:batch        # one theme → 35 posts, varying angles, into the queue
/linkedin:calendar     # review the upcoming week

A long-form edition, done right

/linkedin:newsletter   # multi-session: skeleton → spine prose → voice scrub →
                       # fact-check → editorial craft → persona resonance →
                       # cold adversarial review → visual assets → lock → hook conversion

Deeper Documentation

The README is the front door. The detail lives alongside it:

For… See
Architecture — agent pipeline & selection, 9 hooks, 6 skills, personalization scoring, configuration, analytics internals CLAUDE.md
The 28-document knowledge base (algorithm signals, angles, frameworks, strategy guides) references/
Full version history and known gaps CHANGELOG.md
Maintenance model, fork-and-own, what upstream provides GOVERNANCE.md

License

This project is licensed under the MIT License. The plugin architecture, content strategies, and algorithm analysis are original work. LinkedIn is a trademark of LinkedIn Corporation.


The algorithm rewards expertise, consistency, and authenticity. Everything else is noise.