montana/Русский/Разведка/Moltbook/github/moltbook-observatory/README.md

12 KiB

🔭 Moltbook Observatory

Passive monitoring and analytics dashboard for Moltbook — the social network for AI agents.

The Observatory silently watches Moltbook, collecting posts, tracking agents, and analyzing trends over time. The longer it runs, the richer your dataset becomes.


🔥📄 Report of first patch of data collected: RISK ASSESSMENT REPORT Moltbook Platform & Moltbot Ecosystem

🚀🌐 Live Running Instance: moltbook-observatory.sushant.info.np

🧠📊 Dataset Snapshot on HuggingFace: huggingface.co/datasets/SimulaMet/moltbook-observatory-archive

Media Coverage

Our research has been featured in:

Academic/Professional Publications

  • Communications of the ACM - Gary Marcus: "OpenClaw (a.k.a. Moltbot) is everywhere all at once, and a disaster waiting to happen" (February 2026)

News Outlets

  • CBC News - "Moltbook claims to be a social network for AI bots. But humans are behind its rapid growth" (February 5, 2026)
  • The Register - "OpenClaw security problems" (February 3, 2026)
  • UnHerd - Gary Marcus: "Moltbook won't save you" (February 4, 2026)
  • Business Insider - "AI researcher Gary Marcus sounds off on Moltbook and OpenClaw's viral moment" (February 6, 2026)

Academic Citations

  • ArXiv preprint 2602.02625 - "OpenClaw Agents on Moltbook: Risky Instruction Sharing and Norm Enforcement in an Agent-Only Social Network" - Uses Moltbook Observatory Archive as primary dataset (February 2026)

How It Works

The Observatory operates as a background data collector that continuously polls the Moltbook API:

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Moltbook API  │────▶│    Poller Jobs   │────▶│  SQLite Database│
└─────────────────┘     └──────────────────┘     └─────────────────┘
                               │
                               ▼
                        ┌──────────────────┐
                        │   Web Dashboard  │
                        │   + REST API     │
                        └──────────────────┘

Background Polling Schedule

Job Frequency What It Collects
Posts Every 2 minutes New posts from all submolts (50 per poll)
Submolts Every hour All communities, subscriber counts
Agent Profiles Every 15 minutes Karma, followers, descriptions
Trends Every 10 minutes Word frequency analysis
Snapshots Every hour Platform-wide metrics (for time-series)

Data Accumulation Over Time

The database grows continuously as new content is discovered:

Running Time Expected Posts Expected Agents
1 hour ~1,500 ~100+
1 day ~36,000 All active agents
1 week ~252,000 Complete agent history
1 month ~1,000,000+ Full platform archive

Key insight: Posts are fetched in reverse chronological order, so new posts are captured as they appear. Over time, you build a complete historical archive of Moltbook activity.


Features

  • Live Feed — Real-time stream of posts from the Moltbook ecosystem
  • Agent Directory — Browse all discovered AI agents with karma, followers, descriptions
  • Submolt Browser — All 100+ communities on Moltbook
  • Trend Analysis — Word frequency, trending topics, and emerging themes
  • Sentiment Analysis — Platform-wide mood using TextBlob polarity scoring
  • Analytics Dashboard — Top posters leaderboard, activity heatmap, most active submolts
  • Hourly Snapshots — Time-series data for historical analysis
  • Data Export — Download everything as CSV or raw SQLite database
  • RESTful API — Programmatic access for research and integrations

Quick Start

Prerequisites

  • Python 3.11+
  • A Moltbook API key (register an observer agent at moltbook.com)

Installation

# Clone and enter directory
git clone https://github.com/kelkalot/moltbook-observatory.git
cd moltbook-observatory

# Install dependencies (or use pip install directly)
pip install fastapi uvicorn httpx jinja2 textblob apscheduler aiosqlite python-dotenv

# Configure your API key
cp .env.example .env
# Edit .env and set MOLTBOOK_API_KEY=your_key_here

Run the Observatory

uvicorn observatory.main:app --port 8000

# Open http://localhost:8000

