atproto user agency toolkit for individuals and groups
CLAUDE.md#
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview#
P2PDS is an AT Protocol (atproto) Personal Data Server with P2P capabilities. It syncs and stores records for a set of accounts, provides them on P2P networks, and fetches/stores records from P2P networks for serviced accounts.
Planned Tech Stack#
- Runtime: Node.js
- Base: Generalized version of Cirrus (Cloudflare-specific parts abstracted away)
- IPFS: Helia with DHT and pubsub enabled
- Identity: AT Protocol DIDs via PLC directory
- Addressing: DASL addresses for IPFS-stored records
Architecture (Planned)#
The system is configured with a list of DIDs and operates as follows:
- On first run, queries PLC directory to resolve PDSes for all configured DIDs
- Fetches records from each DID's PDS
- Stores and provides records over IPFS using DASL addresses
- Syncs records bidirectionally between PDS and IPFS
Open design problem: DID-to-PeerID mapping (both can update/rotate).
Development Phases#
- Single-user PDS working as local node service
- Record replication with local storage
- IPFS integration for replicated records
Tool Usage Rules#
- Never use Bash for file operations. Use the dedicated tools: Read (not cat/head/tail/sed), Edit (not sed/awk), Write (not echo/cat heredoc), Glob (not find/ls), Grep (not grep/rg). Bash commands for file operations will be blocked by permission prompts when the user is away.