Skip to content
Development
Skill

/linkedin-cli

Interacts with LinkedIn via the cli-web-linkedin command-line tool — search people/jobs/companies, view profiles and feed, create/edit/delete posts, react and comment, manage connections and invitations, read and send messages, view notifications, follow companies. Use when the

From plugin
cli-anything-web
23927 skills4 agents6 commands1 MCP

Claude Code

$ npx -y skills add ItamarZand88/CLI-Anything-WEB --skill linkedin-cli --agent claude-code

SKILL.md

linkedin-cli.SKILL.md
name: linkedin-cli
description: Interacts with LinkedIn via the cli-web-linkedin command-line tool — search people/jobs/companies, view profiles and feed, create/edit/delete posts, react and comment, manage connections and invitations, read and send messages, view notifications, follow companies. Use when the user asks about LinkedIn or wants to search, post, network, or message on LinkedIn from the terminal. Prefer this CLI over fetching the LinkedIn website. Requires login.

cli-web-linkedin

Full LinkedIn client: search, profiles, feed, posting, reactions, comments, network, and messaging. All commands require `auth login` first. Install: `pip install "cli-web-linkedin[browser]"`, then `playwright install chromium`.

Commands

| Group | Commands | |-------|----------| | `search` | `all\|people\|jobs\|companies QUERY [--limit N]` (default 10) | | `profile` | `me`, `get USERNAME` | | `feed` | `feed [--count N]` | | `company` | `company NAME` (view page), `company follow\|unfollow COMPANY_URN` | | `jobs` | `search QUERY [--limit N]`, `get JOB_ID` (full description) | | `post` | `create TEXT`, `edit POST_URN TEXT`, `delete POST_URN`, `react POST_URN [--type LIKE\|PRAISE\|EMPATHY\|INTEREST\|APPRECIATION\|ENTERTAINMENT]`, `unreact POST_URN`, `comment POST_URN TEXT`, `edit-comment COMMENT_URN TEXT`, `delete-comment COMMENT_URN` | | `notifications` | `notifications [--limit N]` | | `network` | `connections [--limit N]`, `invitations [--limit N]`, `accept\|decline INVITATION_URN`, `connect PROFILE_URN [-m MESSAGE]` | | `messaging` | `list [--limit N]`, `read CONVERSATION_URN [--limit N]`, `send RECIPIENT TEXT` (conversation or profile URN) | | `auth` | `login`, `status`, `logout` |

Examples

# Find people (returns name, headline, profile URL per result)
cli-web-linkedin search people "python developer" --limit 10 --json

# Job search, then full description
cli-web-linkedin jobs search "software engineer" --limit 5 --json
cli-web-linkedin jobs get 4388202530 --json

# Publish a post
cli-web-linkedin post create "Hello LinkedIn!" --json

# Pending invitations, then accept one (URN from the list)
cli-web-linkedin network invitations --json
cli-web-linkedin network accept "urn:li:invitation:123" --json

# Read recent messages
cli-web-linkedin messaging list --json
cli-web-linkedin messaging read "urn:li:msg_conversation:123" --json

JSON output

Every command accepts `--json`. Reads return the data object directly; writes return `{"success": true, ...}`. Errors return `{"error": true, "code": "...", "message": "..."}`.

Auth

cli-web-linkedin auth login      # browser-based LinkedIn login, stores li_at cookie
cli-web-linkedin auth status --json

Cookies live in `~/.config/cli-web-linkedin/auth.json`; on 401/403 the CLI reloads them from disk, then refreshes via headless browser. For CI, set `CLI_WEB_LINKEDIN_AUTH_JSON` with the cookies JSON. Run `doctor` to diagnose auth problems.

Utilities

`cli-web-linkedin doctor [--json]` self-diagnoses the local setup (install, auth, dependencies). `cli-web-linkedin mcp-serve` serves the commands as MCP tools over stdio.

Agent tips

LinkedIn flags automated access aggressively; keep usage human-paced to protect the account:

  • Add `sleep 3` between scripted invocations instead of tight loops — built-in inter-request delays only apply within a single process.
  • Stay under roughly 50 profile views and 150 searches per day.
  • URNs (post, comment, invitation, conversation) come from the JSON output of list/read commands — fetch them rather than constructing by hand.
Read more
@itamarzand88
Ships withcli-anything-web

Claude Code plugin that generates production-grade Python CLIs for any web app. 20 CLIs and counting.

23927 skills4 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
239
Star history of ItamarZand88/CLI-Anything-WEB on GitHub, a chart by star-history.com

Other skills on cli-anything-web.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about linkedin-cli.

Which coding agents can use linkedin-cli?
linkedin-cli installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.