skills$openclaw/substack-formatter
maddiedreese8.3k

by maddiedreese

substack-formatter – OpenClaw Skill

substack-formatter is an OpenClaw Skills integration for writing workflows. Transform plain text into Substack article format with proper HTML formatting for copy-paste into Substack editor.

8.3k stars9.6k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026writing

Skill Snapshot

namesubstack-formatter
descriptionTransform plain text into Substack article format with proper HTML formatting for copy-paste into Substack editor. OpenClaw Skills integration.
ownermaddiedreese
repositorymaddiedreese/substack-formatter
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @maddiedreese/substack-formatter
last updatedFeb 7, 2026

Maintainer

maddiedreese

maddiedreese

Maintains substack-formatter in the OpenClaw Skills directory.

View GitHub profile
File Explorer
8 files
.
_meta.json
294 B
copy_to_substack.py
5.4 KB
examples.md
3.9 KB
formatter.py
13.4 KB
minimal_formatter.py
3.9 KB
README.md
2.6 KB
SKILL.md
3.1 KB
test_formatter.py
5.2 KB
SKILL.md

name: substack-formatter description: Transform plain text into Substack article format with proper HTML formatting for copy-paste into Substack editor.

Substack Article Formatter

Summary

Transform plain text into professional Substack format. Handles the technical formatting to ensure bold/italic/headers work correctly when pasted into Substack editor.

What This Skill Does

  • Formats text for Substack with proper structure and spacing
  • Converts to HTML format that Substack editor recognizes
  • Preserves your content - only changes visual presentation
  • Ensures copy-paste works with bold, italic, headers, bullets preserved

Technical Solution

Problem: Substack editor treats raw markdown as plain text
Solution: Convert to HTML and copy as text/html format

Usage

Basic Formatting

Format this for Substack:
[Your plain text content here]

With Minimal Formatting

Format for Substack (minimal):
[Your plain text content here]

Formatting Options

Standard Format

  • Proper paragraph structure
  • Clean HTML output
  • Preserved content with better readability

Minimal Format

  • Pure spacing improvements
  • No emphasis changes
  • Exact content preservation

Formatting Features

Structure

  • Clean paragraphs for better readability
  • Proper spacing between sections
  • Clear visual hierarchy

HTML Output

  • Bold text: <strong> tags
  • Emphasis: <em> tags
  • Headers: <h2>, <h3> for sections
  • Lists: <ul><li> for bullets, <ol><li> for numbered
  • Paragraphs: Proper <p> tag structure

Copy-Paste Process

  1. Run formatter → Get HTML output
  2. Use included copy script → Copies as text/html format
  3. Paste into Substack → Formatting preserved perfectly
  4. No manual formatting needed → Bold/italic/headers work automatically

Examples

Input (Plain Text):

I used to think being productive meant doing more things. Last week I tried something different. I did fewer things but focused completely on each one. The result was surprising. I got more done in less time and felt less stressed. Sometimes the answer isn't addition, it's subtraction.

Output (Formatted for Substack):

<p><strong>I used to think being productive meant doing more things.</strong></p>

<p>Last week I tried something different:</p>

<p>I did fewer things.<br>
But focused completely on each one.</p>

<p>The result was surprising.</p>

<p><em>I got more done in less time and felt less stressed.</em></p>

<p><strong>Sometimes the answer isn't addition, it's subtraction.</strong></p>

<p>What's one thing you could subtract from your routine?</p>

Tools Included

  • formatter.py - Main formatting script
  • copy_to_substack.py - Converts to HTML and copies correctly
  • test_formatter.py - Test with examples
  • Examples and templates for each structure type

Philosophy

Format for readability, preserve your voice. This tool improves visual presentation while keeping your message and personality intact.

README.md

Substack Article Formatter

Transform plain text into professional Substack format. Ensures proper HTML formatting so bold/italic/headers work correctly when pasted into Substack editor.

✨ Key Features

  • Clean formatting for better readability
  • Proper HTML output that Substack editor recognizes
  • Copy-paste ready with formatting preserved
  • Minimal or standard formatting options

🚀 Quick Start

# Basic formatting
python3 formatter.py "Your content here"

# With specific structure  
python3 formatter.py "Your content here" micro-story

# Format and copy to clipboard (Linux)
python3 formatter.py "Your content here" | python3 copy_to_substack.py

📋 Copy-Paste Process

  1. Format your content using the formatter
  2. Copy as HTML using the copy script
  3. Paste into Substack - formatting preserved automatically!

Linux/WSL:

# Install dependencies
sudo apt install pandoc xclip  # Ubuntu/Debian
sudo pacman -S pandoc xclip    # Arch

# Format and copy
python3 formatter.py "Your text" > output.html
python3 copy_to_substack.py "$(cat output.html)"

macOS:

brew install pandoc
# Use pbcopy instead of xclip (modify copy script as needed)

🎯 Formatting Options

Standard Formatting

Clean paragraph structure with proper HTML tags

Minimal Formatting

Pure spacing improvements with exact content preservation

🛠 Files

  • formatter.py - Main formatting engine
  • copy_to_substack.py - HTML clipboard utility
  • test_formatter.py - Test all formats
  • examples.md - Before/after examples
  • SKILL.md - Complete documentation

🧪 Testing

# Test all formatting types
python3 test_formatter.py

# Test specific format
python3 formatter.py "Your content" micro-story

🔧 Integration with Clawdbot

Just tell Clawdbot:

"Format this for Substack: [your content]"

Or be specific:

"Format this for Substack as a micro-story: [your content]"

The skill handles:

  • Viral pattern application
  • HTML conversion
  • Copy instructions
  • Formatting verification

⚠️ Technical Notes

Why HTML conversion is needed: Substack editor treats raw markdown as plain text. The solution is converting to HTML and copying as text/html format so Substack recognizes the formatting.

Dependencies:

  • pandoc - Markdown to HTML conversion
  • xclip (Linux) - Clipboard management with MIME types
  • pbcopy (macOS) - Alternative clipboard tool

🎯 Philosophy

Format for readability, preserve your voice. This tool improves visual presentation while keeping your message and personality intact.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install substack-formatter?

Run openclaw add @maddiedreese/substack-formatter in your terminal. This installs substack-formatter into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/maddiedreese/substack-formatter. Review commits and README documentation before installing.