Agent skill

Publish Substack Article

by sugarforever in sugarforever/01coder-agent-skills

Publish Markdown articles to Substack as drafts. An agent skill from sugarforever/01coder-agent-skills.

MITAuto-check passedWriting & Content

Install Publish Substack Article

skills CLI
$ npx skills add sugarforever/01coder-agent-skills --skill publish-substack-article -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sugarforever/01coder-agent-skills publish-substack-article --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sugarforever/01coder-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/publish-substack-article .claude/skills/publish-substack-article && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
publish-substack-article
GitHub stars
136
Token cost
~3.8k tokens
SKILL.md length
1,558 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Publish Markdown articles to Substack as drafts. An agent skill from sugarforever/01coder-agent-skills.

  • Works in 10 steps: Pre-Processing — Convert Tables to Images → Prepare Content → Convert Markdown to HTML → …
  • User wants to publish a Markdown file to Substack
  • SKILL.md covers Prerequisites, Browser MCP Tool Mapping, Key URLs and Publication Resolution, plus 7 more sections
  • Calls pip, node and python3

What it does

Publish Substack Article is an agent skill from sugarforever/01coder-agent-skills. Publish Markdown articles to Substack as drafts. Use when user wants to publish a Markdown file to Substack, or mentions "发布到 Substack", "Substack article", "publish to Substack". Handles Markdown-to-HTML conversion and saves as draft (never auto-publish).

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Newsletters and Markdown. It works with Substack, Model Context Protocol, Playwright and Chrome DevTools. The licence is MIT.

When your agent uses it

  • User wants to publish a Markdown file to Substack
  • Mentions 发布到 Substack
  • Substack article
  • Publish to Substack

Example prompts

  • “发布到 Substack”
  • “Substack article”
  • “publish to Substack”
  • “/publish-substack-article”

Requirements

  • Python 3

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Pre-Processing — Convert Tables to Images
  2. Prepare Content
  3. Convert Markdown to HTML
  4. Navigate to Substack
  5. Create New Post
  6. Fill Title and Subtitle
  7. Insert HTML Content (via Clipboard Paste)
  8. Insert Table Images
  9. Verify Draft
  10. Report Completion

What it can do on your machine

Read from SKILL.md and the folder at commit e51fb6e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pip
    • node
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Publish Substack Article loads about 3.8k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,558 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sugarforever/01coder-agent-skills at commit e51fb6e, republished under its MIT licence (© sugarforever). 1,558 words, ~3,770 tokens.

