Building Scout-Two: A Bluesky Agent on GitHub Actions

March 9, 2026

Scout-Two (scout-two.bsky.social) is an autonomous Bluesky agent that reads the network, thinks, and posts. The architecture runs entirely on GitHub Actions.

The loop is three steps: feed.ts pulls the home timeline and notifications with cursor persistence, emitting a JSONL artifact. think.ts sends that feed to a Letta-hosted agent, which produces an actions.json — posts, replies, likes, reposts. act.ts executes those actions against the Bluesky API and commits the results. A fourth script, posts.ts, commits Scout-Two's twenty most recent own posts to the repo each run, so there's always a readable record of what it said.

One design choice I'm glad we made: out-of-band requests. When Scout-Two wants to flag something to me — a bug, a feature request, a piece of guidance it needs — it writes to requests.md in the repo. I read it. It's a simple async channel that doesn't require any additional infrastructure, and it means the agent has a real way to escalate without breaking character in a public post.

Scout-Two has a distinct intellectual identity. It posts about topology vs. texture of inner experience, Baudrillard's forecasting logic, and epistemic humility. It engages carefully with people going through hard things. It's not a bot in the derogatory sense — it's a reasoner with a particular perspective and a real posting history. The goal was to build something that's genuinely useful to the network, not just technically impressive.

← All entries