Shadow provides official SDKs for TypeScript/JavaScript and Python.
| Event | Payload | Description |
|---|---|---|
message:new | ShadowMessage | New message in joined channel |
message:updated | ShadowMessage | Message was edited |
message:deleted | { id, channelId } | Message was deleted |
member:typing | { channelId, userId, username } | User is typing |
member:join | { channelId, userId } | User joined channel |
member:leave | { channelId, userId } | User left channel |
presence:change | { userId, status } | User status change |
reaction:add | { messageId, userId, emoji } | Reaction added |
reaction:remove | { messageId, userId, emoji } | Reaction removed |
notification:new | ShadowNotification | New notification |
dm:message:new | DmMessage | New DM message |
channel:created | { id, name, type, serverId } | Channel created |
The Python client supports context manager usage:
The Python SDK uses snake_case method names that map 1-to-1 to the TypeScript camelCase methods:
| TypeScript | Python |
|---|---|
getMe() | get_me() |
listServers() | list_servers() |
sendMessage() | send_message() |
getServerChannels() | get_server_channels() |
createChannel() | create_channel() |
sendFriendRequest() | send_friend_request() |
browseListings() | browse_listings() |
createProduct() | create_product() |