Skip to main content
Spectrum exposes a family of content builders for text, markdown, attachments, rich previews, replies, edits, typing indicators, chat metadata, and provider-specific payloads. Any API that takes a accepts a plain string or a . Use this section when you need to choose the right outbound content shape or understand how a builder degrades across providers.

Text

Send plain text and stream generated text into supported providers.

Markdown

Send styled text that renders through each provider’s native formatting model.

Attachments

Send files from paths or buffers with stable attachment IDs.

Voice

Send voice notes with audio metadata and provider fallbacks.

Contacts

Share contact cards from structured data, users, or vCards.

Rich links

Render URLs as rich previews with lazy Open Graph metadata.

App link cards

Present URLs as tappable app-style cards where providers support them.

Polls

Send poll prompts and receive selected options as content.

Groups

Bundle multiple messages into one logical visual group.

Custom content

Send provider-specific structured payloads.

Replies

Thread content under an existing message.

Edits

Rewrite previously sent outbound messages.

Unsend

Retract a previously sent outbound message.

Typing indicators

Send start and stop typing signals.

Rename

Rename chats through the content pipeline.

Avatar

Set or clear group chat avatars.

Composing content

Send multiple content items or reply with multiple parts.

Builder shortcut

Plain strings are equivalent to text():
await space.send("Hello, world.");
await space.send(text("Hello, world."));
Reach for an explicit builder when you need provider-aware behavior, structured metadata, or a content type that is not plain text.