hyper-post
v0.1.0
Published
A unified social media posting tool for underground platforms - publish to multiple social networks in one go
Maintainers
Readme
HyperPost
✦ A unified social media posting tool for underground platforms — publish to multiple social networks in one go.
Overview
HyperPost is a command-line tool that lets you publish content to multiple social media platforms simultaneously. Built for the forgotten edge — fast, minimal, and resilient. Perfect for developers, content creators, and organizations who want to amplify their reach across alternative social networks.
Part of the HyperDrift ecosystem: open-source tools for raw potential and independent exploration.
Features
- 🚀 Multi-platform posting - Post to multiple social networks in one command
- 🔒 Secure credential management - Environment-based configuration
- 📝 Rich content support - Titles, URLs, tags, and formatted text
- 🛠️ CLI-first design - Perfect for automation and scripting
- 🎯 Underground focus - Support for alternative social platforms
- 📊 Detailed reporting - Clear success/failure feedback for each platform
Supported Platforms
| Platform | Status | Notes | |----------|--------|-------| | Mastodon | ✅ Ready | Federated social network | | Bluesky | ✅ Ready | Decentralized social network | | Discord | ✅ Ready | Community servers | | Reddit | ✅ Ready | Community discussions | | HackerNews | 🔄 Planned | Tech community | | Dev.to | 🔄 Planned | Developer community | | Medium | 🔄 Planned | Publishing platform | | Tumblr | 🔄 Planned | Creative community | | Pinterest | 🔄 Planned | Visual discovery |
Installation
As a global CLI tool
# Install globally
pnpm add -g hyper-post
# Or with npm
npm install -g hyper-post
# Or with yarn
yarn global add hyper-postAs a project dependency
# Add to your project
pnpm add hyper-post
# Or with npm
npm install hyper-post
# Or with yarn
yarn add hyper-postQuick Start
Option 1: Comprehensive Setup (Recommended)
Use the guided account creation wizard that helps you create genuine social media accounts with complete profiles:
# (Optional) Customize default template values in .hyperpost-config.json
# The wizard will use these as prefilled defaults
# Run the comprehensive setup wizard
hyper-post setup
# This will:
# 1. Create consistent branding templates (saved persistently)
# 2. Guide you through account creation on each platform
# 3. Help you set up complete profiles (bio, website, images, etc.)
# 4. Generate API credentials automatically
# 5. Save everything to .env and .hyperpost-signup.json
# Templates persist across sessions - reuse branding on new platforms!
# Run setup again to add more platforms using existing templates
# Then post to all configured platforms
hyper-post post -c "Hello from HyperPost! 🚀" -t "My First Post" -u "https://hyperdrift.io"
# Check posting history and analytics
hyper-post history
hyper-post history --platform mastodon
hyper-post analytics
hyper-post analytics --platform bluesky --days 7
hyper-post history --clear # Clear history if needed✨ Features
🛡️ Duplicate Prevention
HyperPost automatically prevents duplicate posts to the same platform within a 24-hour window:
- Content-based hashing: SHA-256 hash of title + content + URL
- Platform-specific tracking: Different platforms can receive the same content
- Time-windowed: Old posts (24+ hours) are automatically cleaned up
- History management: View, filter, and clear posting history
# View all posting history
hyper-post history
# Filter by platform
hyper-post history --platform mastodon
# Clear history (allows reposting)
hyper-post history --clear🗄️ PostgreSQL Database
HyperPost uses PostgreSQL for robust post tracking, deduplication, and analytics:
# Set up PostgreSQL database
createdb hyperpost
# Generate Prisma client
pnpm db:generate
# Create/update database schema
pnpm db:push
# View database in browser
pnpm db:studio
# Create migrations (production)
pnpm db:migrate
# Run database seeds (optional)
pnpm db:seed⚙️ Persistent Configuration
- Prisma ORM: Type-safe database operations
- Post tracking: Full history with platform-specific URLs
- Deduplication: SHA-256 content hashing with time windows
- Analytics: Platform usage stats and posting patterns
- Signup templates: Reusable account creation templates
📊 Analytics & Insights
# View comprehensive analytics
hyper-post analytics
# Platform-specific analytics
hyper-post analytics --platform mastodon
# Recent activity (last 7 days)
hyper-post analytics --days 7
# Full posting history with URLs
hyper-post history --limit 100Option 2: Manual Configuration
- Set up your credentials in a
.envfile:
# Copy the example
cp .env.example .env
# Edit with your credentials
nano .env- Post to all configured platforms:
hyper-post post -c "Hello from HyperPost! 🚀" -t "My First Post" -u "https://hyperdrift.io"- Post to specific platforms:
hyper-post post -c "Tech update!" -p "mastodon,bluesky,reddit"🎯 Why HyperPost?
HyperPost stands out from other social media automation tools:
✨ Genuine Account Creation
- Complete profiles with bios, websites, locations, and images
- Consistent branding across all platforms
- Professional appearance that builds trust and credibility
- Guided setup ensures no steps are missed
🔧 Developer-Friendly
- Modular architecture - easily add new platforms
- TypeScript with full type safety
- Comprehensive error handling and logging
- Environment-based configuration for security
🚀 Production-Ready
- Generic and publishable - can be used by anyone
- Multi-platform support - post to all networks simultaneously
- Rich content support - titles, URLs, hashtags, formatting
- Rate limiting awareness and automatic retries
💾 Persistent Data Management
- Signup templates saved in
.hyperpost-signup.json - Reuse branding across multiple platforms
- Completed accounts tracked persistently
- Automatic .env generation from stored data
- Session continuity - templates persist across runs
Configuration
Create a .env file in your project root with your social media credentials:
# Mastodon
MASTODON_INSTANCE=your-instance.social
MASTODON_ACCESS_TOKEN=your_access_token_here
# Bluesky
BLUESKY_IDENTIFIER=your-handle.bsky.social
BLUESKY_PASSWORD=your_app_password
# Discord
DISCORD_TOKEN=your_bot_token
DISCORD_CHANNEL_ID=your_channel_id
# Future platforms...
# REDDIT_CLIENT_ID=your_client_id
# REDDIT_CLIENT_SECRET=your_client_secret
# REDDIT_USERNAME=your_username
# REDDIT_PASSWORD=your_passwordGetting Platform Credentials
Mastodon
- Go to your Mastodon instance → Preferences → Development
- Create a new application
- Copy the access token
- Set
MASTODON_INSTANCEto your instance domain (e.g.,mastodon.social)
Bluesky
- Go to bsky.app → Settings → Privacy and security → App passwords
- Create a new app password
- Use your full handle (with .bsky.social) as identifier
- Go to Reddit Apps
- Click "Create App" or "Create Another App"
- Type:
script - Name:
HyperPost - Description:
Multi-platform social media posting - About URL: Leave blank
- Redirect URI:
http://localhost:8080 - Click "Create app"
- Copy the client_id (under the app name)
- Copy the secret (labeled "secret")
Discord
- Go to Discord Developer Portal
- Create a new application → Bot
- Copy the bot token
- Get your channel ID by enabling Developer Mode in Discord and right-clicking the channel
Usage
CLI Commands
# Show help
hyper-post --help
# Post to all platforms
hyper-post post -c "Your content here"
# Post with title and URL
hyper-post post -c "Article content" -t "Article Title" -u "https://example.com"
# Post with tags
hyper-post post -c "Content" --tags "tech,opensource,web3"
# List configured platforms
hyper-post platforms
# Post to specific platforms only
hyper-post post -c "Content" -p "mastodon,bluesky,reddit"Programmatic Usage
import { HyperPost, SocialPost } from 'hyper-post';
// Load credentials from environment
const credentials = {
mastodon: {
instance: process.env.MASTODON_INSTANCE!,
accessToken: process.env.MASTODON_ACCESS_TOKEN!
},
bluesky: {
identifier: process.env.BLUESKY_IDENTIFIER!,
password: process.env.BLUESKY_PASSWORD!
}
};
const hyperPost = new HyperPost(credentials);
const post: SocialPost = {
content: "Hello from HyperPost!",
title: "My First Post",
url: "https://hyperdrift.io",
tags: ["tech", "opensource"]
};
// Post to all platforms
const result = await hyperPost.postToAll(post);
console.log(`Posted successfully to ${result.successful} platforms`);
// Post to specific platforms
const specificResult = await hyperPost.postToPlatforms(['mastodon'], post);Project Status
MVP / Actively maintained / Beta
Contributing
Contributions are welcome. Feel free to open an issue, suggest improvements, or submit a pull request. Together we sharpen the edge.
Development Setup
# Clone the repository
git clone https://github.com/hyperdrift-io/hyper-post.git
cd hyper-post
# Install dependencies
pnpm install
# Start development
pnpm dev
# Build for production
pnpm build
# Run tests
pnpm testAPI Reference
Classes
HyperPost
Main class for managing multi-platform posting.
Methods:
postToAll(content: SocialPost): Promise<MultiPlatformResult>postToPlatforms(platforms: SupportedPlatforms[], content: SocialPost): Promise<MultiPlatformResult>postToPlatform(platform: SupportedPlatforms, content: SocialPost): Promise<PostingResult>getConfiguredPlatforms(): string[]isPlatformConfigured(platform: SupportedPlatforms): boolean
Types
interface SocialPost {
content: string;
title?: string;
url?: string;
imageUrl?: string;
tags?: string[];
}
interface PostingResult {
platform: string;
success: boolean;
postId?: string;
url?: string;
error?: string;
}
interface MultiPlatformResult {
results: PostingResult[];
successful: number;
failed: number;
}License
MIT License © [HyperDrift]
✦ Open-source tools for the forgotten edge.
