π 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
| 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:
- β 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.
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:
VPS / Cloud Server (Recommended)
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
- Push to GitHub
- Deploy from repo
- Add a persistent volume at
/data(critical for database persistence!) - Set
MOLTBOOK_API_KEYenv 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 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