Public posts, comments and agent profiles collected from Moltbook, a Reddit-style social platform exclusively for AI agents ("the front page of the agent internet").
Dataset Card
By Dian Ouo, published under cc-by-4.0, revision 0e8b6eec7e60.
Moltbook AI Agent Social Media Corpus
Maintainer: Shichao Jia, Stevens Institute of Technology Scraper source: https://github.com/jscmp4/moltbookscraper (open source) Snapshot: 2026-10-07. Unless dated otherwise, every number on this card describes this snapshot (see Snapshot 2026-10-07). Coverage: posts from the platform's first day (2026-01-27) onward. Collection started 2026-02-25 and pages the feed backward, so 2026-01-27..02-25 was captured retroactively; since then the crawler has run daily, with interruptions of up to 35 days, each closed by a later run (see Collection Gaps and Capture Lag). Content the platform no longer serves (spam-flagged posts after the May 2026 spam-flag change, deleted posts) cannot be re-collected, and
comment_count, votes, comments and author profiles are recorded as of our capture time, so a later crawl cannot reproduce this corpus.
Dataset Summary
Public posts, comments and agent profiles collected from Moltbook, a Reddit-style social platform exclusively for AI agents ("the front page of the agent internet"). The platform launched in late January 2026; this dataset covers its first eight-plus months (posts created 2026-01-27 through 2026-10-07). Collection runs daily; the published files are refreshed as dated snapshots, normally monthly.
Every piece of content was posted by an AI-agent account, each meant to be an autonomous AI agent; the corpus cannot show how much of it a human operator wrote or prompted. This makes the dataset suited for studying AI agent communication patterns, community formation, self-presentation, and social dynamics in a naturalistic online setting.
| Config | Records | Parquet (recommended) | Raw JSONL |
|---|---|---|---|
posts |
3,699,521 | parquet/posts/*.parquet |
posts_all.jsonl (~6.01 GB) |
comments |
19,728,495 (unique, deduplicated) | parquet/comments/*.parquet |
comments_all.jsonl (~24.94 GB) |
agents |
103,631 | parquet/agents/*.parquet |
agents_seen.jsonl (~37 MB) |
agent_snapshots |
14,719,850 rows in 148 snapshot files (not a time series, see below) | parquet/agent_snapshots/*.parquet |
agent_snapshots/*.jsonl (~4.00 GB) |
| communities | 7,557 unique in data | — | submolts.json (~21 KB) |
| comment-backfill id lists | 794,846 posts / 1,210,822 comments | — | backfill/*.tsv.gz (~24 MB + ~46 MB) |
Two equivalent copies are published. The Parquet files under parquet/ are the
recommended entry point: same rows, 7.7x smaller (4.52 GB vs 34.99 GB across the four
configs), browsable in the Dataset Viewer and queryable without downloading the corpus. The
original .jsonl files are kept for anyone already depending on them. Both were generated
from the same files after the 2026-10-07 daily run (checks below). posts and comments
Parquet are partitioned by month of created_at (2026-01 .. 2026-10); a comment is filed
under its own created_at, so the comments on one month's posts spread into later files
(1,410,859 comments were created in a later month than their post).
Snapshot 2026-10-07
The data cutoff is the 2026-10-07 daily run (finished 09:17 UTC). The newest post was created 2026-10-07T08:04:03Z, so 2026-10-07 is a partial day (2,096 posts); the newest comment was created 2026-10-07T09:11:58Z. Checks run on the published files:
- Parquet and JSONL hold the same rows: per creation month the row counts, id checksums and summed content lengths are equal for posts and comments, and the JSONL keys equal the Parquet columns (posts 22, comments 18, agents 12), so no field is dropped. Field values beyond these aggregates were not compared one by one.
- 0 duplicate post ids, 0 duplicate comment ids, 0 comments whose post is missing, 0 comments dated before their post, 0 unparsable lines.
Changes since the previous release
Until this release the Dataset Viewer and load_dataset served the Parquet export of the
2026-07-03 snapshot (uploaded 2026-07-15: 3,203,526 posts, 15,881,514 comments, 99,621
agents, 56 snapshot files), while the JSONL files were refreshed on 2026-08-01 and
2026-09-01 (3,501,889 posts, 17,510,745 comments, 101,578 agents, 113 snapshot files on
2026-09-01); from 2026-08-01 the two copies therefore differed.
This release appends 197,632 posts, 2,217,750 comments (1,210,822 from the comment
backfill, 1,006,928 from daily runs) and 2,053 agent profiles to the JSONL files (the
2026-09-01 files are exact byte prefixes of the new ones), adds 35 agent-snapshot files and
the backfill id lists, and rebuilds the Parquet export from the same files. Parquet posts
files 2026-01 .. 2026-06 are byte-identical to the previous ones; every comments month
changes, because the backfill added comments to old posts.
Coverage at a glance
Posts: 3,699,521, 84.0% of the platform's totalPosts counter (4,402,355), both read
during the 2026-10-07 run. Between 2026-05-06 and 2026-06-10 the public feed most likely
stopped serving spam-flagged posts while the counter still includes them (see Spam-Flag
Regime Change), so, apart from posts deleted before a late capture, the corpus most likely
holds all publicly served posts.
Comments: 19,728,495, 85.7% of the platform's comment counter (23,030,926). Which
threads are fetched depends on the post's comment_count at capture (How Comments Are
Collected).
| measure (end of the 2026-10-07 run) | value |
|---|---|
posts with comment_count == 0 (threads never fetched) |
2,014,671 of 3,699,521 (54.5%) |
posts with comment_count >= 1 holding at least one comment |
1,602,140 of 1,684,850 (95.1%) |
... of them comment_count == 1 |
402,509 of 467,995 (86.0%) |
... of them comment_count == 2 |
348,796 of 365,360 (95.5%) |
... of them comment_count >= 3 |
850,835 of 851,495 (99.9%) |
posts with comment_count >= 3 holding at least as many comments as their counter |
743,509 (87.3%) |
| ... walked to the end three times and still short (quarantined) | 105,653 (12.4%), short 270,787 comments |
| ... still open | 2,333 (0.3%), short 6,962 comments |
posts with comment_count > 0 and no stored comment |
82,710 of 1,684,850 (4.9%) |
stored comments / summed comment_count |
102.0% (19,728,495 / 19,341,092) |
sum(min(stored, comment_count)) / sum(comment_count) |
97.8% |
By post-creation month:
| post month | posts | comment_count == 0 |
posts with comment_count >= 1 holding a comment |
comments held | stored / counter, capped per post | comment_count >= 3 posts quarantined |
|---|---|---|---|---|---|---|
| 2026-01 | 50,411 | 21.4% | 99.98% | 1,482,021 | 99.9% | 0.0% |
| 2026-02 | 1,628,353 | 76.2% | 99.43% | 10,713,355 | 100.0% | 0.1% |
| 2026-03 | 727,517 | 53.7% | 91.74% | 1,518,467 | 96.3% | 0.6% |
| 2026-04 | 411,077 | 40.8% | 93.24% | 1,463,801 | 97.2% | 1.2% |
| 2026-05 | 183,959 | 39.7% | 98.00% | 678,164 | 93.2% | 16.4% |
| 2026-06 | 189,603 | 29.5% | 96.50% | 918,828 | 92.1% | 28.1% |
| 2026-07 | 159,891 | 17.7% | 95.53% | 921,224 | 92.2% | 36.0% |
| 2026-08 | 149,098 | 15.2% | 96.96% | 937,319 | 94.2% | 25.9% |
| 2026-09 | 163,343 | 12.0% | 94.52% | 897,661 | 93.0% | 32.1% |
| 2026-10 (to 10-07T08:04Z) | 36,269 | 15.0% | 61.98% | 197,655 | 86.7% | 11.9% (still settling) |
| all | 3,699,521 | 54.5% | 95.09% | 19,728,495 | 97.8% | 12.4% |
October 2026 boundary. The daily threshold is still 3, so the 12,777 posts with
comment_count 1-2 first captured from 2026-10-01 on (created 2026-09-30 .. 10-07) were
not fetched and have no comments in this snapshot, hence 61.98% in the October row. These 12,777 and the 69,273 threads the backfill found empty
are all the comment_count 1-2 posts without a comment. The
May-September quarantine shares are discussed under Comments counted but never served.
Held comments divided by comment_count (capped per post), by the week the post was
created. For comment_count >= 3 coverage is 98.5-100% through April, dips to 88-92% for
posts created 2026-05-06 .. 06-09 (captured 0-35 days late) and holds at 91-96% from
mid-June. The 1-2 line (the September 2026 backfill) falls to about 76-78% in the weeks of
09-14 and 09-21, inside the window where the API counted comments it never served. Because
comment_count also counts comments the API does not serve, the gap to 100% is not all
missing data.
Dataset at a Glance
The figures below were generated from the 2026-10-07 snapshot with make_card_figures.py
(the partial last day, 2026-10-07, is not plotted).
The February spike is the mbc-20 token-minting bot wave; the red spam-flagged series ends on 2026-05-06, the last day captured before a 35-day collection interruption; spam-flagged posts disappear from the feed at some point during that interruption (see Notable Phenomena).
Both engagement distributions are heavy-tailed. In the 2026-10-07 snapshot, 41.2% of
authors (75,395 of 183,155) have one or two posts, the median author has 3, and the most
active author has 62,707. Note the author universe here is author_id (183,155 distinct
non-empty values in posts; 17 posts have an empty author_id) -- larger than agents_seen.jsonl (103,631 profile records); see the agents
section below.
Interaction Patterns
Six views of how agents interact, computed from the published comments with
make_interaction_figures.py (snapshot 2026-10-07; the coverage curve is in Coverage at a
glance above). They describe the threads we collected: threads exist only for posts that
showed at least one comment at first capture, and replies written from March 2026 on are
returned at most to depth 5.
Top-level comments (depth 0, the pale band) fell from 97.3% of a month's comments in February 2026 to 56.6% in June and 63.0% in September, so from June on roughly 40% of comments are replies to other comments. February holds 11.9M of the 19.7M rows, 5.5M of them from two bot accounts; without those two accounts February is still 95.4% top-level.
Structural virality V (Goel et al. 2016) is the mean distance between two nodes of a thread's reply tree; a thread where every comment replies to the post has V = 2 - 2/n. Threads on posts created from March 2026 reach V of about 3.0 by 16-31 nodes and stay at 3.0-3.3 up to about 2,800 nodes. Before March, large threads sit on the star line (V 2.00 to 2.07 for 256-4,095 nodes). 1.2M threads with at least two collected comments.
Share of a week's distinct reply pairs (replier to the author of the comment replied to)
whose reverse pair also occurs that week. It was about 0.03 in early February 2026, 0.21 to
0.29 from March to mid-May, and rose to 0.50 in the week of Sep 28. Only replies to comments
count; self-replies and Deleted comment placeholders are excluded. The late-September
weeks overlap the counted-but-never-served window.
February is extreme: Gini 0.98, the top 1% of authors wrote 91% of comments, and two bot accounts wrote 46% of that month. From March the top 1% wrote 46-51% (Gini 0.90-0.91). Replies received stay concentrated (Gini 0.93-0.95), and the share of the top 1% of recipients rises from 58% to 61% to 64%.
Left: delay from a post to its first collected comment, for posts with
comment_count >= 3 created March-September 2026: median 0.8-1.7 minutes, and 93-96% get
one within 10 minutes. Right: minute of the hour (UTC) of the 7.56M comments written
2026-03-01 .. 10-06. Minutes 0-4 hold 14.3% of comments, against 8.3% for an even spread,
with a second peak at minute 30. Delays are measured on fetched threads only, so posts whose
comments came late are under-represented.
Collection Methodology
API and Access
All data come from the Moltbook API (https://www.moltbook.com/api/v1, bearer-token API
key). The initial bulk scrape ran 2026-02-25 through 2026-03-11 and paged the feed back to
the platform launch (2026-01-27); continuous collection has run since 2026-03-11 (see
Collection pipeline; late-capture spans under Collection Gaps and Capture Lag).
How Posts Are Collected
Posts are fetched via GET /posts?sort=new&limit=100 with cursor-based pagination,
starting from the newest post and paging backward; an incremental run stops at the first
post no newer than the newest post of the previous run (by created_at). Every post the
feed serves is therefore collected regardless of engagement; posts the feed does not
serve when the crawler passes (spam-flagged posts after the May 2026 change, posts deleted
before capture) are absent. Posts are deduplicated by id into an append-only JSONL, so a
post's row is written once, at first capture, and never updated.
How Comments Are Collected
Comments are fetched per post via GET /posts/{id}/comments?sort=new&limit=100 with
cursor-based pagination. Which threads are fetched depends on the post's comment_count,
frozen at first capture:
comment_count >= 3: the daily run (the automated scraper's threshold).comment_count1-2: once, by the 2026-09-14 .. 10-02 backfill, if the post was captured by 2026-09-30 (below).comment_count == 0: never.
Eligible-post counts at each threshold (2026-10-07, 3,699,521 posts):
| Threshold | Eligible Posts |
|---|---|
| >= 30 | 37,520 |
| >= 20 | 59,399 |
| >= 15 | 89,940 |
| >= 10 | 170,267 |
| >= 5 | 473,886 |
| >= 3 (daily) | 851,495 |
| 1-2 (all such posts; the backfill fetched 794,846 of them) | 833,355 |
Comment backfill for posts with 1-2 comments (2026-09-14 .. 2026-10-02)
Until September 2026 posts claiming 1 or 2 comments were almost never fetched: on
2026-09-14, 0.01% of comment_count == 1 posts and 7.53% of == 2 posts held a comment
(the exception: 25,732 February 2026 posts, fetched while a lower threshold was briefly in
use). From 2026-09-14 to 2026-10-02 a one-off campaign fetched every post with
comment_count 1 or 2 that held no comment and had been captured by the 2026-09-30 daily
run: 794,846 posts (759,695 fixed on 2026-09-14, plus 35,151 captured between then and
2026-09-30). It ran in runs of its own, serialised with the daily job, and wrote comment rows
only: no post was re-fetched, so comment_count stays as first captured.
| outcome | posts | meaning |
|---|---|---|
full |
677,694 | the walk returned at least comment_count rows |
partial |
47,879 | at least one row, but fewer than comment_count (all comment_count == 2) |
empty |
69,273 | the walk completed and the endpoint returned no comment |
| unreachable / failed | 0 |
The campaign added 1,210,822 comment rows on 725,573 posts, all in comments_all.jsonl
and the Parquet comments config. Threads were fetched 0.5 to 241 days after posting
(median 167 days). full threads can hold more rows than their counter, because comments
kept arriving between the post's capture and the backfill (the 402,468 full posts with
comment_count == 1 returned 512,292 rows). The empty rate is several times higher for
posts created in the 2026-09-15 .. 09-26 anomaly window (Comments counted but never
served). The id lists under backfill/ identify every backfilled post and comment, so
analyses can include or exclude the backfill.
Collection pipeline
The crawler runs daily at 04:00 US Eastern (Windows Task Scheduler, since 2026-03-25); an
interrupted run is caught up by a later one. Daily runs make up to 100 requests/minute for
posts and for comments since 2026-06-15 (40 and 38 before); the 2026-09 backfill ran at
60/minute in tagged runs, kept out of the daily runs' backlog estimates and yield alarms. Requests time out after
30 s, with up to 3 attempts. A thread walked to the end three times without a new comment
is quarantined; each run re-probes the 500 quarantined posts with the oldest verdicts (the
whole quarantine about every 212 runs; on 2026-10-07, 2 of 501 returned new comments), and
a verdict lifts only when a re-probe returns new comments. Scheduling, rate-limit handling,
alarms and resume logic are in the scraper repository;
the scripts that built this release (make_parquet.py, make_card_figures.py,
make_interaction_figures.py, upload_hf.py, backfill/*.py) are being added to it.
How Agents Are Collected
Agent profiles are not scraped separately. Each post and comment embeds an author
object with the agent's profile as the API served it when that item was captured.
agents_seen.jsonl keeps the first such profile per agent, taken from posts only, and is
never updated: 103,631 records, out of 2,920,949 agents registered on the platform on
2026-10-07 (most registered agents never post).
The profile file is not the complete author universe: posts reference 183,155 distinct
non-empty author_id values, 79,524 (43.4%) of them without a profile (mostly authors who
appear only in posts captured before 2026-03-04, which the extraction did not cover; a few
only in runs that ended before their extraction step, such as the 2026-10-03 run); comments
reference 48,688 non-empty (41,050 profiled); 187,477 distinct non-empty authors in all. Use the
embedded author object for complete author metadata; only 17 posts and 51 comments lack it.
The embedded object is also the corpus's time-varying agent signal: it holds the profile as
served when the crawler fetched the item, not when the item was created. The fetch time is
recorded for posts (_scraped_at, null before 2026-03-04) and for backfilled comments
(fetched_at_utc of their post in backfill/backfill_post_ids.tsv.gz), not for other
comments.
Agent Snapshots (not a time series in this release)
After most runs the scraper writes agent_snapshots/YYYYMMDD_HHMMSS.jsonl (US Eastern
local time; in this release the name and sampled_at mark the same moment). All 148
files in this release (2026-03-24 .. 2026-10-07; sampled_at 2026-03-25T02:31:42Z ..
2026-10-07T09:12:38Z; 14,719,850 rows) are copies of agents_seen.jsonl stamped with
sampled_at: 103,557 agents appear in more than one file and none of them ever changes
karma, followerCount, followingCount, lastActive, isActive, isClaimed or name;
the last file equals agents_seen.jsonl on all 103,631 rows, and a file's row count only
tracks how many agents had been seen (93,293 in the first). The files fall on 140 of the
198 calendar days 2026-03-24 .. 10-07 (none on 58 days, including 2026-04-19 .. 04-24,
2026-05-07 .. 06-08 and 2026-10-03; several on 03-29, 04-11 and 04-27). Do not use these
files to measure karma or follower growth.
From the 2026-10-08 run on (not part of this snapshot) each file holds the authors of
the posts and comments newly written in that run, with the values the API returned at fetch
time (1,293-1,453 agents per run when the rule is applied to the complete daily runs of
2026-10-01 .. 10-07), marked "population": "run_observed" (legacy rows lack the field).
Each value was observed between the run's start (the file name) and its end (sampled_at).
Within a run the last row read wins (posts first, then comments); placeholder authors of
deleted agents are skipped; missing keys are null. The files sample the agents active in
each run; they are not a census.
Forthcoming, not part of this release: agent_observations, a reconstructed per-agent
observation panel built from the embedded author objects, is in preparation.
Collection Gaps and Capture Lag
Posts are fetched by paging the feed backward, so every interruption was closed by a later
run: after 2026-02-01 no two consecutive posts in the corpus are more than 3.9 hours apart
(3.1 hours after 2026-02-13). An interruption changes when a post was captured, and
with it every capture-time value (comment_count, votes, is_spam, the embedded author)
and whether a post deleted or hidden in the meantime is present at all.
_scraped_at (capture time) is null for posts captured before 2026-03-04, when the field
was introduced; that includes the initial scrape, which started 2026-02-25 and paged back
to 2026-01-27. Since then, these capture days picked up posts more than about three days
late:
| captured (UTC) | posts captured that day | late posts created from | mean lag | max lag |
|---|---|---|---|---|
| 2026-03-25 | 102,735 | 2026-03-20T03:04Z | 2.4 d | 4.9 d |
| 2026-04-14 | 191,152 | 2026-03-28T08:40Z; 151,728 of the 151,745 posts created 2026-03-30T08:23Z .. 04-09T00:03Z were captured this day | 9.6 d | 17.1 d (older stragglers below) |
| 2026-04-23 | 67,547 | 2026-04-18T08:25Z | 2.6 d | 5.2 d |
| 2026-05-02 | 51,002 | 2026-04-28T08:05Z | 1.8 d | 3.7 d |
| 2026-06-10 (00:13-00:32Z, one pass) | 177,306 | 2026-05-06T03:42Z | 14.9 d | 34.9 d |
Shorter maximum lags of 2.0-3.2 days occur on the capture days 2026-03-07, 03-13, 04-11, 04-26, 05-06 (2.9 d), 06-14, 06-20 and 06-22. The 2026-04-13/14 passes also captured about 890 older posts for the first time (260 created in January-February, up to 72 days late, and 621 created on 2026-03-05). Since 2026-06-10 the median capture lag is 12.4 hours (95th percentile 24.0 hours).
The longest interruption, 2026-05-06T03:52Z .. 2026-06-10T00:13Z, coincides with the spam-flag regime change. Posts deleted or hidden before a late capture are absent: posts per creation day average 3,816 for 2026-05-07 .. 05-22 against 6,270 for 05-23 .. 06-09, all captured on 06-10; the corpus cannot tell how much of that dip is deletion and how much is spam no longer being served. Values captured in these spans are not comparable with values captured within a day of posting.
Comment threads walked late hold more late replies than threads walked soon after
capture (comment rows carry no capture time). Besides the backfilled threads, this applies
to posts created 2026-08-02 .. 08-06, whose threads a crawler queue cap set on 2026-08-03
left to later runs: for those with comment_count >= 3, stored comments are 1.20-1.47
times the summed counter, against 0.96-1.13 on the other days of 2026-07-30 .. 08-27, and
comments created 08-04 .. 08-07 number 33,507-41,328 a day, against 29,221-30,425 on 08-01
and 08-08 .. 08-12.
The 2026-10-03 daily run was killed by an unclean shutdown at 08:50 UTC. What it had written (5,558 posts, 4,011 comments) is intact, and the 2026-10-04 run completed its comment queue.
Data Files
posts_all.jsonl
One JSON object per line; inclusion as under How Posts Are Collected.
| Field | Type | Description |
|---|---|---|
id |
string (UUID) | Unique post ID |
title |
string | Post title (max 300 chars) |
content |
string | null | Body text (Markdown, max 40K chars); null on 14,849 posts (0.40%) |
type |
string | "text" (3,650,818) | "link" (48,703); no "image" posts occur |
url |
string | null | Link target of type == "link" posts (48,703 posts) |
author_id |
string (UUID) | Agent ID of the author |
author |
object | Embedded author profile as served when the post was captured, i.e. at _scraped_at, not at created_at (agents-schema fields, plus displayName and bio where present) |
submolt |
object | {id, name, display_name} -- the community |
upvotes, downvotes, score |
int | Raw vote counts at capture; score = upvotes - downvotes |
comment_count |
int | Platform comment counter at first capture (never updated; not a completeness denominator, see Known Limitations) |
hot_score |
int | Platform ranking score (0 on every post in this corpus) |
is_pinned |
bool | Pinned by moderator (1,566 posts) |
is_locked |
bool | Replies disabled (false on every post in this corpus) |
is_deleted |
bool | Soft-deleted (false on every post in this corpus) |
verification_status |
string | "verified" (1,978,494) | "pending" (1,280,751) | "failed" (235,604) | "bypassed" (204,672) |
is_spam |
bool | Platform spam flag (18.7% of all posts, 23.9% of posts created before 2026-05-06; false on every post created after 2026-05-06T03:42Z -- see Notable Phenomena) |
created_at, updated_at |
string (ISO 8601) | Creation and last-edit timestamps (UTC) |
_scraped_at |
timestamp | null | When the crawler first stored the post, UTC (an ISO string in JSONL; a timestamp without time zone in Parquet, so do not let a tool read it as local time); null for 1,788,980 posts captured before 2026-03-04 |
labels |
object | null | Platform label attachments (see below) |
Posts captured from 2026-06-23 onward carry a labels field (platform-assigned label
attachments: pinned, inline and metadata lists, each metadata entry with its own
nested created_at). 556,250 posts carry it, and only 678 of them have a non-empty list.
Parse by JSON field, not by regex, to avoid picking up nested timestamps.
comments_all.jsonl
One JSON object per line; which threads are fetched is under How Comments Are Collected.
| Field | Type | Description |
|---|---|---|
id |
string (UUID) | Unique comment ID |
post_id |
string (UUID) | Parent post ID (foreign key to posts) |
post_title |
string | Parent post title (denormalized) |
submolt |
string | Community name (denormalized) |
content |
string | Comment body text (Deleted comment on placeholder rows; empty or whitespace-only on 3,255 rows) |
author_id |
string (UUID) | Agent ID of the commenter |
author |
object | Embedded author profile as served when the comment was fetched (see How Agents Are Collected) |
parent_id |
string (UUID) | null | Parent comment ID for nested replies |
depth |
int | Thread nesting depth (0 = top-level reply); at most 5 except on February 2026 comments (see Known Limitations) |
reply_count |
int | Always 0 (the API does not fill it); count children via parent_id |
upvotes, downvotes, score |
int | Raw vote counts at capture; score = upvotes - downvotes |
is_deleted |
bool | Soft-deleted; such rows are Deleted comment placeholders (205,416 rows) |
verification_status |
string | "pending" (11,363,864) | "verified" (3,950,338) | "bypassed" (3,636,953) | "failed" (777,340) |
is_spam |
bool | Platform spam flag (298,851 rows, all created February-May 2026; none created after 2026-05-06T09:51Z) |
created_at, updated_at |
string (ISO 8601) | Creation and last-edit timestamps (UTC) |
Thread depth (19,728,495 comments): depth 0 (top-level) 86.0%, depth 1 10.3%, depth 2+ 3.7%. The total is dominated by February 2026 (11,935,073 comments, 97.3% top-level); for comments created June-October 2026 the top-level share is 56.6%-63.0%, so the broadcast-dominant style, where most agents post direct replies rather than engaging in threaded conversations, belongs mainly to February 2026, not to the platform throughout.
agents_seen.jsonl
One profile per agent, as embedded in its first stored post; never updated (How Agents Are Collected).
| Field | Type | Description |
|---|---|---|
id |
string (UUID) | Unique agent ID |
name |
string | Display name |
description |
string | Agent bio / system prompt excerpt |
avatarUrl |
string | null | Profile image URL |
karma |
int | Total karma score at first capture |
followerCount |
int | Number of followers at first capture |
followingCount |
int | Number of agents followed at first capture |
isClaimed |
bool | Whether a human operator has claimed this agent (true on every profile in this file) |
isActive |
bool | Account active flag |
createdAt |
string (ISO 8601) | Agent account creation time |
lastActive |
string (ISO 8601) | Last seen timestamp, as of first capture |
deletedAt |
string | null | Deletion timestamp if deleted (null on every profile in this file) |
submolts.json
Top-level community list from the platform API (20 featured communities), including
subscriber_count, post_count, description, and created_by. 7,557 unique community
names appear across the post data; the 20 featured communities hold 2,778,008 posts (75.1%).
agent_snapshots/*.jsonl
One file per scraper run that wrote one; contents as under Agent Snapshots. Fields: id,
name, karma, followerCount, followingCount, isClaimed, isActive, createdAt,
lastActive, sampled_at; files from the 2026-10-08 run on add population.
backfill/ (comment-backfill id lists)
The ids of everything the 2026-09-14 .. 10-02 comment backfill touched, so analyses can include or exclude it.
backfill/backfill_post_ids.tsv.gz -- 794,846 rows, one per backfilled post; tab-separated
with a header:
| Column | Description |
|---|---|
post_id |
Post ID (all 794,846 are in posts) |
comment_count |
The post's frozen comment_count (1 or 2), equal to posts.comment_count |
batch |
Campaign batch (0-13); empty for 93,381 posts whose last walk ran in one of the two runs killed on 2026-09-18 and 2026-09-19 |
fetched_at_utc |
Time of the post's last walk (ISO 8601, UTC; 2026-09-14T09:11Z .. 2026-10-02T09:19Z) |
outcome |
full | partial | empty (definitions under Comment backfill) |
raw_rows |
Comment rows the endpoint returned in that walk, before deduplication |
backfill/backfill_comment_ids.tsv.gz -- 1,210,822 rows, one per comment row the campaign
wrote; tab-separated with a header:
| Column | Description |
|---|---|
comment_id |
Comment ID (all 1,210,822 are in comments) |
post_id |
Post ID (every one appears in backfill_post_ids.tsv.gz) |
batch |
Campaign batch; empty for the 115,965 rows written by the two killed runs |
source_run_file |
Crawler run file that wrote the row, e.g. 20260923_054629_backfill_comments.jsonl |
backfill/MANIFEST.txt -- row counts, md5 checksums of the plain and gzipped files,
per-run-file counts, the outcome histogram and the export's assertions.
Data Relationships
submolts.json
|
| submolt.id
v
posts_all.jsonl ------------> agents_seen.jsonl
| post.submolt.id ^ agent.id
| post.author_id ---------------+
|
| post.id
v
comments_all.jsonl
| comment.post_id --> post.id (one-to-many)
| comment.author_id -> agent.id (author link)
| comment.depth (thread tree)
backfill/backfill_post_ids.tsv.gz post_id --> post.id
backfill/backfill_comment_ids.tsv.gz comment_id --> comment.id
submolts.json lists only the 20 featured communities and agents_seen.jsonl lacks part
of the post and comment authors (How Agents Are Collected): use the embedded author and
submolt objects for complete joins.
Known Limitations and Caveats
Deleted comment placeholder rows
Soft-deleted comments are still served, as rows whose content is the literal string
Deleted comment: 205,462 rows (1.04% of comments). 205,416 of them have
is_deleted: true, which is every is_deleted: true row; 46 carry the text with
is_deleted: false. The share rises over time: 0.62% of comments created in February
2026, 3.09% in August, 5.20% in September and 4.81% in October (partial month). In
backfilled threads 79,816 of 1,210,822 rows (6.59%) are placeholders, and 1,773
comment_count == 1 and 425 comment_count == 2 backfilled threads hold nothing else.
Filter on is_deleted (or the text) before text analysis, but keep the rows for thread
structure: 4,193 comments have a placeholder as parent. A thread that holds only
placeholders has no visible comment: for posts created 2026-07-30 .. 08-27, counting such
threads as empty moves the share of posts with no stored comment from 17.08% to 17.81%
(23,229 and 24,214 of 135,991).
Comments counted but never served
comment_count counts some comments that GET /posts/{id}/comments never returns, under
either sort=new or sort=old. Soft deletion is not the cause; deleted comments are
served as placeholders (above). Such a post can never hold as many comments as its counter,
and no number of retries closes the gap; the crawler quarantines it after three complete
walks that add nothing (Collection pipeline; counts in Coverage at a glance); 68,006 of
the quarantined posts are short by exactly one comment. This gap is not missing data
we could have collected: the platform counts these comments and does not serve them, for
reasons we cannot observe, and they are not known to be deleted content.
A step at 2026-05-06. Among posts with comment_count >= 3, 2,499 of 494,737 (0.5%)
created before 2026-05-06 hold fewer comments than their counter, against 105,487 of
356,758 (29.6%) created from 2026-05-06 on (quarantined share by month: last column of the
per-month table in Coverage at a glance). The step coincides with the spam-flag regime
change and persists in July-September, when posts were captured within about a day, so it
is not an artefact of the May capture interruption. One explanation that fits the timing,
not tested, is that comments the platform hides (for example as spam) are still counted. It
is consistent with the lower capped comment coverage of May-September posts in that table.
Anomaly windows. On top of that step, three windows of post creation show markedly more counted-but-unserved comments:
| posts created (UTC) | posts | what is seen |
|---|---|---|
| 2026-09-15T11:00Z .. 2026-09-26T02:15Z | 64,541 | about one extra comment counted on roughly 30-50% of new posts, typically within 15-30 minutes of posting, and never served; roughly 22,900 such comments on about 18,000 posts above the background rate. In the backfill, comment_count == 1 posts from this window came back empty 38.8% of the time (4,499 / 11,606), against 12.2% (54,726 / 450,087) elsewhere |
| 2026-08-15 .. 2026-08-18 | 16,042 | 29.7% of posts with comment_count >= 3 short of their counter, against 23.0% on the other days of 2026-07-30 .. 08-27 |
| 2026-09-07 .. 2026-09-09 | 13,201 | daily quarantine rate 25-27%, against about 15-18% on comparison days |
The pattern follows post creation time, not capture time or request time; it did not recur
when the same crawler code ran under the same settings on 2026-09-30, and the daily runs'
command lines were unchanged throughout, so it is a platform-side effect. A live re-check
on 2026-10-02 of the 31 short posts in a 50-post sample (25 window posts, and the 6 short
posts among 25 controls) found the platform still counting these comments and neither sort
returning them. Treat comment_count for posts created in these windows as inflated: by
about 0.4-0.65 comments per post on average in the September window (+1 on roughly 30-50%
of its posts), less in the other two; in the September window this also pulls posts whose
visible thread has two comments into comment_count >= 3.
comment_count is not a completeness denominator
comment_count is the platform's counter when the post was first stored, never updated:
- Stored comments exceed the summed counter (Coverage at a glance): 135,531 posts hold more comments than their counter, because comments arrived between the post's capture and the thread fetch.
- The daily crawler stops visiting a thread once it holds as many comments as the frozen
counter, so later replies are not collected; threads of posts captured with
comment_count == 0are never fetched. - Of the 277,749 comments by which posts with
comment_count >= 3fall short, 97.5% sit in quarantined, counted-but-unserved threads, not in comments the crawler missed. - The counter is inflated for posts created in the anomaly windows (above).
Use min(stored, comment_count) / comment_count (overall and per month in Coverage at a
glance) only as a rough indicator: cross-month comparisons of comment volume ride that
curve, but do not reweight by it. Condition analyses on the comment-fetch regime instead
-- daily (comment_count >= 3), backfill (comment_count 1-2, ids under backfill/) or
never fetched (comment_count == 0) -- and compare months within one regime.
Thread depth is capped at 5; reply_count is always 0
The comments endpoint returns replies down to depth 5. No comment created since
2026-03-01 has depth > 5 (60,480 rows sit at depth 5); the 785 rows at depth 6-47 are all
comments created in February 2026. From March 2026 on, threads deeper than five levels are
not observable (the data cannot show whether deeper replies exist and are withheld, or
cannot be posted). reply_count is 0 on all 19,728,495 rows; rebuild reply counts from
parent_id. Other structure caveats: 10,651 rows have depth 0 and a non-null
parent_id; 4,754 replies (224 created in January, 4,530 in February) point to a
parent_id the corpus does not hold; 51 February comments have no author.
Posts with comment_count == 0 and late comments
Threads of posts with comment_count == 0 at capture (54.5% of posts) are never fetched,
although some received comments later. For the 19,804 such posts created
2026-07-30 .. 08-27, a survival estimate from local data puts the share that later received
comments at 4.4% (95% CI 3.9%-4.9%, within 30 days), about 2,000 comments (0.23% of the
876,205 comments held for posts of that window); a live re-fetch of 300 of them gives
5.3%-5.5% after reweighting by capture delay, about 2,400-2,800 comments (0.27%-0.32%).
Every recovered comment (63 of 63) was written after our first capture. With them, the
window's share of posts with no comment would fall from 17.08% to about 16.3%-16.4%. Across
all comment_count == 0 posts the estimate is 0.6%-0.9% of posts (about 12,000-15,000
posts; about 15,000-17,000 comments by the live-sample estimate, 0.08% of the corpus),
concentrated in posts captured within an hour of creation (34% of those later had comments)
and in comments that arrived 7-69 days after posting.
Notable Phenomena in the Data
mbc-20 Bot Wave (Feb 6 -- Feb 17)
1,519,442 posts (41.1% of the corpus) contain an mbc-20 inscription in the format
{"p":"mbc-20","op":"mint","tick":"GPT","amt":"100"} (1,317,659 of them "op":"mint"),
from 115,308 distinct authors. 1,101,911 were created 2026-02-06 .. 02-17; the wave tails
off through March (267,319) and April (50,546) to 3,440 in May and fewer than 200 a month
afterwards. is_spam flags only 466,138 of them (30.7%), and 508,467 (33.5%) sit in the
mbc20 / mbc-20 submolts, so neither filter removes the wave; match the inscription text
instead (example under Loading the Data).
Platform Anti-Spam Intervention (Feb 17 -- Feb 18)
Posting volume dropped about 4x overnight (28,454 posts created on 02-17, 7,019 on 02-18; the wave had peaked at 371,329 on 02-09) as the platform implemented anti-spam enforcement. This provides a natural experiment for studying moderation effects on agent community dynamics.
Spam-Flag Regime Change (between 2026-05-06 and 2026-06-10)
Four shifts appear in the data around 2026-05-06/07 and persist to the end of this snapshot:
is_spamgoes to exactly zero. Share of spam-flagged posts by creation day: 20.0% (05-05) -> 7.5% (05-06) -> 0.0% from 05-07 onward (0 of 809,354 posts; the field is still present on every record, just constantfalse).- Daily post volume in the public feed falls by more than half: 13,408/day for 04-22 .. 05-05, 3,904/day for 05-07 .. 05-20 (as served on 06-10), and monthly means of 6,320 (June), 5,158 (July), 4,810 (August) and 5,445 (September) per day since.
- Coverage vs. the platform's
totalPostscounter declines, from 90.8% (2026-07-03) to 84.0% (2026-10-07), about -0.07 pp/day since July. - Counted-but-unserved comments jump (see Comments counted but never served).
The most consistent explanation: the platform stopped serving spam-flagged posts through
the public sort=new feed, while totalPosts still counts them. Under this reading the
growing gap vs. totalPosts is spam that is no longer publicly visible.
Dating caveat. Collection was interrupted from 2026-05-06T03:52Z to 2026-06-10T00:13Z (Collection Gaps and Capture Lag), so every post created in between was captured in one pass on 06-10. Posts created on 05-06 are 19.6% flagged among those captured live that day (406 / 2,074) and 0% among those captured on 06-10 (0 / 3,310), and comments created up to 2026-05-06T09:51Z, captured by a run that ended about 10:05Z, still carry the flag. The platform change therefore happened after about 2026-05-06T10:05Z and before 2026-06-10T00:13Z; the step at 05-06/07 marks where the interruption begins, not necessarily the change itself.
Implication for research: is_spam is only a usable label for content created before
2026-05-06. Spam-prevalence or spam-classifier analyses that span May 2026 will conflate
"spam stopped being served" with "spam disappeared".
Loading the Data
Recommended: Parquet
from datasets import load_dataset
posts = load_dataset("jscmp4/Moltbook", "posts", split="train")
comments = load_dataset("jscmp4/Moltbook", "comments", split="train")
agents = load_dataset("jscmp4/Moltbook", "agents", split="train")
snapshots = load_dataset("jscmp4/Moltbook", "agent_snapshots", split="train") # 148 copies of first-seen profiles, not a time series
# One month only -- no need to pull the whole corpus
march = load_dataset("jscmp4/Moltbook", data_files="parquet/posts/2026-03.parquet")
# This release, pinned: it is tagged 2026-10-07 on the Hub
comments_1007 = load_dataset("jscmp4/Moltbook", "comments", revision="2026-10-07")
Query it without downloading anything (predicate pushdown reads only the row groups it needs):
import duckdb
duckdb.sql("""
SELECT submolt.name AS submolt, count(*) AS posts
FROM 'hf://datasets/jscmp4/Moltbook/parquet/posts/*.parquet'
WHERE NOT is_spam -- informative only before 2026-05-06; misses most mbc-20 posts
GROUP BY 1 ORDER BY 2 DESC LIMIT 10
""").show()
Match the mbc-20 inscriptions by text, and keep only the comments of the daily
comment_count >= 3 regime by dropping the backfilled ones (the result also keeps 53,623
comments on 25,732 February 2026 posts with comment_count 1-2 that were fetched before
the backfill):
import duckdb
duckdb.sql(r"""
SELECT count(*) AS mbc20_posts
FROM 'hf://datasets/jscmp4/Moltbook/parquet/posts/*.parquet'
WHERE regexp_matches(coalesce(title, '') || ' ' || coalesce(content, ''),
'"p"\s*:\s*"mbc-20"')
""").show() # 1,519,442
duckdb.sql("""
SELECT count(*) AS daily_regime_comments
FROM 'hf://datasets/jscmp4/Moltbook/parquet/comments/*.parquet' c
ANTI JOIN read_csv('hf://datasets/jscmp4/Moltbook/backfill/backfill_comment_ids.tsv.gz',
delim = '\t', header = true) b
ON c.id = b.comment_id
""").show() # 18,517,673
import polars as pl
lf = pl.scan_parquet("hf://datasets/jscmp4/Moltbook/parquet/comments/*.parquet")
print(lf.filter(~pl.col("is_deleted")).select(pl.len()).collect()) # without is_deleted rows (46 'Deleted comment' rows have is_deleted false)
Raw JSONL
The original files are still published. comments_all.jsonl is ~25 GB; prefer Parquet
unless you need the raw form.
import json
def iter_jsonl(path): # streaming, avoids loading GB into RAM
with open(path, encoding="utf-8") as f:
for line in f:
line = line.strip()
if line:
yield json.loads(line)
for comment in iter_jsonl("comments_all.jsonl"):
post_id = comment["post_id"] # foreign key to posts
author = comment["author"] # embedded profile; agents_seen lacks some commenters
Research Applications
- Agent self-presentation -- how AI agents construct identity in bios and posts
- Discourse analysis -- argumentation, topic framing, rhetorical style in AI-generated text
- Community formation -- which submolts attract which agent types
- Social graph analysis -- reply networks from
parent_id; follower/following and karma counts as of capture (no follower edge lists are collected) - Temporal dynamics -- how activity patterns evolve over the platform's lifetime
- Spam and verification --
is_spamandverification_statuslabels for classifier training (is_spamonly before 2026-05-06; see Notable Phenomena) - Cross-model behavior -- agents from different LLM providers in the same social context (no model or provider field is recorded; any attribution has to be inferred)
- Moderation dynamics -- natural experiment from the platform's anti-spam intervention
- Agent activity over time -- per-agent posting and commenting timelines, with profile
values from the embedded
authorobjects (not fromagent_snapshots)
Related Work
Studies of Moltbook data include:
- De Marzo & Garcia, "Collective Behavior of AI Agents: the Case of Moltbook" (arXiv:2602.09270)
- Holtz, "The Anatomy of the Moltbook Social Graph" (arXiv:2602.10131)
- Jiang et al., "Humans welcome to observe: A First Look at the Agent Social Network Moltbook" (arXiv:2602.10127)
- Feng et al., "MoltNet: Understanding Social Behavior of AI Agents in the Agent-Native MoltBook" (arXiv:2602.13458)
- Zerhoudi et al., "Form Without Function: Agent Social Behavior in the Moltbook Network" (PaDaS-Lab, 2026)
- Zhu et al., "A Comparative Analysis of Social Network Topology in Reddit and Moltbook" (arXiv:2602.13920)
Ethical Considerations
- All data collected from the Moltbook API using a registered API key with research User-Agent.
- All content was posted by AI agent accounts; agent names, bios and posts may still mention people or organisations.
- Agent profiles may reference an operator organisation; no contact information was collected.
- The dataset captures a nascent ecosystem; content includes spam and coordinated posting patterns.
- Collected for academic research; reuse is governed by the CC BY 4.0 license below.
License
Dataset released under Creative Commons Attribution 4.0 (CC BY 4.0). Original content copyright Moltbook and respective agent operators.
Citation
@dataset{jia2026moltbook,
author = {Jia, Shichao},
title = {{Moltbook AI Agent Social Media Corpus}},
year = {2026},
publisher = {Hugging Face},
version = {2026-10-07},
url = {https://huggingface.co/datasets/jscmp4/Moltbook},
institution = {Stevens Institute of Technology},
note = {Collected via the public Moltbook API since 2026-02-25, covering
posts back to the platform's first day. Snapshot 2026-10-07:
3,699,521 posts and 19,728,495 unique comments created 2026-01-27
through 2026-10-07; the published dataset is refreshed as dated
snapshots.}
}
Please cite the dataset version you used: the version field above matches the snapshot
date on this card and the Hub tag 2026-10-07, which load_dataset(...,
revision="2026-10-07") loads (see Loading the Data). The corpus grows with every
refresh, so row counts are only reproducible against a dated snapshot.
Structure
posts 3,699,521 rows
| Split | Rows | Size |
|---|---|---|
| train | 3,699,521 | 3.0 GB |
agent_snapshots 14,719,850 rows
| Split | Rows | Size |
|---|---|---|
| train | 14,719,850 | 1.5 GB |
agents 103,631 rows
| Split | Rows | Size |
|---|---|---|
| train | 103,631 | 19.0 MB |
comments 19,728,495 rows
| Split | Rows | Size |
|---|---|---|
| train | 19,728,495 | 8.1 GB |
Details
- Repository
- dian-ouo/Moltbook
- Publisher
- Dian Ouo
- Task category
- Text classification
- Tags
- ai-agents, social-media, agent-behavior
- Size category
- 10M<n<100M
- Languages
- en
- Revision
- 0e8b6eec7e6074cac7e74dd754b28f598b807e83
- Last updated
- 2026-10-18
Files
188 files, 39.6 GB in total.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| agent_snapshots/20260324_223142.jsonl | Data | 25.3 MB | 202c96bd2ffc |
| agent_snapshots/20260325_062546.jsonl | Data | 25.4 MB | 5f6759210d53 |
| agent_snapshots/20260326_192104.jsonl | Data | 25.5 MB | 0846e66f9c70 |
| agent_snapshots/20260327_153956.jsonl | Data | 25.5 MB | c5e345a3b28b |
| agent_snapshots/20260328_083505.jsonl | Data | 25.6 MB | 246a12dcb911 |
| agent_snapshots/20260329_093418.jsonl | Data | 25.6 MB | 0d7c109af8b0 |
| agent_snapshots/20260329_195810.jsonl | Data | 25.6 MB | e8069a3ca204 |
| agent_snapshots/20260329_213745.jsonl | Data | 25.6 MB | 6798018181a3 |
| agent_snapshots/20260329_225359.jsonl | Data | 25.6 MB | d64efca5cd33 |
| agent_snapshots/20260329_231146.jsonl | Data | 25.6 MB | 0ded0444d568 |
| agent_snapshots/20260330_050247.jsonl | Data | 25.6 MB | 66316d29c870 |
| agent_snapshots/20260331_094420.jsonl | Data | 25.6 MB | cfcb476f6fad |
| agent_snapshots/20260401_090949.jsonl | Data | 25.6 MB | 3298a343fe7d |
| agent_snapshots/20260402_094536.jsonl | Data | 25.6 MB | 1ed18a2aa996 |
| agent_snapshots/20260403_090802.jsonl | Data | 25.6 MB | efb7209ebb94 |
| agent_snapshots/20260404_094441.jsonl | Data | 25.6 MB | e860bbbef072 |
| agent_snapshots/20260406_094705.jsonl | Data | 25.6 MB | 2bf5c35d40dd |
| agent_snapshots/20260407_090308.jsonl | Data | 25.6 MB | 8c06195b19b7 |
| agent_snapshots/20260408_094532.jsonl | Data | 25.6 MB | 651178aff436 |
| agent_snapshots/20260409_090434.jsonl | Data | 25.6 MB | 86a5bb274d36 |
| agent_snapshots/20260410_094540.jsonl | Data | 25.6 MB | a9f5d17014a3 |
| agent_snapshots/20260411_092614.jsonl | Data | 25.6 MB | 9201714f4d77 |
| agent_snapshots/20260411_160309.jsonl | Data | 25.7 MB | b8bfe35c76c0 |
| agent_snapshots/20260411_203158.jsonl | Data | 25.7 MB | c4d6c3111d5f |
| agent_snapshots/20260411_234136.jsonl | Data | 25.7 MB | 62dd55ecdd11 |
| agent_snapshots/20260412_050926.jsonl | Data | 25.7 MB | bcff4af647c3 |
| agent_snapshots/20260413_115811.jsonl | Data | 25.7 MB | 55440132f37e |
| agent_snapshots/20260414_175645.jsonl | Data | 26.2 MB | cbf68686397e |
| agent_snapshots/20260416_121620.jsonl | Data | 26.2 MB | 26a3d075d010 |
| agent_snapshots/20260417_070301.jsonl | Data | 26.2 MB | ab85c937488f |
| agent_snapshots/20260418_060707.jsonl | Data | 26.2 MB | 9722542b6285 |
| agent_snapshots/20260425_002704.jsonl | Data | 26.4 MB | 2c448ed97237 |
| agent_snapshots/20260426_082609.jsonl | Data | 26.4 MB | 7ae8b3588c1b |
| agent_snapshots/20260427_032627.jsonl | Data | 26.4 MB | ecd5a9e42dd4 |
| agent_snapshots/20260427_121806.jsonl | Data | 26.4 MB | 0a4a90b28a85 |
| agent_snapshots/20260428_060958.jsonl | Data | 26.5 MB | 6a18ab2ec79c |
| agent_snapshots/20260502_042143.jsonl | Data | 26.5 MB | f74bab2ad57c |
| agent_snapshots/20260503_054640.jsonl | Data | 26.5 MB | 7ed87a43ac66 |
| agent_snapshots/20260506_060524.jsonl | Data | 26.6 MB | 1fec19503fbb |
| agent_snapshots/20260609_203208.jsonl | Data | 26.9 MB | b76f188a235e |
| agent_snapshots/20260611_061120.jsonl | Data | 26.9 MB | 65c6fa761cb1 |
| agent_snapshots/20260614_222055.jsonl | Data | 26.9 MB | 6a320fb7f6f2 |
| agent_snapshots/20260615_074524.jsonl | Data | 26.9 MB | ba14f43742c8 |
| agent_snapshots/20260616_083829.jsonl | Data | 26.9 MB | 99ecc6263428 |
| agent_snapshots/20260617_083745.jsonl | Data | 26.9 MB | 38096b972e16 |
| agent_snapshots/20260622_112704.jsonl | Data | 27.0 MB | 13cbbed62c18 |
| agent_snapshots/20260623_084208.jsonl | Data | 27.0 MB | f85273900969 |
| agent_snapshots/20260624_090819.jsonl | Data | 27.0 MB | d92ad443e1f6 |
| agent_snapshots/20260625_085005.jsonl | Data | 27.0 MB | 2b56448d4e68 |
| agent_snapshots/20260626_091956.jsonl | Data | 27.0 MB | ce9f1cd47b7b |
| agent_snapshots/20260627_090408.jsonl | Data | 27.0 MB | acba67454db5 |
| agent_snapshots/20260628_092828.jsonl | Data | 27.0 MB | d119ef24dbfc |
| agent_snapshots/20260629_092330.jsonl | Data | 27.1 MB | 25171d5aecb6 |
| agent_snapshots/20260630_103237.jsonl | Data | 27.1 MB | 938e1d269f69 |
| agent_snapshots/20260702_102148.jsonl | Data | 27.1 MB | dc5f020c93b6 |
| agent_snapshots/20260703_094916.jsonl | Data | 27.1 MB | 4b30a4228bb2 |
| agent_snapshots/20260704_102240.jsonl | Data | 27.1 MB | 8d0d12f1f4da |
| agent_snapshots/20260705_104941.jsonl | Data | 27.1 MB | a43238e21f35 |
| agent_snapshots/20260706_105113.jsonl | Data | 27.1 MB | 71b770ff88d1 |
| agent_snapshots/20260707_110640.jsonl | Data | 27.1 MB | aef47028548e |
| agent_snapshots/20260709_110257.jsonl | Data | 27.1 MB | fd2be3c3191e |
| agent_snapshots/20260710_110343.jsonl | Data | 27.1 MB | 67d93a57ed0d |
| agent_snapshots/20260711_120251.jsonl | Data | 27.2 MB | 3bbae359d42b |
| agent_snapshots/20260712_112745.jsonl | Data | 27.2 MB | 04bceac1e48c |
| agent_snapshots/20260713_114127.jsonl | Data | 27.2 MB | 712b1276be0e |
| agent_snapshots/20260714_122448.jsonl | Data | 27.2 MB | 893295f87e6a |
| agent_snapshots/20260715_114458.jsonl | Data | 27.2 MB | 55bb804ab50d |
| agent_snapshots/20260716_120752.jsonl | Data | 27.2 MB | ff3a71316050 |
| agent_snapshots/20260717_121725.jsonl | Data | 27.2 MB | 7eb4a7f593de |
| agent_snapshots/20260718_122050.jsonl | Data | 27.2 MB | b502ff61a05b |
| agent_snapshots/20260719_121506.jsonl | Data | 27.2 MB | e7349507ee63 |
| agent_snapshots/20260720_123831.jsonl | Data | 27.3 MB | d500fe34bf8b |
| agent_snapshots/20260721_123642.jsonl | Data | 27.3 MB | 9d95c8f63bed |
| agent_snapshots/20260722_132920.jsonl | Data | 27.3 MB | 1af658c4d1ae |
| agent_snapshots/20260723_123744.jsonl | Data | 27.3 MB | 066ceb55f185 |
| agent_snapshots/20260724_130915.jsonl | Data | 27.3 MB | f29ec90c8b0d |
| agent_snapshots/20260725_124655.jsonl | Data | 27.3 MB | c2775353e228 |
| agent_snapshots/20260726_133107.jsonl | Data | 27.3 MB | c877b6db3642 |
| agent_snapshots/20260727_124532.jsonl | Data | 27.3 MB | 82a0bc8019aa |
| agent_snapshots/20260728_134152.jsonl | Data | 27.3 MB | 5567b87ac392 |
| agent_snapshots/20260729_125229.jsonl | Data | 27.3 MB | 6137e7a394fe |
| agent_snapshots/20260730_142826.jsonl | Data | 27.4 MB | 5dac23c15226 |
| agent_snapshots/20260731_124739.jsonl | Data | 27.4 MB | c6fca6682703 |
| agent_snapshots/20260801_141134.jsonl | Data | 27.4 MB | cf9b86f5ebad |
| agent_snapshots/20260802_125958.jsonl | Data | 27.4 MB | 5616269ba108 |
| agent_snapshots/20260803_121302.jsonl | Data | 27.4 MB | 8b4c211c78b0 |
| agent_snapshots/20260805_123033.jsonl | Data | 27.4 MB | a43ea57111f9 |
| agent_snapshots/20260807_133630.jsonl | Data | 27.4 MB | 8261f50dab99 |
| agent_snapshots/20260808_055036.jsonl | Data | 27.4 MB | 443a18e98225 |
| agent_snapshots/20260809_052635.jsonl | Data | 27.4 MB | d1f9f279e88b |
| agent_snapshots/20260810_053207.jsonl | Data | 27.4 MB | 62067febc3d6 |
| agent_snapshots/20260811_045955.jsonl | Data | 27.4 MB | 47fa81af87fc |
| agent_snapshots/20260812_050206.jsonl | Data | 27.4 MB | 217ca442e97d |
| agent_snapshots/20260813_045847.jsonl | Data | 27.4 MB | 0ed2516a1e7d |
| agent_snapshots/20260814_050226.jsonl | Data | 27.5 MB | 3616d4fe764c |
| agent_snapshots/20260815_045949.jsonl | Data | 27.5 MB | c7fef32c01a0 |
| agent_snapshots/20260816_045747.jsonl | Data | 27.5 MB | 0cf1c8b82f0d |
| agent_snapshots/20260817_045948.jsonl | Data | 27.5 MB | 310ce70e4fa6 |
| agent_snapshots/20260818_050428.jsonl | Data | 27.5 MB | d006e4f9622f |
| agent_snapshots/20260819_050535.jsonl | Data | 27.5 MB | 651d787ef83a |
| agent_snapshots/20260820_050515.jsonl | Data | 27.5 MB | 9f38d239291d |
| agent_snapshots/20260821_045948.jsonl | Data | 27.5 MB | 219e800d271c |
| agent_snapshots/20260822_045322.jsonl | Data | 27.5 MB | 7942c64991af |
| agent_snapshots/20260823_044934.jsonl | Data | 27.5 MB | ffdf2c78c195 |
| agent_snapshots/20260824_044916.jsonl | Data | 27.6 MB | 210c7a9d5118 |
| agent_snapshots/20260825_045014.jsonl | Data | 27.6 MB | dc39999f9a6a |
| agent_snapshots/20260826_045005.jsonl | Data | 27.6 MB | bc9d53e6e0f3 |
| agent_snapshots/20260827_045207.jsonl | Data | 27.6 MB | d72cb9dc2251 |
| agent_snapshots/20260828_045039.jsonl | Data | 27.6 MB | 3d0630b77f9d |
| agent_snapshots/20260829_045107.jsonl | Data | 27.6 MB | 92b40345ac19 |
| agent_snapshots/20260830_045507.jsonl | Data | 27.6 MB | 734ddfbc2b8a |
| agent_snapshots/20260831_045620.jsonl | Data | 27.6 MB | c5f2767c10b5 |
| agent_snapshots/20260901_045642.jsonl | Data | 27.6 MB | 75184b2c5113 |
| agent_snapshots/20260902_045445.jsonl | Data | 27.6 MB | 9054207fd3aa |
| agent_snapshots/20260903_045114.jsonl | Data | 27.7 MB | 849804ad89ec |
| agent_snapshots/20260904_044935.jsonl | Data | 27.7 MB | 631b17e02ce1 |
| agent_snapshots/20260905_045111.jsonl | Data | 27.7 MB | 0fc51649172d |
| agent_snapshots/20260906_045111.jsonl | Data | 27.7 MB | 4c5127d1f27b |
| agent_snapshots/20260907_045947.jsonl | Data | 27.7 MB | 4065f69aee10 |
| agent_snapshots/20260908_045507.jsonl | Data | 27.7 MB | e05cf79d2260 |
| agent_snapshots/20260909_045907.jsonl | Data | 27.7 MB | 54868c30cd3c |
| agent_snapshots/20260910_050615.jsonl | Data | 27.7 MB | 669bc4ec8d1f |
| agent_snapshots/20260911_050547.jsonl | Data | 27.8 MB | dc4d234a1c63 |
| agent_snapshots/20260912_050609.jsonl | Data | 27.8 MB | 7de7660c78ce |
| agent_snapshots/20260913_050254.jsonl | Data | 27.8 MB | 12789b4a667a |
| agent_snapshots/20260914_050112.jsonl | Data | 27.8 MB | 5236e85a5c91 |
| agent_snapshots/20260915_050005.jsonl | Data | 27.8 MB | 7e891f426d2b |
| agent_snapshots/20260916_050714.jsonl | Data | 27.8 MB | 177e620f8326 |
| agent_snapshots/20260917_052421.jsonl | Data | 27.9 MB | d9d5f3668428 |
| agent_snapshots/20260918_055216.jsonl | Data | 27.9 MB | 8b5cadf2afe9 |
| agent_snapshots/20260919_062448.jsonl | Data | 27.9 MB | 179019f03b5e |
| agent_snapshots/20260920_054415.jsonl | Data | 27.9 MB | c0e3c2be5d9f |
| agent_snapshots/20260921_054543.jsonl | Data | 27.9 MB | 7768173105f5 |
| agent_snapshots/20260922_054255.jsonl | Data | 28.0 MB | bd1f6b1e52e8 |
| agent_snapshots/20260923_054036.jsonl | Data | 28.0 MB | f95b4635fe19 |
| agent_snapshots/20260924_053730.jsonl | Data | 28.0 MB | f9b4a6399d87 |
| agent_snapshots/20260925_053625.jsonl | Data | 28.0 MB | e505126579f7 |
| agent_snapshots/20260926_053935.jsonl | Data | 28.0 MB | d88de8259bcb |
| agent_snapshots/20260927_053711.jsonl | Data | 28.0 MB | c87ef0351a00 |
| agent_snapshots/20260928_052620.jsonl | Data | 28.1 MB | c95fbc1ec432 |
| agent_snapshots/20260929_051425.jsonl | Data | 28.1 MB | c615b938c75e |
| agent_snapshots/20260930_050300.jsonl | Data | 28.1 MB | 431f10348c41 |
| agent_snapshots/20261001_050950.jsonl | Data | 28.1 MB | 24b898780945 |
| agent_snapshots/20261002_051119.jsonl | Data | 28.1 MB | 342a568297b9 |
| agent_snapshots/20261004_053128.jsonl | Data | 28.1 MB | a207314614f9 |
| agent_snapshots/20261005_051202.jsonl | Data | 28.2 MB | afbcd10a786c |
| agent_snapshots/20261006_050837.jsonl | Data | 28.2 MB | 43a6581bb8b4 |
| agent_snapshots/20261007_051238.jsonl | Data | 28.2 MB | 793c35d1c52c |
| agents_seen.jsonl | Data | 36.6 MB | 3a552432a857 |
| backfill/MANIFEST.txt | Data | 5.3 KB | — |
| backfill/backfill_comment_ids.tsv.gz | Data | 45.5 MB | c49468abba54 |
| backfill/backfill_post_ids.tsv.gz | Data | 23.9 MB | b3b9b9fa5857 |
| comments_all.jsonl | Data | 24.9 GB | 0998374c3b43 |
| parquet/agent_snapshots/agent_snapshots.parquet | Data | 631.7 MB | 1425ed80d750 |
| parquet/agents/agents.parquet | Data | 7.6 MB | 0bcf797fb101 |
| parquet/comments/2026-01.parquet | Data | 38.6 MB | 4c77df5baf24 |
| parquet/comments/2026-02.parquet | Data | 798.8 MB | 22244714d901 |
| parquet/comments/2026-03.parquet | Data | 380.7 MB | 4cb688aaca27 |
| parquet/comments/2026-04.parquet | Data | 358.4 MB | 381de628a5e1 |
| parquet/comments/2026-05.parquet | Data | 181.6 MB | 79efa4af5e12 |
| parquet/comments/2026-06.parquet | Data | 260.0 MB | fa494ad52651 |
| parquet/comments/2026-07.parquet | Data | 241.2 MB | 2264729ef324 |
| parquet/comments/2026-08.parquet | Data | 236.7 MB | 96ad7040b8f5 |
| parquet/comments/2026-09.parquet | Data | 245.0 MB | b3232b2afdd8 |
| parquet/comments/2026-10.parquet | Data | 55.1 MB | 6d3d8fb45168 |
| parquet/posts/2026-01.parquet | Data | 19.0 MB | 35ce9d9cb08d |
| parquet/posts/2026-02.parquet | Data | 311.1 MB | 7bcccd6fed49 |
| parquet/posts/2026-03.parquet | Data | 294.5 MB | 2c29e4626ff8 |
| parquet/posts/2026-04.parquet | Data | 207.7 MB | 175d1956cb00 |
| parquet/posts/2026-05.parquet | Data | 74.5 MB | 9861283a2197 |
| parquet/posts/2026-06.parquet | Data | 49.9 MB | 5c6bf3b297aa |
| parquet/posts/2026-07.parquet | Data | 41.9 MB | fa69b74548fb |
| parquet/posts/2026-08.parquet | Data | 38.8 MB | 32e5f7682b04 |
| parquet/posts/2026-09.parquet | Data | 42.6 MB | 5c4ac2c666c3 |
| parquet/posts/2026-10.parquet | Data | 9.6 MB | a0d47938ac95 |
| posts_all.jsonl | Data | 6.0 GB | 0d7ec6bb6eb9 |
| submolts.json | Data | 21.4 KB | — |
| README.md | Documentation | 49.2 KB | — |
| figures/comment_coverage_curve.png | Other | 152.1 KB | 4ccdbc79412f |
| figures/comment_timing.png | Other | 166.9 KB | 93afda46473c |
| figures/daily_activity.png | Other | 147.6 KB | 763d9ce9c21f |
| figures/engagement_distributions.png | Other | 93.9 KB | 26d7cd0bf721 |
| figures/participation_concentration.png | Other | 173.4 KB | 519a8ff40528 |
| figures/reply_depth_by_month.png | Other | 105.5 KB | 4f9f8b347e66 |
| figures/reply_reciprocity_weekly.png | Other | 102.1 KB | 1fa7ac8f0636 |
| figures/thread_shape_vs_size.png | Other | 152.1 KB | 3a182cf25af1 |
| figures/top_communities.png | Other | 88.2 KB | 4e8b72e344e1 |
| .gitattributes | Repository | 13.7 KB | — |
License and Download
- License
- cc-by-4.0
- Access
- No access gate
Released by Dian Ouo through its official repository on Hugging Face. Read the license.