LinkedIn Post
Content toolkit for drafting, editing, optimizing, scheduling, and managing LinkedIn posts from the command line. Generate hashtags, craft hooks, write CTAs, rewrite content, translate text, adjust tone, create headlines, and build outlines — all with timestamped logging and full export capabilities.
Commands
| Command |
Description |
linkedin-post draft <input> |
Draft a new post (view recent drafts with no args) |
linkedin-post edit <input> |
Log an edit entry (view recent edits with no args) |
linkedin-post optimize <input> |
Log an optimization note (view recent with no args) |
linkedin-post schedule <input> |
Schedule a post (view recent schedules with no args) |
linkedin-post hashtags <input> |
Log hashtag ideas (view recent with no args) |
linkedin-post hooks <input> |
Log opening hooks (view recent with no args) |
linkedin-post cta <input> |
Log call-to-action ideas (view recent with no args) |
linkedin-post rewrite <input> |
Log a rewrite (view recent rewrites with no args) |
linkedin-post translate <input> |
Log a translation (view recent with no args) |
linkedin-post tone <input> |
Log tone adjustments (view recent with no args) |
linkedin-post headline <input> |
Log headline ideas (view recent with no args) |
linkedin-post outline <input> |
Log post outlines (view recent with no args) |
linkedin-post stats |
Show summary statistics across all log files |
linkedin-post export <fmt> |
Export all data (json, csv, or txt) |
linkedin-post search <term> |
Search all logs for a keyword |
linkedin-post recent |
Show the 20 most recent history entries |
linkedin-post status |
Health check with version, entries, disk usage |
linkedin-post help |
Show help message |
linkedin-post version |
Show version (v2.0.0) |
How Data Commands Work
Each content command (draft, edit, optimize, schedule, hashtags, hooks, cta, rewrite, translate, tone, headline, outline) operates in two modes:
- With arguments — saves a timestamped entry (
YYYY-MM-DD HH:MM|value) to the command's .log file and records the action in history.log
- Without arguments — displays the 20 most recent entries from that command's log file
Utility Commands
- stats — iterates all
.log files in the data directory, counts entries per category, and shows total count, disk usage, and earliest activity timestamp
- export
<fmt> — exports all log data into json, csv, or txt format, saved to ~/.local/share/linkedin-post/export.<fmt>. Reports output file path and byte count.
- search
<term> — performs case-insensitive search across all log files, grouped by category
- recent — shows the last 20 lines from
history.log
- status — health check displaying version, data directory, total entry count, disk usage, last activity, and OK status
Data Storage
All data is stored in ~/.local/share/linkedin-post/:
- Each command has its own log file (e.g.,
draft.log, edit.log, hashtags.log, hooks.log, etc.)
history.log — centralized activity log recording every command invocation
- Export files saved as
export.json, export.csv, or export.txt
- Entries use pipe-delimited format:
YYYY-MM-DD HH:MM|value
Requirements
- Bash (with
set -euo pipefail)
- Standard Unix utilities:
date, wc, du, head, tail, grep, basename
- No external dependencies or API keys required
When to Use
- Drafting LinkedIn posts — use
linkedin-post draft to capture post ideas and first drafts as they come to you
- Crafting engaging hooks — log attention-grabbing opening lines with
linkedin-post hooks and iterate until you find the best one
- Managing hashtag strategy — track and organize hashtag sets with
linkedin-post hashtags for consistent post tagging
- Scheduling content calendars — use
linkedin-post schedule to plan when posts go live and maintain a publishing cadence
- Iterating on post quality — use
linkedin-post rewrite, linkedin-post tone, and linkedin-post optimize to refine content through multiple revisions
Examples
# Draft a new post
linkedin-post draft "5 lessons I learned from shipping my first SaaS product in 30 days"
# Log hook ideas for the post
linkedin-post hooks "I almost quit on day 14. Here's why I didn't."
linkedin-post hooks "Most founders get this wrong about MVPs..."
# Add hashtag ideas
linkedin-post hashtags "#SaaS #StartupLife #ProductLaunch #IndieHacker #BuildInPublic"
# Write a CTA
linkedin-post cta "Drop a 🔥 if you've shipped something this month. I'll check out your project."
# Schedule the post
linkedin-post schedule "Publish Tuesday 9am EST — peak LinkedIn engagement window"
# Rewrite with different tone
linkedin-post rewrite "Shorter version: cut intro, lead with the lesson, end with question"
linkedin-post tone "Switch from formal to conversational — more 'you' and 'I', fewer buzzwords"
# Create a headline
linkedin-post headline "From Zero to $10K MRR: What Actually Worked"
# Build an outline
linkedin-post outline "1) Hook: surprising stat 2) Problem 3) 3 key lessons 4) CTA question"
# Translate for different audience
linkedin-post translate "Spanish version for LATAM LinkedIn audience"
# View summary statistics
linkedin-post stats
# Export everything as JSON
linkedin-post export json
# Search for all posts about SaaS
linkedin-post search "SaaS"
# Check system status
linkedin-post status
# View recent activity
linkedin-post recent
LinkedIn Best Practices
- First 3 lines are everything — the "see more" hook determines whether people engage
- Dwell time matters — longer posts that keep people reading get boosted by the algorithm
- Comments > Reactions — posts with comments rank higher than those with just likes
- Avoid external links in post body — put URLs in the first comment instead
- Carousel posts get 1.5–2× more reach than text-only posts
- Use
linkedin-post hooks to iterate on your opening lines before publishing
Tips
- Run
linkedin-post help to see all available commands
- Call any command without arguments to review recent entries for that category
- Use
linkedin-post search <term> to find entries across all log files
- Export data regularly with
linkedin-post export json for backups
- Combine
draft → hooks → hashtags → cta → optimize as a content creation pipeline
- All data lives in
~/.local/share/linkedin-post/ — easy to back up or sync
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com
1---2name: linkedin-post3description: LinkedIn文案生成、开头Hook、热门话题标签、轮播内容规划、高质量评论、个人简介优化。LinkedIn post writer with hooks, hashtags, carousel planning, comment templates.4---5
6# LinkedIn Post
7
8Content toolkit for drafting, editing, optimizing, scheduling, and managing LinkedIn posts from the command line. Generate hashtags, craft hooks, write CTAs, rewrite content, translate text, adjust tone, create headlines, and build outlines — all with timestamped logging and full export capabilities.
9
10## Commands
11
12| Command | Description |
13|---------|-------------|
14| `linkedin-post draft <input>` | Draft a new post (view recent drafts with no args) |
15| `linkedin-post edit <input>` | Log an edit entry (view recent edits with no args) |
16| `linkedin-post optimize <input>` | Log an optimization note (view recent with no args) |
17| `linkedin-post schedule <input>` | Schedule a post (view recent schedules with no args) |
18| `linkedin-post hashtags <input>` | Log hashtag ideas (view recent with no args) |
19| `linkedin-post hooks <input>` | Log opening hooks (view recent with no args) |
20| `linkedin-post cta <input>` | Log call-to-action ideas (view recent with no args) |
21| `linkedin-post rewrite <input>` | Log a rewrite (view recent rewrites with no args) |
22| `linkedin-post translate <input>` | Log a translation (view recent with no args) |
23| `linkedin-post tone <input>` | Log tone adjustments (view recent with no args) |
24| `linkedin-post headline <input>` | Log headline ideas (view recent with no args) |
25| `linkedin-post outline <input>` | Log post outlines (view recent with no args) |
26| `linkedin-post stats` | Show summary statistics across all log files |
27| `linkedin-post export <fmt>` | Export all data (json, csv, or txt) |
28| `linkedin-post search <term>` | Search all logs for a keyword |
29| `linkedin-post recent` | Show the 20 most recent history entries |
30| `linkedin-post status` | Health check with version, entries, disk usage |
31| `linkedin-post help` | Show help message |
32| `linkedin-post version` | Show version (v2.0.0) |
33
34### How Data Commands Work
35
36Each content command (draft, edit, optimize, schedule, hashtags, hooks, cta, rewrite, translate, tone, headline, outline) operates in two modes:
37
38- **With arguments** — saves a timestamped entry (`YYYY-MM-DD HH:MM|value`) to the command's `.log` file and records the action in `history.log`
39- **Without arguments** — displays the 20 most recent entries from that command's log file
40
41### Utility Commands
42
43- **stats** — iterates all `.log` files in the data directory, counts entries per category, and shows total count, disk usage, and earliest activity timestamp
44- **export `<fmt>`** — exports all log data into `json`, `csv`, or `txt` format, saved to `~/.local/share/linkedin-post/export.<fmt>`. Reports output file path and byte count.
45- **search `<term>`** — performs case-insensitive search across all log files, grouped by category
46- **recent** — shows the last 20 lines from `history.log`
47- **status** — health check displaying version, data directory, total entry count, disk usage, last activity, and OK status
48
49## Data Storage
50
51All data is stored in `~/.local/share/linkedin-post/`:
52
53- Each command has its own log file (e.g., `draft.log`, `edit.log`, `hashtags.log`, `hooks.log`, etc.)
54- `history.log` — centralized activity log recording every command invocation
55- Export files saved as `export.json`, `export.csv`, or `export.txt`
56- Entries use pipe-delimited format: `YYYY-MM-DD HH:MM|value`
57
58## Requirements
59
60- Bash (with `set -euo pipefail`)
61- Standard Unix utilities: `date`, `wc`, `du`, `head`, `tail`, `grep`, `basename`
62- No external dependencies or API keys required
63
64## When to Use
65
661. **Drafting LinkedIn posts** — use `linkedin-post draft` to capture post ideas and first drafts as they come to you
672. **Crafting engaging hooks** — log attention-grabbing opening lines with `linkedin-post hooks` and iterate until you find the best one
683. **Managing hashtag strategy** — track and organize hashtag sets with `linkedin-post hashtags` for consistent post tagging
694. **Scheduling content calendars** — use `linkedin-post schedule` to plan when posts go live and maintain a publishing cadence
705. **Iterating on post quality** — use `linkedin-post rewrite`, `linkedin-post tone`, and `linkedin-post optimize` to refine content through multiple revisions
71
72## Examples
73
74```bash
75# Draft a new post
76linkedin-post draft "5 lessons I learned from shipping my first SaaS product in 30 days"
77
78# Log hook ideas for the post
79linkedin-post hooks "I almost quit on day 14. Here's why I didn't."
80linkedin-post hooks "Most founders get this wrong about MVPs..."
81
82# Add hashtag ideas
83linkedin-post hashtags "#SaaS #StartupLife #ProductLaunch #IndieHacker #BuildInPublic"
84
85# Write a CTA
86linkedin-post cta "Drop a 🔥 if you've shipped something this month. I'll check out your project."
87
88# Schedule the post
89linkedin-post schedule "Publish Tuesday 9am EST — peak LinkedIn engagement window"
90
91# Rewrite with different tone
92linkedin-post rewrite "Shorter version: cut intro, lead with the lesson, end with question"
93linkedin-post tone "Switch from formal to conversational — more 'you' and 'I', fewer buzzwords"
94
95# Create a headline
96linkedin-post headline "From Zero to $10K MRR: What Actually Worked"
97
98# Build an outline
99linkedin-post outline "1) Hook: surprising stat 2) Problem 3) 3 key lessons 4) CTA question"
100
101# Translate for different audience
102linkedin-post translate "Spanish version for LATAM LinkedIn audience"
103
104# View summary statistics
105linkedin-post stats
106
107# Export everything as JSON
108linkedin-post export json
109
110# Search for all posts about SaaS
111linkedin-post search "SaaS"
112
113# Check system status
114linkedin-post status
115
116# View recent activity
117linkedin-post recent
118```
119
120## LinkedIn Best Practices
121
122- **First 3 lines are everything** — the "see more" hook determines whether people engage
123- **Dwell time matters** — longer posts that keep people reading get boosted by the algorithm
124- **Comments > Reactions** — posts with comments rank higher than those with just likes
125- **Avoid external links in post body** — put URLs in the first comment instead
126- **Carousel posts** get 1.5–2× more reach than text-only posts
127- Use `linkedin-post hooks` to iterate on your opening lines before publishing
128
129## Tips
130
131- Run `linkedin-post help` to see all available commands
132- Call any command without arguments to review recent entries for that category
133- Use `linkedin-post search <term>` to find entries across all log files
134- Export data regularly with `linkedin-post export json` for backups
135- Combine `draft` → `hooks` → `hashtags` → `cta` → `optimize` as a content creation pipeline
136- All data lives in `~/.local/share/linkedin-post/` — easy to back up or sync
137
138---
139
140*Powered by BytesAgain | bytesagain.com | hello@bytesagain.com*