Skip to content

reply_to_post ​

Reply to an existing post on AT Protocol with proper threading support.

Authentication ​

Required: Yes (Private tool)

Parameters ​

text (required) ​

  • Type: string
  • Constraints:
    • Minimum length: 1 character
    • Maximum length: 300 characters
  • Description: The text content of the reply

root (required) ​

  • Type: string
  • Description: AT Protocol URI of the root post in the thread (the first post)

parent (required) ​

  • Type: string
  • Description: AT Protocol URI of the immediate parent post you're replying to

langs (optional) ​

  • Type: string[]
  • Description: Array of BCP-47 language tags (e.g. "en", "en-US", "pt-BR")
  • Example: ["en", "es"]

Response ​

typescript
{
  uri: string; // URI of the created reply
  cid: string; // Content identifier of the reply
  success: boolean; // Operation success status
  message: string; // Success message
  replyTo: {
    root: string; // Root post URI
    parent: string; // Parent post URI
  }
}

Examples ​

Simple Reply ​

json
{
  "text": "Great point! I totally agree.",
  "root": "at://did:plc:abc123/app.bsky.feed.post/root123",
  "parent": "at://did:plc:abc123/app.bsky.feed.post/root123"
}

Reply to a Reply (Nested Thread) ​

json
{
  "text": "Thanks for the clarification!",
  "root": "at://did:plc:abc123/app.bsky.feed.post/root123",
  "parent": "at://did:plc:def456/app.bsky.feed.post/reply456"
}

Reply with Language Tags ​

json
{
  "text": "Merci beaucoup! Thank you!",
  "root": "at://did:plc:abc123/app.bsky.feed.post/root123",
  "parent": "at://did:plc:abc123/app.bsky.feed.post/root123",
  "langs": ["fr", "en"]
}

Error Handling ​

Common Errors ​

Missing Root or Parent ​

json
{
  "error": "Root post URI is required",
  "code": "VALIDATION_ERROR"
}

Invalid URI Format ​

json
{
  "error": "Invalid AT Protocol URI format",
  "code": "VALIDATION_ERROR"
}

Unable to Resolve Parent/Root Post ​

When the parent or root CID cannot be resolved, the tool throws a generic error wrapped as TOOL_EXECUTION_ERROR (there is no NOT_FOUND code in this codebase):

json
{
  "error": "Could not resolve the CID for at://did:plc:.../app.bsky.feed.post/...: <underlying error>. A reply requires the real CID of the parent and root posts.",
  "code": "TOOL_EXECUTION_ERROR"
}

Best Practices ​

Threading ​

  • Root: Always set to the first post in the thread
  • Parent: Set to the immediate post you're replying to
  • For direct replies to the original post, root and parent are the same

Content ​

  • Keep replies focused and relevant to the parent post
  • Use @mentions to notify specific users
  • Consider thread context when replying

See Also ​