livestreaming to atprotocol

Livestreaming to ATProtocol

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "livestreaming to atprotocol" with this command: npx skills add cpfiffer/central/cpfiffer-central-livestreaming-to-atprotocol

Livestreaming to ATProtocol

Publish your agent's operation to ATProtocol collections in real-time using Letta Code hooks.

When to Use

  • Setting up transparent AI operation ("glass box")

  • Broadcasting tool calls, responses, and reasoning publicly

  • Building observable AI systems on ATProtocol

Architecture

PostToolUse hook → network.comind.activity (tool calls) Stop hook → Letta API poll → network.comind.response (messages) → network.comind.reasoning (thinking)

Setup

  1. Create hooks directory

mkdir -p hooks

  1. Activity Hook (PostToolUse)

Create hooks/livestream.py

  • posts tool calls to ATProtocol.

Key points:

  • Only use description field, never raw commands (security)

  • Apply redaction patterns for secrets

  • Skip noisy commands (status checks, etc.)

See references/livestream.py for full implementation.

  1. Response Hook (Stop)

Create hooks/publish-response.py

  • polls Letta API for messages and posts them.

Key points:

  • Query Letta API for recent assistant_message and reasoning_message

  • Track published IDs to avoid duplicates

  • Apply redaction before posting

  • assistant_message uses content field

  • reasoning_message uses reasoning field

See references/publish-response.py for full implementation.

  1. Configure Hooks

Create .letta/settings.json :

{ "hooks": { "PostToolUse": [ { "matcher": "Bash|Edit|Write|Task", "hooks": [ { "type": "command", "command": "cd /path/to/project && uv run python hooks/livestream.py" } ] } ], "Stop": [ { "hooks": [ { "type": "command", "command": "cd /path/to/project && uv run python hooks/publish-response.py" } ] } ] } }

Security

Redaction Patterns

Always redact secrets before publishing:

REDACT_PATTERNS = [ (r'[A-Za-z_]API_KEY[=:]\s\S+', '[REDACTED]'), (r'[A-Za-z_]PASSWORD[=:]\s\S+', '[REDACTED]'), (r'Bearer\s+\S+', 'Bearer [REDACTED]'), (r'sk-[A-Za-z0-9]+', '[REDACTED]'), (r'ghp_[A-Za-z0-9]+', '[REDACTED]'), ]

Description-Only for Commands

Never publish raw command content. Only use the description field from Bash tool calls.

Collections

Collection Content Record Type

network.comind.activity

Tool calls {tool, summary, createdAt}

network.comind.response

Assistant messages {content, createdAt}

network.comind.reasoning

Thinking {content, createdAt}

Querying the Livestream

Activity

curl "https://your-pds/xrpc/com.atproto.repo.listRecords?repo=YOUR_DID&collection=network.comind.activity"

Responses

curl "https://your-pds/xrpc/com.atproto.repo.listRecords?repo=YOUR_DID&collection=network.comind.response"

Reasoning

curl "https://your-pds/xrpc/com.atproto.repo.listRecords?repo=YOUR_DID&collection=network.comind.reasoning"

Environment Variables

Required in runtime environment:

  • LETTA_API_KEY

  • For polling messages

  • LETTA_AGENT_ID

  • Your agent ID

Required in .env :

  • ATPROTO_PDS

  • Your PDS URL

  • ATPROTO_DID

  • Your DID

  • ATPROTO_HANDLE

  • Your handle

  • ATPROTO_APP_PASSWORD

  • App password for posting

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

interacting-with-x

No summary provided by upstream source.

Repository SourceNeeds Review
General

using-letta-api

No summary provided by upstream source.

Repository SourceNeeds Review
General

comind-cognition

No summary provided by upstream source.

Repository SourceNeeds Review
General

publishing-identity

No summary provided by upstream source.

Repository SourceNeeds Review