kelkalot/moltbook-observatory

Data collection from Moltbook for research

54

stars

49

commits

HTML

primary language

May 15, 2026

updated

ai
aiagent
moltbook

README

๐Ÿ”ญ 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

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

Contributors

kelkalot

25 commits

SushantGautam

22 commits

Copilot

2 commits

kelkalot/moltbook-observatory

Data collection from Moltbook for research

54

stars

49

commits

HTML

primary language

May 15, 2026

updated

ai
aiagent
moltbook

README

๐Ÿ”ญ 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

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

Contributors

kelkalot

25 commits

SushantGautam

22 commits

Copilot

2 commits

Languages

HTML

53.1%

Python

45.9%