AetherPost - Promotion as Code
🚀 AI-powered social media automation for developers
AetherPost automates your app promotion across social media platforms using AI-generated content and Infrastructure-as-Code principles.
✨ Features
OSS Edition (Free)
- 🎯 Declarative configuration - Define campaigns in YAML
- 🤖 AI-generated content - OpenAI GPT-powered posts
- 📱 Multi-platform support - Twitter, Reddit, YouTube, Bluesky, Instagram (5 platforms)
- 🆕 Universal profile management - Sync profiles across all platforms automatically
- 🔒 Secure - Encrypted credential storage with .env.aetherpost
- ⚡ Auto-setup mode - Zero-prompt initialization for AI tools
- 📊 Smart notifications - Slack/LINE preview notifications
- 🎨 Style options - Casual, professional, technical, humorous
- 🌍 Multi-language - 20+ languages supported
- 📝 Usage limits - 50 posts/day, 5 campaigns
Key Capabilities
- 🚀 Two setup modes - Auto-setup (Claude Code) vs Interactive prompts
- 🔄 Terraform-style workflow - init, plan, apply commands
- 📱 Notification modes - Preview confirmations or auto-posting
- 🎯 API tier system - Starter, Recommended, Advanced, Complete
- ⚡ Production ready - 100% tested with real API validation
🚀 Quick Start
AetherPost supports two setup modes based on file detection:
🤖 Auto Setup Mode
For automated workflows with pre-configured files
# 1. Install AetherPost
pip install aetherpost
# 2. Pre-create configuration files:
# - campaign.yaml (project settings)
# - .env.aetherpost (API keys)
# 3. Auto-initialize (zero prompts)
aetherpost init
# 4. Preview and deploy
aetherpost plan && aetherpost apply
📝 Interactive Setup Mode (Manual Configuration)
For step-by-step guided setup
# 1. Install AetherPost
pip install aetherpost
# 2. Interactive setup with prompts
aetherpost init
# 3. Preview and deploy
aetherpost plan && aetherpost apply
Auto-Detection: If
campaign.yamlexists → Auto Setup Mode, otherwise → Interactive Setup Mode
📋 Configuration Examples
Complete campaign.yaml
name: "my-awesome-app"
concept: "AI-powered task manager that learns your habits"
url: "https://github.com/user/my-awesome-app"
platforms:
- twitter
- reddit
- youtube
content:
style: professional # casual, professional, technical, humorous
action: "Try it free!"
language: en # en, ja, es, fr, de, ko, zh, pt, ru, ar, etc.
hashtags:
- "#AI"
- "#ProductivityTool"
- "#OpenSource"
limits:
free_tier: true
max_posts_per_day: 50
notifications:
enabled: true # Send preview notifications
auto_apply: false # Require confirmation (set true for auto-posting)
# Optional: Template hint for advanced features
template: "production" # starter, production, enterprise
API Configuration (.env.aetherpost)
# AI Services (Required)
OPENAI_API_KEY=sk-proj-your_openai_key_here
# Twitter (Required for Twitter platform)
TWITTER_API_KEY=your_twitter_api_key_here
TWITTER_API_SECRET=your_twitter_api_secret_here
TWITTER_ACCESS_TOKEN=your_twitter_access_token_here
TWITTER_ACCESS_TOKEN_SECRET=your_twitter_access_token_secret_here
# Reddit (Required for Reddit platform)
REDDIT_CLIENT_ID=your_reddit_client_id_here
REDDIT_CLIENT_SECRET=your_reddit_client_secret_here
REDDIT_USERNAME=your_reddit_username_here
REDDIT_PASSWORD=your_reddit_password_here
# YouTube (Required for YouTube platform)
YOUTUBE_CLIENT_ID=your_youtube_client_id_here
YOUTUBE_CLIENT_SECRET=your_youtube_client_secret_here
# Notifications (Optional)
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/your/webhook/url
Multi-Language Examples
# Japanese Campaign
content:
style: casual
action: "今すぐ試してみてください!"
language: ja
hashtags: ["#AI", "#生産性", "#ツール"]
# Spanish Campaign
content:
style: professional
action: "Pruébalo ahora"
language: es
hashtags: ["#IA", "#Productividad"]
Supported Languages: English (en), Japanese (ja), Spanish (es), French (fr), German (de), Korean (ko), Chinese (zh), Portuguese (pt), Russian (ru), Arabic (ar), and more.
🔧 Commands (Terraform-style)
| Command | Description | Mode |
|---|---|---|
aetherpost init |
Initialize workspace (auto-detects existing config) | Auto/Interactive |
aetherpost plan |
Preview AI-generated content for all platforms | Both |
aetherpost apply |
Execute campaign (respects notification settings) | Both |
aetherpost status |
Check campaign status and analytics | Both |
aetherpost auth |
Manage API authentication | Both |
Notification Modes
- Preview Mode (
notifications.enabled: true) - Sends preview notification before posting - Auto Mode (
notifications.auto_apply: true) - Posts immediately without confirmation
🔑 API Requirements
Quick Reference
| Level | APIs Required | Monthly Cost | Setup Time |
|---|---|---|---|
| Starter | OpenAI + Twitter | $5-15 | ~10 min |
| Recommended | $5-15 | ~20 min | |
| Advanced | + YouTube | $10-25 | ~30 min |
| Complete | + Bluesky + Instagram | $15-35 | ~45 min |
💡 Auto Setup: The
aetherpost initcommand guides you through API collection with direct setup links and validation.
📖 Documentation
For AI Tools & Claude Code
| Document | Purpose | Use Case |
|---|---|---|
| AUTO_SETUP_README.md | Auto-setup guide | Zero-prompt automation |
| sample-campaign.yaml | Configuration template | File generation |
| sample.env.aetherpost | API keys template | Environment setup |
For Manual Setup
| Document | Purpose |
|---|---|
| Getting Started | Step-by-step guide |
| API Requirements | API setup levels |
| Platform Setup | Platform integration |
🤝 Contributing
AetherPost welcomes all contributors! We're an AI-friendly OSS project that supports modern development workflows.
🤖 AI-Assisted Development Welcome
- ✅ Claude Code, GitHub Copilot, and other AI tools fully supported
- ✅ AI-generated code accepted (with proper review and testing)
- ✅ Co-author credit for AI contributions encouraged
🔰 Beginner-Friendly
- 📖 GUI Setup Guide - No command line required!
- 📋 Code Guidelines - Comprehensive standards
- 🛠️ Contributing Guide - Step-by-step process
🎯 Contribution Opportunities
- New platform connectors (Instagram, LinkedIn, TikTok)
- AI provider integrations (Google Gemini, local models)
- Analytics and visualization
- Documentation and tutorials
- Bug fixes and improvements
Get started: CONTRIBUTING.md | Need help? GitHub Discussions
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
Release files for aetherpost 1.11.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aetherpost-1.11.1.tar.gz | 275.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aetherpost-1.11.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 620.7 kB
Release files / aetherpost-1.11.1.tar.gz
| Download URL | aetherpost-1.11.1.tar.gz |
|---|---|
| Size | 275.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bed04401acdd9fdf571c2580f9976b3c29131e8618c442ebad6ea4d474af0735
|
|
BLAKE2b-256 checksum How to use checksums |
8825620918fa59abf091bacb2a299730f716174b8ed07a7f843b5bfa497bd9c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / aetherpost-1.11.1-py3-none-any.whl
| Download URL | aetherpost-1.11.1-py3-none-any.whl |
|---|---|
| Size | 344.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f352582cb7b646f62916b38d81cf0588ff972be7dbdf9e6a948969e312da767
|
|
BLAKE2b-256 checksum How to use checksums |
65f9a278ddf7952061a8df85a5dcefe67dfc304905c90ad913f7a1c197194fa9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|