Download SKILL.mdSave it as .claude/skills/publish-substack-article/SKILL.md (or your agent's skills folder).
name
publish-substack-article
description
Publish Markdown articles to Substack as drafts. Use when user wants to publish a Markdown file to Substack, or mentions "发布到 Substack", "Substack article", "publish to Substack". Handles Markdown-to-HTML conversion and saves as draft (never auto-publish).

Publish Substack Article

Publish Markdown content to Substack post editor, converting Markdown to HTML and pasting as rich text. Saves as draft for user review before publishing.

Prerequisites

  • Browser automation MCP (either one):
    • Chrome DevTools MCP (mcp__chrome-devtools__*)
    • Playwright MCP (mcp__playwright__*)
  • User logged into Substack
  • Python 3 with markdown package (pip install markdown)
  • copy_to_clipboard.py script (shared from publish-zsxq-article skill)

Browser MCP Tool Mapping

This skill works with both Chrome DevTools MCP and Playwright MCP:

ActionChrome DevTools MCPPlaywright MCP
Navigatenavigate_pagebrowser_navigate
Take snapshottake_snapshotbrowser_snapshot
Take screenshottake_screenshotbrowser_take_screenshot
Click elementclickbrowser_click
Fill textfillbrowser_type
Upload fileupload_filebrowser_file_upload
Press keypress_keybrowser_press_key
Evaluate JSevaluate_scriptbrowser_evaluate

Priority: Default to Playwright MCP. Use Chrome DevTools MCP only when Playwright MCP is unavailable.

Detection: At runtime, prefer mcp__playwright__browser_navigate. Fall back to mcp__chrome-devtools__navigate_page only if Playwright tools are not available.

Key URLs

  • Substack dashboard: https://{publication}.substack.com/publish
  • Post editor: https://{publication}.substack.com/publish/post/{postId}

Publication Resolution

The Substack publication subdomain (e.g., verysmallwoods in verysmallwoods.substack.com) is required to navigate to the dashboard. Do not hardcode a default.

Before any navigation, resolve the publication in this order:

  1. Skill argument — if the user invoked the skill with a publication subdomain, use it.
  2. Environment variable — check SUBSTACK_PUBLICATION (optional, for users who publish repeatedly to the same publication).
  3. Prompt the user if neither is available:

    请提供 Substack publication subdomain(例如 verysmallwoods.substack.com 里的 verysmallwoods)。

Do not proceed to Step 3 (Navigate) without a resolved publication subdomain.

Editor Interface

The Substack post editor uses Tiptap (ProseMirror-based WYSIWYG editor).

Key Elements
  • Title input: textbox "title" (placeholder: "Title")
  • Subtitle input: textbox "Add a subtitle…"
  • Content area: .ProseMirror (Tiptap editor, "Start writing...")
  • Save status: button "Saved" (auto-saves)
  • Preview button: button "Preview"
  • Continue button: button "Continue" (publish flow - DO NOT USE)
  • Settings sidebar: button "Settings" (title, description, thumbnail)
Settings Sidebar (left panel)

When "Settings" or "File Settings" is open:

  • Title: textbox "Add a title..."
  • Description: textbox "Add a description..."
  • Thumbnail: Upload button (3:2 aspect ratio)
Toolbar

Bold, Italic, Strikethrough, Code, Link, Image, Audio, Video, Quote, Lists (bullet/ordered), Button, More (Code block, Divider, Footnote, LaTeX, etc.)

Content Insertion Method

CRITICAL: Use clipboard paste with HTML content, NOT direct fill or plain Markdown paste.

The Tiptap editor handles HTML paste natively and renders it as rich content. The workflow is:

  1. Convert Markdown to HTML using Python's markdown library
  2. Copy HTML to system clipboard using copy_to_clipboard.py html
  3. Focus the editor content area
  4. Press Cmd+V (macOS) or Ctrl+V (Windows/Linux) to paste

Why HTML paste?

  • fill tool → Content treated as plain text, no formatting
  • Plain Markdown paste → Tiptap does NOT parse Markdown on paste
  • HTML paste → Tiptap renders HTML as rich content (headings, code blocks, links, bold, etc.)

Known limitation: Substack's editor does NOT support HTML tables. Tables will be collapsed into plain text. See Step 0: Pre-Processing for converting tables to images.

Main Workflow

Step 0: Pre-Processing — Convert Tables to Images

Substack does NOT render HTML tables. They collapse into plain text. Any Markdown table must be converted to a PNG image and uploaded separately.

Workflow:

  1. Detect tables in the Markdown file (lines with | forming table structure)

  2. Convert each table to PNG using the diagram-to-image skill:

bash
# Extract table to temp file
cat > /tmp/table1.md << 'TABLE_EOF'
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Data 1   | Data 2   | Data 3   |
TABLE_EOF

# Convert via diagramless.xyz API (auto-detects as table)
node ~/.claude/skills/diagram-to-image/scripts/diagram-to-image.mjs /tmp/table1.md -o /tmp/table1.png
  1. Note the position of each table in the article for later insertion (after which heading/paragraph)

  2. Remove table Markdown from the content before HTML conversion (so it won't appear as plain text in the pasted content)

Image upload happens after pasting the main content — see Step 7.

Step 1: Prepare Content

Read the Markdown file and extract:

  • Title: from YAML frontmatter title field, or H1 header # Title, or filename
  • Subtitle: from YAML frontmatter excerpt or description field
  • Content: full Markdown body (strip YAML frontmatter and any cross-reference links)
Step 2: Convert Markdown to HTML

Use Python's markdown library with tables and fenced_code extensions:

python
import markdown
import re

with open('/path/to/article.md', 'r') as f:
    content = f.read()

# Strip YAML frontmatter
content = re.sub(r'^---\n.*?\n---\n', '', content, flags=re.DOTALL)

# Strip cross-reference links (e.g., English version link)
# Adjust pattern as needed for your articles
content = re.sub(r'^> .* available at.*\n\n?', '', content, flags=re.MULTILINE)

# Convert to HTML
html = markdown.markdown(content, extensions=['tables', 'fenced_code'])

# Write to temp file
with open('/tmp/substack_article.html', 'w') as f:
    f.write(html)

IMPORTANT: Do NOT use nl2br extension - it converts single newlines to <br> tags, causing extra line breaks in the editor.

Step 3: Navigate to Substack

Navigate to the Substack dashboard and create a new post:

# Navigate to Substack dashboard
navigate to: https://{publication}.substack.com/publish

If not logged in, prompt user to log in:

请先登录 Substack,登录完成后告诉我。
Please log in to Substack first, then let me know.
Step 4: Create New Post

From the dashboard, create a new text post:

  1. Click "Create new" in the sidebar
  2. Select "Text post" (or navigate directly to a new post URL)

Alternatively, if the editor is already open with an empty post, proceed directly.

Step 5: Fill Title and Subtitle
  1. Click the title textbox (textbox "title")
  2. Type the article title
  3. Click the subtitle textbox (textbox "Add a subtitle…")
  4. Type the subtitle/excerpt
click: title textbox
fill/type: article title

click: subtitle textbox
fill/type: article subtitle
Step 6: Insert HTML Content (via Clipboard Paste)

CRITICAL: Do NOT use fill tool - it inserts plain text without formatting.

  1. Copy HTML to system clipboard:
bash
python3 /path/to/copy_to_clipboard.py html --file /tmp/substack_article.html
  1. Click the editor content area (.ProseMirror or paragraph element inside it)

  2. Press Cmd+V to paste:

press_key: Meta+v  (macOS)
press_key: Control+v  (Windows/Linux)

This triggers Tiptap's HTML paste handler, which renders the content as rich text with proper formatting.

Step 7: Insert Table Images

If the article had tables converted to images in Step 0, insert them now:

  1. Navigate to the correct position in the editor — click on the paragraph or empty line where the table should appear (after the relevant heading/text)

  2. Click the Image toolbar button (button "Image") — a dropdown menu appears with options: Image, Gallery, Stock photos, Generate image

  3. Click "Image" menuitem from the dropdown — a file chooser dialog opens

  4. Upload the image via file chooser:

    • Playwright MCP: browser_file_upload with the image path
    • Chrome DevTools MCP: upload_file with the image path

Important notes:

  • File path restriction: Playwright MCP only allows file uploads from within allowed roots (project directories). If your image is in /tmp/, copy it to the project directory first
  • Repeat for each table: Position cursor at the correct location, then upload each table image
  • Delete residual text: If table content was pasted as plain text (because it wasn't removed in pre-processing), select it (triple-click to select paragraph) and delete before inserting the image
Show full SKILL.md (579 more words)Show less
Step 8: Verify Draft

After pasting:

  1. Check the "Saved" status indicator (green dot + "Saved" text)
  2. Take a snapshot to verify content structure
  3. Optionally take a screenshot for visual verification

The editor auto-saves, so no explicit save action is needed.

Step 9: Report Completion
草稿已保存到 Substack。请在 Substack 中预览并手动发布。
Draft saved to Substack. Please preview and publish manually.

Post URL: https://{publication}.substack.com/publish/post/{postId}

Complete Example Flow

User: "把 /path/to/my-article.md 发布到 Substack"

0. Pre-process tables (if any)
   - Detect Markdown tables
   - Create styled HTML for each table
   - Render to screenshots (open in browser, screenshot, close tab)
   - Remove table Markdown from content
   - Note insertion positions

1. Read /path/to/my-article.md
   - Extract title from frontmatter or H1
   - Extract subtitle from frontmatter excerpt
   - Get full Markdown content (with tables removed)

2. Convert Markdown to HTML
   - Strip frontmatter
   - Use markdown.markdown() with ['tables', 'fenced_code']
   - Write to /tmp/substack_article.html

3. Navigate to Substack dashboard or new post

4. Check if logged in
   - If not, prompt user to login

5. Fill title and subtitle

6. Copy HTML to clipboard + Paste
   - python3 copy_to_clipboard.py html --file /tmp/substack_article.html
   - Click editor content area
   - Press Cmd+V

7. Insert table images at correct positions
   - For each table: click position → Image button → Image menuitem → file upload

8. Verify draft saved
   - Check "Saved" status

9. Report success
   - "草稿已保存,请手动预览并发布"

Critical Rules

  1. NEVER click "Continue" - This starts the publish flow. Only save as draft (auto-save handles this)
  2. Always convert to HTML first - Plain Markdown will not be parsed by the Tiptap editor
  3. Use clipboard paste - The only reliable way to insert formatted content
  4. Check login status - Prompt user to login if needed
  5. Preserve original file - Never modify the source Markdown file
  6. Report completion - Tell user the draft is saved and needs manual review
  7. No nl2br extension - Causes double line breaks
  8. Tables → images - Pre-process tables before pasting content; upload images after paste
  9. Playwright file paths - Playwright MCP restricts file uploads to allowed roots; copy temp files to project directory before uploading
  10. Resolve publication first - Never hardcode a publication subdomain. Resolve via skill argument, SUBSTACK_PUBLICATION env var, or user prompt before any navigation (see Publication Resolution)
  11. Prefer Playwright MCP - Default to Playwright MCP; only use Chrome DevTools MCP when Playwright is unavailable

Troubleshooting

Content Shows as Plain Text (No Formatting)

If you see raw HTML tags or unformatted text:

  • Cause: Content was inserted using fill tool instead of clipboard paste
  • Solution: Use the copy_to_clipboard.py + Cmd+V method (see Step 6)
Tables Not Rendering (Shows Plain Text)

Substack's Tiptap editor does not support HTML tables. They collapse into inline plain text.

  • Solution: Convert tables to PNG via diagram-to-image skill → upload as images (see Step 0 and Step 7)
  • Alternative: Restructure simple tables as formatted lists
  • If plain text already pasted: Triple-click the plain text paragraph to select it, press Backspace to delete, then insert the table image at that position
Login Required

If page shows login prompt:

请先登录 Substack: https://{publication}.substack.com
登录完成后告诉我。
Editor Not Loading

If editor elements are not visible:

  1. Wait for page to fully load
  2. Take a new snapshot
  3. If still not loading, refresh the page
Clipboard Copy Fails

If copy_to_clipboard.py fails:

  • Ensure dependencies: pip install pyobjc-framework-Cocoa (macOS)
  • Check the HTML file exists and is readable
  • Try copying a smaller test string first

Element Reference

ElementSelector/IdentifierDescription
Title inputtextbox "title"Post title
Subtitle inputtextbox "Add a subtitle…"Post subtitle
Content area.ProseMirror (Tiptap editor)Post content
Save statusbutton "Saved"Auto-save indicator
Preview buttonbutton "Preview"Preview post
Continue buttonbutton "Continue"DO NOT USE - starts publish flow
Settings buttonbutton "Settings"Open settings sidebar
Exit buttonbutton "Exit"Exit editor
Image buttonbutton "Image"Opens image upload dropdown
Image menuitemmenuitem "Image"Opens file chooser for image upload
Author buttonbutton "{PublicationName}"Author/publication selector

Technical Details

Editor Stack
  • Tiptap: A headless, framework-agnostic rich-text editor built on ProseMirror
  • ProseMirror: The underlying rich-text editing framework
  • Paste handling: Tiptap natively parses HTML from clipboard and converts to its internal document model
Content Conversion Pipeline
Markdown file
    ↓ (Python markdown library)
HTML string
    ↓ (copy_to_clipboard.py)
System clipboard (text/html + text/plain)
    ↓ (Cmd+V keyboard shortcut)
Tiptap ProseMirror editor
    ↓ (auto-save)
Substack draft
Supported Formatting

The following Markdown elements are correctly rendered after HTML conversion and paste:

Markdown ElementSubstack SupportNotes
Headings (H2-H6)YesH1 not recommended (title is separate)
Bold / ItalicYes
Inline codeYes
Code blocksYesSyntax highlighting may vary
LinksYes
BlockquotesYes
Bullet listsYes
Ordered listsYes
Horizontal rulesYes
TablesNo → ImageConvert via diagram-to-image skill, upload as image
ImagesManualUpload via Image toolbar button → file chooser

© sugarforever, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/publish-substack-article of sugarforever/01coder-agent-skills.

Open the folder on GitHubat commit e51fb6e

Compare with similar skills

Publish Substack Article next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Publish Substack Article compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Publish Substack Article this skillsugarforever/01coder-agent-skills136—~3.8kAutomated safety check: PassMIT
Web Article Extractordongbeixiaohuo/writing-agent435—~740Automated safety check: PassMIT
Doc Snapshot AgentFelo-Inc/felo-skills248—~5.4kAutomated safety check: PassMIT
Take Doc Screenshotspgplex/pgconsole155—~841Automated safety check: PassApache-2.0
Browser NavigationFactory-AI/factory-plugins110—~2.7kAutomated safety check: PassNone
X Article Draft Uploadermcncarl/yichen-skills4.3k—~2.9kAutomated safety check: WarnCustom licence

Similar skills

  • Web Article Extractor

    dongbeixiaohuo/writing-agent

    使用隔离的 Chrome DevTools MCP 从博客、新闻、公众号等网页提取正文,返回结构化内容,或保存 Markdown 和远程图片。用户要求提取文章、抓取网页正文、保存为 Markdown、下载文章图片或排查正文选择器时调用。

    435 GitHub stars~740 tokensUpdated 3 days ago
    Documents & OfficeAuto-check passed
  • Doc Snapshot Agent

    Felo-Inc/felo-skills

    Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output.

    248 GitHub stars~5.4k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed
  • Take Doc Screenshots

    pgplex/pgconsole

    Take screenshots of the running pgconsole app for documentation.

    155 GitHub stars~841 tokensUpdated 1 mo ago
    DatabasesAuto-check passed
  • Browser Navigation

    Factory-AI/factory-plugins

    Automate browser interactions for web testing, form filling, screenshots, and data extraction.

    110 GitHub stars~2.7k tokensUpdated 21 days ago
    Productivity & AutomationAuto-check passed
  • X Article Draft Uploader

    mcncarl/yichen-skills

    将 Obsidian 或本地 Markdown 文章上传到 X/Twitter Articles 草稿;支持 Markdown pipe 表格转成 X 原生表格块;如果文章最上方有图片,则按当前 X 界面提示的 5:2 封面图上传;如果没有封面图,则跳过封面区域,直接上传标题、正文、表格和正文图片,完成后提醒用户补一张 5:2 封面。X Article 当前实测正文最多 25…

    4.3k GitHub stars~2.9k tokensUpdated 3 days ago
    Writing & ContentAuto-check: warnings
  • Huashu Markdown Publishing Pipeline

    alchaincyf/huashu-md-html

    Converts files and web pages into clean Markdown, then turns Markdown into polished HTML, Word, PDF and EPUB using four templates.

    908 GitHub stars~4.8k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed

More from sugarforever/01coder-agent-skills

All 21 skills in this repo
  • Typography Cover Designer

    sugarforever/01coder-agent-skills

    Designs typography-driven video covers and thumbnails in HTML/CSS and screenshots them with Chrome DevTools at 16:9, 16:10, 9:16 and 3:4.

    136 GitHub stars~3.3k tokensUpdated 3 mo ago
    Auto-check passed
  • Mining Session Skills

    sugarforever/01coder-agent-skills

    Reviews one finished Claude Code session from its exported markdown and decides whether a skill is worth creating, updating or reusing for similar work.

    136 GitHub stars~1.4k tokensUpdated 3 mo ago
    Auto-check passed
  • Subtitle Correction

    sugarforever/01coder-agent-skills

    Fixes speech-recognition mistakes in .srt subtitle files, in Chinese or English, using terms you supply and leaving every timestamp untouched.

    136 GitHub stars~2.3k tokensUpdated 3 mo ago
    Auto-check passed
  • Claude Session Exporter

    sugarforever/01coder-agent-skills

    Lists Claude Code session transcripts and exports them to organized Markdown with a digest, a clean conversation and linked tool-call details.

    136 GitHub stars~1.7k tokensUpdated 3 mo ago
    Auto-check passed
  • Codex Session Manager

    sugarforever/01coder-agent-skills

    Lists, filters and exports local Codex session transcripts to organized Markdown with a digest, timeline and tool-call details, in full or pick-one mode.

    136 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Diagram to Image Converter

    sugarforever/01coder-agent-skills

    Converts Mermaid diagrams and markdown tables into PNG images through a hosted rendering API, for platforms without rich formatting.

    136 GitHub stars~1.9k tokensUpdated 3 mo ago
    Auto-check passed

Questions about Publish Substack Article

What does Publish Substack Article do?

Publish Markdown articles to Substack as drafts. An agent skill from sugarforever/01coder-agent-skills. Publish Substack Article is an agent skill from sugarforever/01coder-agent-skills. Publish Markdown articles to Substack as drafts.

When should I use Publish Substack Article?

Publish Substack Article fits situations like: user wants to publish a Markdown file to Substack; mentions 发布到 Substack; substack article; publish to Substack.

How do I install Publish Substack Article in Claude Code?

Run `npx skills add sugarforever/01coder-agent-skills --skill publish-substack-article -a claude-code`. Or copy the skill folder (skills/publish-substack-article in sugarforever/01coder-agent-skills) into .claude/skills/publish-substack-article in your project. Claude Code loads it when a task matches its description.

How do I install Publish Substack Article in Codex?

Run `npx skills add sugarforever/01coder-agent-skills --skill publish-substack-article -a codex`. Or copy the skill folder (skills/publish-substack-article in sugarforever/01coder-agent-skills) into .agents/skills/publish-substack-article in your project. Codex loads it when a task matches its description.

Can I use Publish Substack Article in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sugarforever/01coder-agent-skills --skill publish-substack-article -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/publish-substack-article, .gemini/skills/publish-substack-article, .github/skills/publish-substack-article and .opencode/skills/publish-substack-article in your project.

What does Publish Substack Article need to run?

Going by SKILL.md and its folder, Publish Substack Article needs the command-line tools its instructions call (pip, node and python3). Our summary lists: Python 3.

Does Publish Substack Article access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Publish Substack Article safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Publish Substack Article use?

Publish Substack Article is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Publish Substack Article use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Publish Substack Article?

Skills that share tags, products or a category with Publish Substack Article: Web Article Extractor (dongbeixiaohuo/writing-agent, 435 stars), Doc Snapshot Agent (Felo-Inc/felo-skills, 248 stars), Take Doc Screenshots (pgplex/pgconsole, 155 stars) and Browser Navigation (Factory-AI/factory-plugins, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Publish Substack Article?

sugarforever (a GitHub user) maintains it in sugarforever/01coder-agent-skills, which has 136 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on June 19, 2026.

Source: sugarforever/01coder-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.