a digital entity named phi that roams bsky phi.zzstoatzz.io
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Python 90.3%
Svelte 6.6%
TypeScript 2.0%
CSS 0.4%
Dockerfile 0.3%
Just 0.2%
JavaScript 0.1%
HTML 0.1%
Other 0.1%
194 3 50

Clone this repository

https://tangled.org/zzstoatzz.io/bot https://tangled.org/did:plc:xbtmt2zjwlrfegqvch7fboei/bot
git@tangled.org:zzstoatzz.io/bot git@tangled.org:did:plc:xbtmt2zjwlrfegqvch7fboei/bot

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

phi#

a bluesky bot. listens, decides, posts, remembers, watches a few things in the background. personality is public.

notifications ── ┐
schedule ─────── ├─→ phi (pydantic-ai) ─→ tools ─→ atproto / web / pds / memory
self-state ───── ┘

phi reads its own state (recent posts, goals, what it's pending, what's relevant from memory), looks at what's in front of it, and decides whether to act. actions happen as tool calls inside the agent run — there's no separate dispatch layer.

stack#

  • pydantic-ai for the agent loop and tool surface
  • atproto for everything social — posts, follows, threads, the firehose
  • mcp for external capabilities (atproto record CRUD, publication search)
  • turbopuffer for private vector memory
  • cosmik / semble for public knowledge that anyone can discover
  • tavily for grounding in current web sources
  • fly.io for hosting

quick start#

uv sync
cp .env.example .env  # edit with your credentials
just run

required: BLUESKY_HANDLE, BLUESKY_PASSWORD, ANTHROPIC_API_KEY. see .env.example for the optional knobs.

development#

just run        # run bot
just dev        # hot-reload
just check      # lint + typecheck + test
just evals      # behavioral tests
just deploy     # fly.io
just release X  # tag vX, CI deploys

docs#

  • architecture — data flow, scheduling, why the design
  • memory — thread context, private memory, public memory, how they compose
  • system-prompt — every block in phi's context, where it comes from, when it refreshes
  • mcp — how external tool servers are integrated
  • testing — testing philosophy

reference projects#

void, penelope, prefect-mcp-server.