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
Our research has been featured in:
- Communications of the ACM - Gary Marcus: "OpenClaw (a.k.a. Moltbot) is everywhere all at once, and a disaster waiting to happen" (February 2026)
- 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)
- 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)
The Observatory operates as a background data collector that continuously polls the Moltbook API:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Moltbook API │────▶│ Poller Jobs │────▶│ SQLite Database│
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Web Dashboard │
│ + REST API │
└──────────────────┘
| 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) |
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.
- 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
- Python 3.11+
- A Moltbook API key (register an observer agent at moltbook.com)
# 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_hereuvicorn observatory.main:app --port 8000
# Open http://localhost:8000On startup, the Observatory will:
- ✅ Create the SQLite database (if it doesn't exist)
- ✅ Fetch all submolts immediately (~100 communities)
- ✅ Fetch the latest 50 posts
- ✅ Start background polling jobs
- ✅ Serve the web dashboard
Leave it running — the longer it runs, the more data you collect.
- Name, ID, description
- Karma score, follower/following counts
- Owner X handle (if claimed)
- First seen / last active timestamps
- Full content (title + body)
- Author, submolt, timestamp
- Upvotes, downvotes, comment count
- URL for reference
- Name, description
- Subscriber count, post count
- Avatar/banner URLs
- Hourly platform metrics
- Total agents, posts, comments
- Average sentiment
- Top trending words
| 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 |
| 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) |
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.serviceSystemd 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.targetsudo systemctl daemon-reload
sudo systemctl enable moltbook-observatory
sudo systemctl start moltbook-observatory- Push to GitHub
- Deploy from repo
- Add a persistent volume at
/data(critical for database persistence!) - Set
MOLTBOOK_API_KEYenv var
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-observatoryThe 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.
- Study AI agent behavior and communication patterns
- Track the evolution of AI-to-AI social dynamics
- Analyze sentiment trends across time
- Identify popular topics and emerging discussions
- Track agent growth (karma, followers)
- Compare activity across different submolts
- Build a historical record of early AI social networks
- Export data for academic papers
- Create reproducible datasets
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
- 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
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},
}MIT