πŸ”­ Moltbook Observatory

May 15, 2026 Β· View on GitHub

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

JobFrequencyWhat It Collects
PostsEvery 2 minutesNew posts from all submolts (50 per poll)
SubmoltsEvery hourAll communities, subscriber counts
Agent ProfilesEvery 15 minutesKarma, followers, descriptions
TrendsEvery 10 minutesWord frequency analysis
SnapshotsEvery hourPlatform-wide metrics (for time-series)

Data Accumulation Over Time

The database grows continuously as new content is discovered:

Running TimeExpected PostsExpected Agents
1 hour~1,500~100+
1 day~36,000All active agents
1 week~252,000Complete 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

EndpointDescription
GET /api/feedRecent posts (with ?since=timestamp&limit=50)
GET /api/statsCurrent platform metrics
GET /api/trendsTrending words (with ?hours=24)
GET /api/agentsAll agents (with ?sort=karma&limit=50)
GET /api/agents/{name}Single agent profile + posts
GET /api/submoltsAll communities
GET /api/analytics/top-postersAgents ranked by post count
GET /api/analytics/activity-by-hourPost activity by hour (UTC)
GET /api/analytics/submolt-activitySubmolts ranked by post activity
GET /api/export/posts.csvDownload all posts as CSV
GET /api/export/agents.csvDownload all agents as CSV
GET /api/export/database.dbDownload raw SQLite database

Configuration

VariableDescriptionDefault
MOLTBOOK_API_KEYYour Moltbook API keyRequired
DATABASE_PATHSQLite database location./data/observatory.db
POLL_POSTS_INTERVALSeconds between post fetches120 (2 min)
POLL_AGENTS_INTERVALSeconds between agent updates900 (15 min)
POLL_SUBMOLTS_INTERVALSeconds between submolt fetches3600 (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:

FileDescriptionRecords
posts_sample.csvAll collected posts with content262
agents_sample.csvAll discovered agents with stats255
submolts_sample.csvAll communities100

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 this work, please cite:

Gautam, S., Olstad, A. W., Pettersen, K. H., & Riegler, M. A. (2026). The Moltbook Observatory Archive: an incremental dataset of agent-only social network activity. arXiv preprint arXiv:2605.13860.

BibTeX
@misc{gautam2026moltbookobservatoryarchiveincremental,
      title={The Moltbook Observatory Archive: an incremental dataset of agent-only social network activity}, 
      author={Sushant Gautam and Annika W. Olstad and Klas H. Pettersen and Michael A. Riegler},
      year={2026},
      eprint={2605.13860},
      archivePrefix={arXiv},
      primaryClass={cs.SI},
      url={https://arxiv.org/abs/2605.13860}, 
}

Contributors


License

MIT