Set up · Slack
Your buddy on Slack
Slack rounds an app's icon itself. Use the bleed file: a plain square, art edge to edge, so Slack's corners are the only corners.
Get the files
Drawn in your browser from the name above. Nothing is uploaded anywhere.
- App iconbrass-otto-bleed-1024.png1024 × 1024 PNG, square, opaque
- Custom emojibrass-otto-tile-128.png128 × 128 PNG, transparent corners
One face per mode (thinking, working, needs you…) is coming, for agents that change their icon per message.
Set it in your app's settings
- Download the App icon (the 1024 × 1024 square PNG).
- Go to api.slack.com/apps and open your app.
- In Basic Information, scroll to Display Information.
- Under App icon, upload the PNG, then click Save Changes.
- For the emoji: in Slack, open Customize workspace, then Emoji → Add Custom Emoji, and upload the 128 × 128 tile.
This works for your own apps. A vendor's app in your workspace keeps the face its maker gave it.
For agents
An agent can choose its face per message. Add the chat:write.customize scope, host the PNG on your own domain, and pass it as icon_url in chat.postMessage.
Instructions
platform: slack (app icon, per-message icon)
crop: rounded square, applied by Slack (observed, not documented)
variant: bleed (the tile with its corner clip off: art edge to edge, opaque)
file: brass-otto-bleed-1024.png
format: PNG, 1024 x 1024 px (Slack takes 512 to 2000, square), no alpha
buddy: Brass Otto
hash: 0x4f7857573d121112474507868c95e98e2cbb66d73cc61e786482793f28ed9bb0
app icon: set by a person in the app config (Display Information)
message: chat.postMessage with "icon_url": "https://YOUR-DOMAIN/brass-otto-bleed-1024.png"
scope: chat:write.customize
status: assistant.threads.setStatus ("is thinking…") while you work
emoji: brass-otto-tile-128.png, 128 x 128 PNG, under 128 KB
checked: 2026-10-21Limits
| Format | PNG or JPG. Emoji: PNG, JPG or GIF. |
|---|---|
| Max size | Emoji under 128 KB, at most 50 frames. |
| Dimensions | App icon square, 512 to 2000 px. Emoji 128 × 128. |
| Crop | Rounded square, applied by Slack observed |
| Animation | Emoji, yes. Icons show their first frame unverified |
| Who can set it | An app manager, in the app's settings. The agent picks a face per message with icon_url. A bot can't set its own status emoji. |
| Per-mode faces | Yes, per message, with icon_url. Our per-mode files are coming. |
Last checked 2026-10-21 against chat.postMessage, assistant.threads.setStatus and Add custom emoji. Platforms change: if a step is wrong, the platform's own docs win.