Skip to main content
Glama
1nc0gn30

omnipost-social-engine

by 1nc0gn30
README.md
# ๐Ÿš€ Omnipost Social Engine

<div align="center">

[![CI Matrix](https://img.shields.io/github/actions/workflow/status/omnipost/omnipost-social-engine/ci.yml?branch=main&label=CI%20Matrix&logo=github)](https://github.com/omnipost/omnipost-social-engine/actions)
[![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?logo=python)](https://pypi.org/project/omnipost-social-engine/)
[![MCP Compliant](https://img.shields.io/badge/MCP-Native%20Server-9334e6?logo=anthropic)](https://modelcontextprotocol.io/)
[![Google Material 3](https://img.shields.io/badge/UI-Google%20Material%203-1a73e8?logo=google)](./public/index.html)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

**The unified, type-safe multi-platform social media orchestration framework for Python & AI Agents.**

[Web Studio](./public/index.html) โ€ข [MCP Guide](./docs/MCP_GUIDE.md) โ€ข [Viral Hooks](./docs/VIRAL_HOOK_FORMULAS.md) โ€ข [Platform Limits](./docs/PLATFORM_LIMITS_GUIDE.md) โ€ข [Examples](./examples/README.md)

</div>

---

## ๐ŸŒŸ Overview

**Omnipost Social Engine** eliminates the friction of managing cross-platform developer advocacy, launch campaigns, and technical content syndication. Write your post once, simulate how it looks across **Twitter / X**, **LinkedIn**, **BlueSky**, **Threads**, and **Mastodon**, optimize opening hooks with psychological heuristics, and broadcast safely with async leaky-bucket rate limiters.

Equipped with a **Google Material 3 Light Mode Web Studio** (`public/index.html`) and a native **Model Context Protocol (MCP)** server, Omnipost can be operated by human creators or fully autonomous AI coding assistants (Claude Desktop, Cursor, Cline, Zed).

---

## โœจ Key Features

* **๐ŸŽจ Google Material 3 Studio (`public/index.html`)**:
  * 0 external font/cookie tracking scripts, fast, private, offline-first.
  * Live circular character counter progress ring with platform-aware limits.
  * Algorithmic Virality Score meter (0โ€“100) with diagnostic breakdown.
* **โœ๏ธ Multi-Platform Composer & Simulator**:
  * Real-time side-by-side mockups of Twitter, LinkedIn (with 210-char `see more` cutoff), BlueSky, and Threads.
  * 1-Click Unicode mathematical typography toolbar (Bold, Italic, Monospace, Strikethrough).
* **๐Ÿงต Smart Thread Splitter**:
  * Auto-split essays, markdown docs, or newsletters into numbered thread cards.
  * Look-ahead sentence boundary packing (<280 chars) with draggable reordering.
* **๐ŸŽฃ High-Converting Viral Hook Generator**:
  * 15+ battle-tested psychological copywriting frameworks (Curiosity Gap, Contrarian Hot Takes, Playbooks, Shocking Metrics).
* **๐Ÿค– Native Model Context Protocol (MCP) Server**:
  * Seamless integration with Claude Desktop, Cursor, Cline, and Zed.
  * Standard JSON-RPC 2.0 tools: `score_virality`, `generate_thread`, `convert_platform`, `optimize_hook`, `schedule_campaign`, `validate_limits`.
* **๐Ÿ›ก๏ธ Deterministic Platform Limits Engine**:
  * Precise character counting (Twitter weighted glyphs + 23-char `t.co` URLs, ATProto UTF-8 byte facets).
  * Leaky-bucket rate limit queues with exponential backoff.

---

## ๐Ÿ—๏ธ Architecture

```mermaid
flowchart TD
    subgraph Input["Input Channels"]
        Studio["๐ŸŽจ Google Material 3 Studio<br/>(public/index.html)"]
        CLI["๐Ÿ’ป Omnipost CLI"]
        MCP["๐Ÿค– AI Agent MCP Clients<br/>(Claude, Cursor, Cline, Zed)"]
        PyAPI["๐Ÿ Python SDK / API"]
    end

    subgraph Core["Omnipost Social Engine Core"]
        Tokenizer["AST Tokenizer & Thread Splitter"]
        UnicodeEngine["Unicode Mathematical Typography"]
        ViralityScorer["Algorithmic Virality Diagnostics"]
        EnvelopeEngine["Platform Envelope Translators"]
        RateLimiter["Leaky Bucket Async Token Bucket"]
    end

    subgraph Outputs["Target Platforms"]
        TW["๐• / Twitter (280 chars)"]
        LI["๐Ÿ’ผ LinkedIn (3000 chars)"]
        BS["๐Ÿฆ‹ BlueSky ATProto (300 chars)"]
        TH["๐Ÿงต Threads (500 chars)"]
        MA["๐Ÿ˜ Mastodon Fediverse (500 chars)"]
    end

    Studio --> Core
    CLI --> Core
    MCP --> Core
    PyAPI --> Core

    Core --> TW
    Core --> LI
    Core --> BS
    Core --> TH
    Core --> MA
```

---

## โšก Quickstart

### 1. Installation

```bash
# Clone the repository
git clone https://github.com/omnipost/omnipost-social-engine.git
cd omnipost-social-engine

# Install in editable mode
pip install -e .
```

### 2. Launch Google Omnipost Web Studio

Open `public/index.html` directly in your browser (no Node.js build step or local server required):

```bash
# macOS
open public/index.html

# Linux
xdg-open public/index.html

# Windows
start public/index.html
```

---

## ๐Ÿ Python API Usage

### Score Virality & Diagnose Draft

```python
from omnipost_social_engine import OmnipostEngine

engine = OmnipostEngine()

draft = """
๐Ÿš€ We just open-sourced Omnipost Social Engine!

One unified Python library to compose, simulate, and broadcast across:
โ€ข Twitter / X
โ€ข LinkedIn
โ€ข BlueSky & Threads

Star the repo on GitHub ๐Ÿ‘‡
#Python #OpenSource
"""

result = engine.score_virality(draft, platform="twitter")
print(f"Virality Score: {result.score}/100 ({result.grade})")
print(f"Hook Strength: {result.factors.hook_power}/30")
```

### Split Long Essay into a Verified Thread

```python
essay = Path("article.md").read_text()

thread = engine.split_thread(
    source_text=essay,
    max_chars_per_post=280,
    numbering_style="fraction", # (1/N)
    auto_hook=True,
    auto_cta=True
)

for post in thread.posts:
    print(f"[{post.order}/{len(thread.posts)}] ({len(post.text)} chars):\n{post.text}\n---")
```

---

## ๐Ÿค– Model Context Protocol (MCP) Integration

Omnipost includes ready-to-copy MCP configurations for all major AI coding environments in [`examples/mcp-clients/`](./examples/mcp-clients/):

* **Claude Desktop**: Add to `claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "omnipost-social-engine": {
      "command": "python",
      "args": ["-m", "omnipost_social_engine.mcp_server"],
      "env": {
        "PYTHONPATH": "src"
      }
    }
  }
}
```

* **Cursor IDE**: Add to `.cursor/mcp.json`.
* **Cline**: Add to `cline_mcp_settings.json`.
* **Zed**: Add to `~/.config/zed/settings.json`.

Read the complete [MCP Guide](./docs/MCP_GUIDE.md) for full tool schemas.

---

## ๐Ÿ“‚ Repository Structure

```
omnipost-social-engine/
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/
โ”‚       โ”œโ”€โ”€ ci.yml              # 15-job matrix (Ubuntu, macOS, Win / Python 3.9-3.13)
โ”‚       โ””โ”€โ”€ release.yml         # Wheel/sdist packaging, SHA256, PyPI & GitHub Release
โ”œโ”€โ”€ docs/
โ”‚   โ”œโ”€โ”€ MCP_GUIDE.md            # Model Context Protocol manual & tool schemas
โ”‚   โ”œโ”€โ”€ PLATFORM_LIMITS_GUIDE.md# Platform rate limits, character specs & media matrix
โ”‚   โ””โ”€โ”€ VIRAL_HOOK_FORMULAS.md  # 15+ psychological copywriting formulas & heuristics
โ”œโ”€โ”€ examples/
โ”‚   โ”œโ”€โ”€ README.md               # Master examples catalog
โ”‚   โ”œโ”€โ”€ developer-thread/       # 10-part technical developer thread example
โ”‚   โ”‚   โ”œโ”€โ”€ thread.md
โ”‚   โ”‚   โ””โ”€โ”€ README.md
โ”‚   โ”œโ”€โ”€ launch-campaign/        # Complete omnichannel product launch dataset
โ”‚   โ”‚   โ”œโ”€โ”€ campaign.json
โ”‚   โ”‚   โ”œโ”€โ”€ posts.csv
โ”‚   โ”‚   โ””โ”€โ”€ README.md
โ”‚   โ””โ”€โ”€ mcp-clients/            # Pre-built configs for Claude, Cursor, Cline, Zed
โ”‚       โ”œโ”€โ”€ claude_desktop_config.json
โ”‚       โ”œโ”€โ”€ cursor_mcp.json
โ”‚       โ”œโ”€โ”€ cline_mcp.json
โ”‚       โ”œโ”€โ”€ zed_settings.json
โ”‚       โ””โ”€โ”€ README.md
โ”œโ”€โ”€ public/
โ”‚   โ””โ”€โ”€ index.html              # Google Material 3 Studio single-page application
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ omnipost_social_engine/ # Core engine Python package
โ””โ”€โ”€ tests/
    โ””โ”€โ”€ test_examples.py        # Validation test suite for UI, examples & docs
```

---

## ๐Ÿงช Testing & Verification

Run the comprehensive pytest suite:

```bash
PYTHONPATH=src pytest tests/ -v
```

All 15 matrix environments in GitHub Actions enforce:
* Python 3.9, 3.10, 3.11, 3.12, 3.13
* Linux (Ubuntu), macOS, and Windows runners
* 100% test pass rate

---

## ๐Ÿ“„ License

Distributed under the **MIT License**. See `LICENSE` for details.