PostHelper 1.2.1

dotnet tool install --global PostHelper --version 1.2.1
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local PostHelper --version 1.2.1
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=PostHelper&version=1.2.1
                    
nuke :add-package PostHelper --version 1.2.1
                    

πŸ“ PostHelper CLI

Improve your tweets and social media posts with AI powered by the GitHub Copilot SDK.

.NET License GitHub Copilot

✨ Features

  • 🎨 Interactive UI - Beautiful ASCII art header, status display, and menu-driven workflow
  • 🎯 Multiple Styles - Professional, Friendly, or Hype modes
  • 😊 Emoji Control - Low, Default, or High emoji levels
  • πŸ“± Multi-Platform Support - Smart character limits for Twitter (280), Bluesky (300), Mastodon (500), Threads (500), LinkedIn (3000), Facebook (63206), or Custom
  • πŸ€– Smart Model Selection - Auto-selects efficient models (gpt-5-mini, gpt-4.1)
  • πŸ“‹ Clipboard Support - Copy improved tweets directly to clipboard
  • πŸ“œ Session History - View all improvements with platform and length info
  • πŸ“₯ Dual Mode - Interactive UI or CLI for scripting/piping
  • βš™οΈ Settings Persistence - Remember your preferred platform and custom lengths
  • πŸ”— URL-to-Tweet - Draft tweets from blog posts and articles with content preview and optional URL inclusion

πŸ“‹ Prerequisites

Installing GitHub Copilot CLI

# Windows (WinGet)
winget install GitHub.Copilot

# macOS/Linux (Homebrew)
brew install copilot-cli

# All platforms (npm)
npm install -g @github/copilot

Then authenticate:

copilot
# Type /login and follow the prompts

πŸš€ Installation

dotnet tool install -g PostHelper

From Source

git clone https://github.com/jamesmontemagno/post-helper-cli.git
cd post-helper-cli
dotnet build

πŸ“– Usage

🧰 dnx in .NET 10 (run without installing)

.NET 10 includes dotnet dnx (and on Windows a dnx shim) to execute a .NET tool package from NuGet without permanently installing itβ€”think of it like npx, but for .NET tools.

For PostHelper, this means you can do:

dnx PostHelper

That will restore/run the PostHelper tool package and launch the interactive UI.

Passing arguments to the tool

dnx has its own options (like --version, --source, etc.). To pass arguments through to the tool itself, use --:

# Show PostHelper help (forwarded)
dnx PostHelper -- -h

# Improve a tweet in one shot
dnx PostHelper -- "Check out my new blog post!" --style Friendly --emoji Default

Pinning a version

You can specify a version using @:

dnx PostHelper@1.2.3

If you’d rather install it permanently, use the .NET tool install approach below.

Simply run without arguments for the full interactive experience:

post-helper

This launches the interactive UI with:

  • ASCII art header and Copilot status check
  • Auto-selected efficient model (gpt-5-mini or gpt-4.1)
  • Menu to enter tweets, change style/emoji, view history
  • Side-by-side comparison of original vs improved
  • One-click copy to clipboard

CLI Mode

For scripting and piping, use arguments:

# With tweet as argument
post-helper "Check out my new blog post!"

# Pipe from stdin
echo "Check out my new blog post!" | post-helper

URL-to-Tweet Mode

Draft tweets directly from blog posts and articles:

Interactive Mode

Simply run post-helper and select "πŸ”— Draft from URL":

  • Enter the URL of your blog post or article
  • System fetches and shows a content preview
  • Confirm if you want the URL included in the tweet
  • AI drafts a tweet from the content
  • Option to improve the draft further with your current style/emoji settings
CLI Mode
# Draft a tweet from a URL
post-helper --url "https://example.com/blog-post"

# With style and emoji options
post-helper --url "https://myblog.com/article" --style Friendly --emoji High

# Specify model
post-helper --url "https://example.com/post" --model gpt-4o

# Pipe to clipboard
post-helper --url "https://example.com/blog" | pbcopy

The AI will:

  1. Fetch and extract the article content
  2. Show you a preview of what was extracted
  3. Ask if you want the URL included in the tweet
  4. Draft a compelling tweet that captures the key points
  5. Automatically save to history for later reference

Style Options

# Professional style (default)
post-helper "Check out my new blog post!" --style Professional

# Friendly style
post-helper "Check out my new blog post!" --style Friendly

# Hype style
post-helper "Check out my new blog post!" --style Hype

Emoji Levels

# Low emojis (0-1)
post-helper "Check out my new blog post!" --emoji Low

# Default emojis (1-3)
post-helper "Check out my new blog post!" --emoji Default

# High emojis (3-5)
post-helper "Check out my new blog post!" --emoji High

Platform Selection

In interactive mode, select your platform to set character limits:

  • 𝕏 Twitter - 280 characters
  • πŸ¦‹ Bluesky - 300 characters
  • 🐘 Mastodon - 500 characters
  • πŸ“± Threads - 500 characters
  • πŸ’Ό LinkedIn - 3000 characters
  • πŸ“˜ Facebook - 63206 characters
  • ✏️ Custom - Set your own limit

The app remembers your preferred platform and custom lengths between sessions.

Model Selection

# Specify model directly
post-helper "Check out my new blog post!" --model gpt-4o

# Interactive model picker (default when --model not specified)
post-helper "Check out my new blog post!"

Combined Options

post-helper "Just shipped a new feature!" --style Hype --emoji High --model gpt-4o

Piping Output

# Pipe improved tweet to clipboard (macOS)
post-helper "Check out my new blog post!" | pbcopy

# Pipe improved tweet to clipboard (Windows)
post-helper "Check out my new blog post!" | clip

πŸ”§ CLI Options

Option Short Description Default
--style -s Style/tone (Professional, Friendly, Hype) Professional
--emoji -e Emoji level (Low, Default, High) Default
--model -m AI model to use Auto (gpt-5-mini)
--url -u URL to fetch and draft a tweet from None

πŸ” Environment Variables

Variable Description
GH_TOKEN GitHub token with Copilot access (optional, uses CLI auth otherwise)

Optional .env for local development

If you prefer, you can set GH_TOKEN via an environment file in your shell/session (don’t commit it):

  • Create a file named .env in the repo root
  • Add:
    • GH_TOKEN=...

How you load .env depends on your shell and tooling. The app also works without it if you’re already authenticated with the GitHub Copilot CLI.

πŸ—οΈ .NET 10 commands (from source)

These are the modern equivalents you’d use instead of any dnx-style instructions.

Build

dotnet build

Run (project)

dotnet run --project .\PostHelper.Cli\PostHelper.Cli.csproj

Run with arguments

dotnet run --project .\PostHelper.Cli\PostHelper.Cli.csproj -- "Check out my new blog post!" --style Friendly --emoji Default

Pack & install as a local tool (optional)

dotnet pack -c Release
dotnet tool install --global --add-source .\PostHelper.Cli\bin\Release PostHelper

πŸ“¦ Dependencies

πŸ“„ License

MIT License - see LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.2.1 153 1/26/2026
1.1.0 116 1/25/2026
1.0.2 112 1/25/2026
1.0.1 118 1/25/2026