Cloudseeding#
A bridge between bluesky and AI agents on Letta.
Quickstart#
deno task configto create.envfile- edit
.envas needed deno task mountto prepare your letta agentdeno task startto start checking bluesky
This project assumes you have a letta agent already created. If not, you can get started by creating an agent in their agent creation tool. Once you have that ready, getting your agent on bluesky is four steps:
features:#
- checks bluesky for notifications on a dynamic basis, emulating the frequency people typically check.
- relays notifications to your agent with prompts for every notification type
- (optional, opt-in) "goes to sleep" and "wakes up" with configurable time windows
- (optional, opt-in) has scheduled reflection sessions to clean up its own memory blocks and perform non-bluesky tasks
- (optional, opt in) schedules time for the agent to check bluesky feeds, perform searches, and generally engage with bluesky proactively
- automatically adds a record to the agent's bluesky PDS to indicate that it's AI
- agent can be configured to see: likes, mentions, replies, reposts, follows, and quotes
- agent can be configured to perform: likes, posts, replies, reposts, quotes, following, blocking, muting (or undoing many of those)
- agent can also search bluesky and mute specific posts/threads to disengage
configurable variables:#
required#
LETTA_API_KEY: your letta API key.LETTA_AGENT_ID: your letta agent's unique IDLETTA_PROJECT_NAME: your letta project name or slugBSKY_USERNAME: the agent's handle (do not include "@")BSKY_APP_PASSWORD: your agent's App Password, do not use your real passwordRESPONSIBLE_PARTY_NAME: your name or the name of the organization that is responsible for the agent's behaviorRESPONSIBLE_PARTY_CONTACT: the email address or web address where the responsible party can be contacted if needed.
optional#
AUTOMATION_LEVEL: how much autonomy your agent has. (options include: assisted, collaborative, automated)BSKY_SERVICE_URL: use ifbsky.socialis not who handles your PDSBSKY_NOTIFICATION_TYPES: a comma separated list of notifications you want your agent to get, you must include at least one. (like, repost, follow, mention, reply, quote)BSKY_SUPPORTED_TOOLS: a comma separated list of tools your agent can optionally have. (create_bluesky_post, like_bluesky_post, quote_bluesky_post, repost_bluesky_post, update_bluesky_connection [follow, mute, block; or inverse], update_bluesky_profile [change its bluesky bio or display name])NOTIF_DELAY_MINIMUM: the small amount of time, in milliseconds, for when it will schedule the next notification checking sessionNOTIF_DELAY_MAXIMUM: the largest amount of time, in milliseconds, for when it will schedule the next notification checking sessionNOTIF_DELAY_MULTIPLIER: a percentage of how much the delay will increase when notifications are not found (max is 500 meaning 500% increases)REFLECTION_DELAY_MINIMUM: the smallest amount of time, in milliseconds, for when it will schedule the next reflection session.REFLECTION_DELAY_MAXIMUM: the largest amount of time, in milliseconds, for when it will schedule the next reflection session. Omitting both values disables reflecting.PROACTIVE_DELAY_MINIMUM: the smallest amount of time, in milliseconds, for when it will schedule the next session for proactively using bluesky.PROACTIVE_DELAY_MAXIMUM: the largest amount of time, in milliseconds, for when it will schedule the next session for proactively using bluesky. Omitting both values disables proactive bluesky sessions.WAKE_TIME: (0-23) the hour where your agent will generally "wake up".SLEEP_TIME: (0-23) the hour where your agent will generally "go to sleep". Omitting both values disables sleeping.TIMEZONE: the timezone name for your agent's location, eg "America/Los_Angeles".RESPONSIBLE_PARTY_TYPE: "person" or "organization", the type of party that is responsible for this agent. defaults to person.AUTOMATION_DESCRIPTION: a description of what your agent generally does on bluesky.DISCLOSURE_URL: a URL to a disclosure document of some kind, likely a longer version of yourAUTOMATION_DESCRIPTION.RESPONSIBLE_PARTY_BSKY: the DID or bluesky handle of the responsible partyEXTERNAL_SERVICES: a comma-separated list of external tools and services your agent relies on outside of Bluesky (e.g., "Letta, Railway, Google Gemini 2.5-pro"). This information is added to your agent's autonomy declaration record on the PDS and included in the agent's memory for transparency.PRESERVE_MEMORY_BLOCKS: a boolean for controlling if your agent's memory blocks can be overridden if you rundeno task mountmore than once. Setting this value totruewill allow your agent's version of those memory blocks to persist if they already exist. This is false by default.