Set up · Any agent
Your buddy, anywhere
Every app crops a face its own way. Pick the file by the shape the app shows it in: a circle, a rounded square, or your own UI.
Get the files
Drawn in your browser from the name above. Nothing is uploaded anywhere.
Pad for circles
The whole tile at 74%, on its own colour. Any circle crop shows all of it. Telegram, Discord, X, WhatsApp, Grok Bot.
Bleed for rounded squares
A plain square, art edge to edge. For apps that round the corners themselves: Slack, Teams, Apple, RCS.
Tile as it is
The buddy's own rounded square, with transparent corners. For your own app, emoji, MCP icons and GitHub. Also as SVG.
Every file is the still: idle, eyes open, looking straight out. Animated versions and one face per mode are coming.
Pick the right one
- Look at how the app shows other faces. Round? Use pad. A rounded square? Use bleed. Your own UI, or it keeps transparency? Use tile.
- Pick the size the app asks for. If it doesn't say, 1024 for upload forms and 256 for icons.
- Upload it where the app keeps the agent's picture. Most apps call it the avatar, profile photo or app icon.
- Check it in a list, at its smallest. The eyes should still read.
| App | File | Notes |
|---|---|---|
| X | pad-400.png | Circle. GIFs don't play. |
| Bluesky | pad-1024.png | PNG or JPEG, under 1 MB |
| WhatsApp Business | pad-640.png | Circle, under 5 MB |
| Google Chat apps | pad-256.png | Set as an avatar URL on your own domain. Crop unverified |
| Matrix / Element | pad-512.png | Circle |
| Signal | pad-512.png | Circle |
| Gravatar | pad-1024.png | Square upload |
| Character.AI, Poe | pad-512.png | Circle |
| Intercom | pad-128.png | Under 1 MB |
| Microsoft Teams | bleed-192.png | Don't pre-round: Teams masks it |
| Copilot Studio | bleed-192.png | Under 72 KB |
| Apple Messages for Business | bleed-1024.png | Solid background, under 2 MB |
| RCS business messaging | bleed-224.png | Under 50 KB |
| GitHub App | tile-512.png | Under 1 MB. Shown inside a circle. |
| MCP server icons | tile-48.png, tile-96.png, tile.svg | Host on your server's own domain |
| A2A Agent Card | tile-256.png | iconUrl, on your own domain |
For agents
Your buddy comes from your name: the hash is sha256("blockbuddies/name/v1:" + normalized name). Choose a variant by the crop, download the file, and keep it on your own domain. Some apps only accept icons from the server's own origin, MCP among them.
buddy: Brass Otto
hash: 0x4f7857573d121112474507868c95e98e2cbb66d73cc61e786482793f28ed9bb0
names: brass-otto-<variant>-<size>.<ext>
variants: pad = the tile at 74%, centred on its own ground colour, opaque. For circle crops.
bleed = the tile with no corner rounding, art edge to edge, opaque. For apps that round it.
tile = the 19% rounded square, transparent corners. For your own UI. Also tile.svg.
sizes: pad 64 128 256 400 512 640 800(jpg) 1024
bleed 192 224 512 1024
tile 48 96 128 256 512, svg
frame: the idle still: eyes open, looking straight out
host: on your own domain. Some clients reject icons from another origin.
checked: 2026-10-21"icons": [
{ "src": "https://YOUR-DOMAIN/brass-otto-tile-96.png", "mimeType": "image/png", "sizes": ["96x96"] },
{ "src": "https://YOUR-DOMAIN/brass-otto-tile.svg", "mimeType": "image/svg+xml", "sizes": ["any"] }
]What every file is
| Format | PNG everywhere, which every app takes. A JPG for apps that want one. SVG for the tile. |
|---|---|
| Max size | Flat colour compresses well: most files are a few KB, and the largest are tens of KB. |
| Dimensions | Square, 48 to 1024 px |
| Animation | Not yet. Animated GIF, WebP and MP4 are coming. Their first frame is this still, so apps that show only frame one still look right. |
| Who can set it | Whoever the app lets: you in its settings, or the agent through its API |
| Per-mode faces | Coming: one file per mode (thinking, working, needs you…) for apps that set an icon per message |
Last checked 2026-10-21. Sizes from each platform's own docs, including MCP, Teams app package, GitHub App badge and Gravatar. If a size here is wrong, the platform's own docs win.