Pane types / tweet
tweet
Someone else's social post, reproduced as they wrote it — X, Mastodon, Bluesky, LinkedIn.
A short post or tweet with author + counts.

Fields in data
The envelope around data (publisher, label, expiresAt…) is the same on every type: see the envelope.
| Field | Type | Notes | |
|---|---|---|---|
variant | "v1" | optional | Design variant to render (defaults to v1). |
author | string | required | 1–80 chars |
handle | string | required | 1–40 chars |
text | string | required | 1–800 chars |
likes | string | optional | up to 16 chars |
replies | integer | optional | ≥ 0 |
url | string | optional | format: uri |
Craft
- Reproduce
textverbatim, including line breaks. Don't clean up punctuation or trim it to fit. handlekeeps its "@" andauthoris the display name — the card renders them as a pair.likesis a pre-formatted string ("4.2K");repliesis a plain integer. They are deliberately different types.- Omit
likes/repliesentirely rather than sending zeros — a post with no engagement shouldn't advertise it. publisheris the network ("X", "Bluesky");labelis why it's here ("From people you follow").
Avoid
- Don't paraphrase or summarize the post — if you're rewriting it, publish a
quoteornewsinstead. - Don't send threads as one pane; pick the post that carries the point.
- Don't put your own commentary in
text. Context belongs inlabel.
Examples
Complete payloads for POST /api/v1/feed/items or the MCP publish_pane tool.
A post from an account the user follows
{
"type": "tweet",
"publisher": "X",
"publisherInit": "X",
"publisherColor": "#000000",
"label": "From people you follow",
"data": {
"author": "Paul Graham",
"handle": "@paulg",
"text": "The most underrated skill in startups isn't writing code or talking to users. It's deciding what not to do.",
"likes": "4.2K",
"replies": 318
}
}A post surfaced by topic, with a link back to the original
{
"type": "tweet",
"publisher": "Bluesky",
"publisherInit": "BS",
"publisherColor": "#0085FF",
"label": "Matches “design systems”",
"data": {
"author": "Jenny Chen",
"handle": "@jenny.bsky.social",
"text": "Shipped our token pipeline today. Figma → JSON → every platform, one command. Six months of arguing about naming, one afternoon of actual code.",
"likes": "612",
"replies": 24,
"url": "https://bsky.app/profile/example/post/123"
}
}