Header menu logo FSharp.ATProto

Chat Module

Convenience methods for Bluesky direct message (DM) and chat operations. Wraps the chat.bsky.convo.* XRPC endpoints with a simplified API. All methods require an authenticated AtpAgent. The chat proxy header (atproto-proxy: did:web:api.bsky.chat#bsky_chat) is applied automatically -- callers do not need to use withChatProxy manually.

Functions and values

Function or value Description

acceptConvo agent convoId

Full Usage: acceptConvo agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Accept a conversation request, allowing messages to be exchanged.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

acceptConvoImpl agent convoId

Full Usage: acceptConvoImpl agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
Returns: Task<Result<unit, XrpcError>>

addReaction agent convoId messageId emoji

Full Usage: addReaction agent convoId messageId emoji

Parameters:
    agent : AtpAgent - An authenticated AtpAgent.
    convoId : ^a - A ConvoSummary or string conversation ID.
    messageId : string - The ID of the message to react to.
    emoji : string - The emoji reaction value (e.g., a Unicode emoji string).

Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Add an emoji reaction to a message in a conversation.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

messageId : string

The ID of the message to react to.

emoji : string

The emoji reaction value (e.g., a Unicode emoji string).

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

addReactionImpl agent convoId messageId emoji

Full Usage: addReactionImpl agent convoId messageId emoji

Parameters:
    agent : AtpAgent
    convoId : string
    messageId : string
    emoji : string

Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
messageId : string
emoji : string
Returns: Task<Result<unit, XrpcError>>

deleteMessage agent convoId messageId

Full Usage: deleteMessage agent convoId messageId

Parameters:
    agent : AtpAgent - An authenticated AtpAgent.
    convoId : ^a - A ConvoSummary or string conversation ID.
    messageId : string - The ID of the message to delete.

Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Delete a message from a conversation for the authenticated user only. The message remains visible to other participants.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

messageId : string

The ID of the message to delete.

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

deleteMessageImpl agent convoId messageId

Full Usage: deleteMessageImpl agent convoId messageId

Parameters:
    agent : AtpAgent
    convoId : string
    messageId : string

Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
messageId : string
Returns: Task<Result<unit, XrpcError>>

getConvo agent convoId

Full Usage: getConvo agent convoId

Parameters:
Returns: Task<Result<ConvoSummary, XrpcError>> A ConvoSummary on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Get a single conversation by its ID.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

Returns: Task<Result<ConvoSummary, XrpcError>>

A ConvoSummary on success, or an XrpcError.

getConvoForMembers agent members

Full Usage: getConvoForMembers agent members

Parameters:
    agent : AtpAgent - An authenticated AtpAgent.
    members : Did list - A list of DIDs of the conversation members (excluding the authenticated user, who is added automatically).

Returns: Task<Result<ConvoSummary, XrpcError>> A ConvoSummary, or an XrpcError.

Get an existing conversation with the specified members, or create a new one if none exists.

agent : AtpAgent

An authenticated AtpAgent.

members : Did list

A list of DIDs of the conversation members (excluding the authenticated user, who is added automatically).

Returns: Task<Result<ConvoSummary, XrpcError>>

A ConvoSummary, or an XrpcError.

getConvoImpl agent convoId

Full Usage: getConvoImpl agent convoId

Parameters:
Returns: Task<Result<ConvoSummary, XrpcError>>
agent : AtpAgent
convoId : string
Returns: Task<Result<ConvoSummary, XrpcError>>

getMessages agent convoId limit cursor

Full Usage: getMessages agent convoId limit cursor

Parameters:
    agent : AtpAgent - An authenticated AtpAgent.
    convoId : ^a - A ConvoSummary or string conversation ID.
    limit : int64 option - Maximum number of messages to return. Pass None for the server default.
    cursor : string option - Pagination cursor from a previous response. Pass None for the most recent messages.

Returns: Task<Result<Page<ChatMessage>, XrpcError>> A page of ChatMessage with an optional cursor, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Get messages in a conversation, ordered by most recent first.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

limit : int64 option

Maximum number of messages to return. Pass None for the server default.

cursor : string option

Pagination cursor from a previous response. Pass None for the most recent messages.

Returns: Task<Result<Page<ChatMessage>, XrpcError>>

A page of ChatMessage with an optional cursor, or an XrpcError.

getMessagesImpl agent convoId limit cursor

Full Usage: getMessagesImpl agent convoId limit cursor

Parameters:
    agent : AtpAgent
    convoId : string
    limit : int64 option
    cursor : string option

Returns: Task<Result<Page<ChatMessage>, XrpcError>>
agent : AtpAgent
convoId : string
limit : int64 option
cursor : string option
Returns: Task<Result<Page<ChatMessage>, XrpcError>>

leaveConvo agent convoId

Full Usage: leaveConvo agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Leave a conversation. The conversation will no longer appear in your list.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

leaveConvoImpl agent convoId

Full Usage: leaveConvoImpl agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
Returns: Task<Result<unit, XrpcError>>

listConvos agent limit cursor

Full Usage: listConvos agent limit cursor

Parameters:
    agent : AtpAgent - An authenticated AtpAgent.
    limit : int64 option - Maximum number of conversations to return. Pass None for the server default.
    cursor : string option - Pagination cursor from a previous response. Pass None for the first page.

Returns: Task<Result<Page<ConvoSummary>, XrpcError>> A page of ConvoSummary with an optional cursor, or an XrpcError.

List the authenticated user's conversations, ordered by most recent activity.

agent : AtpAgent

An authenticated AtpAgent.

limit : int64 option

Maximum number of conversations to return. Pass None for the server default.

cursor : string option

Pagination cursor from a previous response. Pass None for the first page.

Returns: Task<Result<Page<ConvoSummary>, XrpcError>>

A page of ConvoSummary with an optional cursor, or an XrpcError.

markAllRead agent

Full Usage: markAllRead agent

Parameters:
Returns: Task<Result<int64, XrpcError>> The number of conversations updated, or an XrpcError.

Mark all conversations as read.

agent : AtpAgent

An authenticated AtpAgent.

Returns: Task<Result<int64, XrpcError>>

The number of conversations updated, or an XrpcError.

markRead agent convoId

Full Usage: markRead agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Mark a conversation as read up to the latest message.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

markReadImpl agent convoId

Full Usage: markReadImpl agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
Returns: Task<Result<unit, XrpcError>>

muteConvo agent convoId

Full Usage: muteConvo agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Mute a conversation. Muted conversations do not generate notifications.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

muteConvoImpl agent convoId

Full Usage: muteConvoImpl agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
Returns: Task<Result<unit, XrpcError>>

removeReaction agent convoId messageId emoji

Full Usage: removeReaction agent convoId messageId emoji

Parameters:
    agent : AtpAgent - An authenticated AtpAgent.
    convoId : ^a - A ConvoSummary or string conversation ID.
    messageId : string - The ID of the message to remove the reaction from.
    emoji : string - The emoji reaction value to remove.

Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Remove an emoji reaction from a message in a conversation.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

messageId : string

The ID of the message to remove the reaction from.

emoji : string

The emoji reaction value to remove.

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

removeReactionImpl agent convoId messageId emoji

Full Usage: removeReactionImpl agent convoId messageId emoji

Parameters:
    agent : AtpAgent
    convoId : string
    messageId : string
    emoji : string

Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
messageId : string
emoji : string
Returns: Task<Result<unit, XrpcError>>

sendMessage agent convoId text

Full Usage: sendMessage agent convoId text

Parameters:
    agent : AtpAgent - An authenticated AtpAgent.
    convoId : ^a - A ConvoSummary or string conversation ID.
    text : string - The message text content. Links, mentions, and hashtags are auto-detected.

Returns: Task<Result<ChatMessage, XrpcError>> The sent message as a ChatMessage, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Send a message to a conversation. Rich text (links, mentions, hashtags) is automatically detected and resolved, matching the behaviour of Bluesky.post.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

text : string

The message text content. Links, mentions, and hashtags are auto-detected.

Returns: Task<Result<ChatMessage, XrpcError>>

The sent message as a ChatMessage, or an XrpcError.

sendMessageImpl agent convoId text

Full Usage: sendMessageImpl agent convoId text

Parameters:
    agent : AtpAgent
    convoId : string
    text : string

Returns: Task<Result<ChatMessage, XrpcError>>
agent : AtpAgent
convoId : string
text : string
Returns: Task<Result<ChatMessage, XrpcError>>

unmuteConvo agent convoId

Full Usage: unmuteConvo agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>> Ok () on success, or an XrpcError.
Modifiers: inline
Type parameters: ^a

Unmute a previously muted conversation, restoring notifications.

agent : AtpAgent

An authenticated AtpAgent.

convoId : ^a

A ConvoSummary or string conversation ID.

Returns: Task<Result<unit, XrpcError>>

Ok () on success, or an XrpcError.

unmuteConvoImpl agent convoId

Full Usage: unmuteConvoImpl agent convoId

Parameters:
Returns: Task<Result<unit, XrpcError>>
agent : AtpAgent
convoId : string
Returns: Task<Result<unit, XrpcError>>

Type something to start searching.