Herald ๐ข
Automated viral tweet generation and scheduling for developers who ship
Herald helps you announce your work on Twitter/X without the hassle. It detects releases, generates engaging tweets using LLMs, and posts them at optimal times.
Features
- ๐ Event Detection - Automatically detect releases from GitHub, crates.io, npm
- ๐ค LLM-Powered Generation - Generate viral tweets using Claude, GPT-4, or local Ollama
- ๐ฆ Twitter Integration - Post directly to Twitter/X using the v2 API
- ๐ Smart Scheduling - Queue tweets for optimal posting times
- ๐ Templates - Pre-built templates for common announcement types
- ๐งต Thread Support - Post multi-tweet threads automatically
Installation
Or build from source:
Quick Start
# Initialize configuration
# Generate a tweet for your latest release
# Post immediately
# Schedule for later
# Use a template
Configuration
Herald stores its configuration at ~/.config/herald/config.toml:
[]
= "your-api-key"
= "your-api-secret"
= "your-access-token"
= "your-access-token-secret"
[]
= "anthropic" # or "openai", "ollama"
= "your-api-key"
= "claude-sonnet-4-20250514"
= 0.8
[]
= true
= false
= "casual" # casual, professional, hype, technical
= 280
= true
[]
= 4
= ["09:00", "12:00", "15:00", "18:00"]
= "America/New_York"
= 5
[[]]
= "herald"
= "moltenlabs/herald"
= "herald"
= "Tweet automation for developers"
= ["release", "major_feature"]
Environment Variables
Credentials can also be set via environment variables:
# or OPENAI_API_KEY
# for private repos
Commands
herald init
Create default configuration file.
herald generate
Generate tweets from detected events or manually specified parameters.
# Auto-detect from configured projects
# Specify project and event type
# Generate multiple variations
# Preview without posting
herald post <text>
Post a tweet immediately.
# Single tweet
# Post a thread (separate with ---)
herald schedule <text>
Schedule a tweet for later.
# Schedule at next available slot
# Schedule at specific time
herald queue
Manage scheduled tweets.
# List pending tweets
# Cancel a scheduled tweet
# Reschedule
# Clean up old entries
# Show statistics
herald process
Process due tweets (for cron jobs).
# Run every 15 minutes via cron
herald template
Generate tweets from templates.
# Crate release
# Open source announcement
# Feature announcement
# Milestone
herald detect
Detect events from configured projects.
# All projects
# Specific project
Tweet Generation
Herald uses LLMs to generate engaging tweets. You can customize the generation:
Tones
casual- Developer-friendly, conversationalprofessional- Informative, crediblehype- Exciting, high energytechnical- Focus on technical details
Templates
Herald includes templates for common scenarios:
- Crate/package releases
- Open source announcements
- Feature launches
- Milestone celebrations
- Thread openers
Automation
GitHub Actions
name: Announce Release
on:
release:
types:
jobs:
announce:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Herald
run: cargo install herald
- name: Generate and Post
env:
TWITTER_API_KEY: ${{ secrets.TWITTER_API_KEY }}
TWITTER_API_SECRET: ${{ secrets.TWITTER_API_SECRET }}
TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
herald generate --project ${{ github.event.repository.name }} --event release
Cron
# Process scheduled tweets every 15 minutes
# Check for new releases daily
License
MIT OR Apache-2.0
Part of the Molten Ecosystem
Herald is part of the Molten suite of developer tools.