On startup, the Observatory will:

  1. Create the SQLite database (if it doesn't exist)
  2. Fetch all submolts immediately (~100 communities)
  3. Fetch the latest 50 posts
  4. Start background polling jobs
  5. Serve the web dashboard

Leave it running — the longer it runs, the more data you collect.


What Gets Stored

Agents Table

  • Name, ID, description
  • Karma score, follower/following counts
  • Owner X handle (if claimed)
  • First seen / last active timestamps

Posts Table

  • Full content (title + body)
  • Author, submolt, timestamp
  • Upvotes, downvotes, comment count
  • URL for reference

Submolts Table

  • Name, description
  • Subscriber count, post count
  • Avatar/banner URLs

Snapshots Table (Time-Series)

  • Hourly platform metrics
  • Total agents, posts, comments
  • Average sentiment
  • Top trending words

API Endpoints

Endpoint Description
GET /api/feed Recent posts (with ?since=timestamp&limit=50)
GET /api/stats Current platform metrics
GET /api/trends Trending words (with ?hours=24)
GET /api/agents All agents (with ?sort=karma&limit=50)
GET /api/agents/{name} Single agent profile + posts
GET /api/submolts All communities
GET /api/analytics/top-posters Agents ranked by post count
GET /api/analytics/activity-by-hour Post activity by hour (UTC)
GET /api/analytics/submolt-activity Submolts ranked by post activity
GET /api/export/posts.csv Download all posts as CSV
GET /api/export/agents.csv Download all agents as CSV
GET /api/export/database.db Download raw SQLite database

Configuration

Variable Description Default
MOLTBOOK_API_KEY Your Moltbook API key Required
DATABASE_PATH SQLite database location ./data/observatory.db
POLL_POSTS_INTERVAL Seconds between post fetches 120 (2 min)
POLL_AGENTS_INTERVAL Seconds between agent updates 900 (15 min)
POLL_SUBMOLTS_INTERVAL Seconds between submolt fetches 3600 (1 hour)

Deployment (Long-Running)

For continuous data collection, deploy to a server:

On any Ubuntu/Debian server:

# Clone the repository
git clone https://github.com/kelkalot/moltbook-observatory.git
cd moltbook-observatory

# Install Python 3.11+ and dependencies
sudo apt update && sudo apt install python3.11 python3-pip -y
pip install fastapi uvicorn httpx jinja2 textblob apscheduler aiosqlite python-dotenv

# Configure your API key
cp .env.example .env
nano .env  # Add your MOLTBOOK_API_KEY

# Run with screen (keeps running after SSH disconnect)
screen -S observatory
uvicorn observatory.main:app --host 0.0.0.0 --port 8000
# Press Ctrl+A then D to detach

# Or use systemd for auto-restart
sudo nano /etc/systemd/system/moltbook-observatory.service

Systemd service file:

[Unit]
Description=Moltbook Observatory
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/moltbook-observatory
ExecStart=/usr/bin/python3 -m uvicorn observatory.main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable moltbook-observatory
sudo systemctl start moltbook-observatory

Railway / Fly.io

  1. Push to GitHub
  2. Deploy from repo
  3. Add a persistent volume at /data (critical for database persistence!)
  4. Set MOLTBOOK_API_KEY env var

Docker

docker build -t moltbook-observatory .
docker run -d \
  -p 8080:8080 \
  -e MOLTBOOK_API_KEY=your_key \
  -v observatory-data:/data \
  --restart unless-stopped \
  moltbook-observatory

Sample Data

The sample_data/ directory contains example exports from the observatory:

File Description Records
posts_sample.csv All collected posts with content 262
agents_sample.csv All discovered agents with stats 255
submolts_sample.csv All communities 100

These samples demonstrate the data schema and can be used for testing analysis pipelines.


Use Cases

Research

  • Study AI agent behavior and communication patterns
  • Track the evolution of AI-to-AI social dynamics
  • Analyze sentiment trends across time

Analytics

  • Identify popular topics and emerging discussions
  • Track agent growth (karma, followers)
  • Compare activity across different submolts

Archival

  • Build a historical record of early AI social networks
  • Export data for academic papers
  • Create reproducible datasets

Project Structure

moltbook-observatory/
├── observatory/
│   ├── main.py           # FastAPI app + lifespan
│   ├── config.py         # Environment configuration
│   ├── database/         # SQLite schema + connection
│   ├── poller/           # API client + scheduler + processors
│   ├── analyzer/         # Trends, sentiment, statistics
│   └── web/              # Routes + Jinja2 templates
├── sample_data/          # Example CSV exports
├── data/                 # SQLite database (gitignored)
├── pyproject.toml        # Dependencies
├── Dockerfile            # Container deployment
└── .env.example          # Configuration template

Philosophy

  • No manipulation — We observe, never post or interact
  • Pure archival — Every post, every agent, everything
  • Research-grade — Data should be exportable and citable
  • Time-aware — Not just current state, but historical trends

Citation

If you use Moltbook Observatory in your research, please cite:

@software{moltbook_observatory,
  author = {Riegler, Michael A. and Gautam, Sushant},
  title = {Moltbook Observatory: Passive Monitoring Dashboard for AI Social Networks},
  year = {2026},
  url = {https://github.com/kelkalot/moltbook-observatory},
  note = {A research tool for collecting and analyzing data from Moltbook, the social network for AI agents}
}

Plain text citation:

Riegler, M. A., & Gautam, S. (2026). Moltbook Observatory: Passive Monitoring Dashboard for AI Social Networks. GitHub. https://github.com/kelkalot/moltbook-observatory


Contributors


License

MIT