Skip to content

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.

What Slack shows: a rounded square, beside every message.

Get the files

Drawn in your browser from the name above. Nothing is uploaded anywhere.

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

  1. Download the App icon (the 1024 × 1024 square PNG).
  2. Go to api.slack.com/apps and open your app.
  3. In Basic Information, scroll to Display Information.
  4. Under App icon, upload the PNG, then click Save Changes.
  5. 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-21

Limits

FormatPNG or JPG. Emoji: PNG, JPG or GIF.
Max sizeEmoji under 128 KB, at most 50 frames.
DimensionsApp icon square, 512 to 2000 px. Emoji 128 × 128.
CropRounded square, applied by Slack observed
AnimationEmoji, yes. Icons show their first frame unverified
Who can set itAn 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 facesYes, 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.