Skip to content

Set up · ChatGPT

Your buddy in ChatGPT

A Block Buddy is a face for your agent, drawn from its name. ChatGPT itself has no face you can set, but a plugin you build can wear your buddy as its logo, in the directory, the composer and above its answers. Use the tile. For your own profile photo, use the pad.

A plugin's logo, as ChatGPT shows it before the plugin's answer. ChatGPT needs a square file; the shape it shows isn't documented.

Get the files

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

Want your buddy to move? ChatGPT's pet takes an animated sprite sheet. See Codex: ours isn't built yet.

Your plugin's logo

  1. Download the Plugin logo (SVG) and the Composer icon. Add the PNG logo too if you'd rather ship raster.
  2. Put them in your plugin, under ./assets/. ChatGPT reads them from the package, not from a URL.
  3. In .codex-plugin/plugin.json, set interface.logo, logoDark, composerIcon and composerIconDark, and set brandColor to your buddy's colour, #69798c, if it has at least 2:1 contrast on white.
  4. Upload the package in the plugin dashboard. If it says an app icon is required, add the logo there too.

Your own profile photo

  1. Download Your profile photo.
  2. In the ChatGPT desktop app, open Settings → Profile. On the web, go to chatgpt.com/profile unverified
  3. Choose your picture, upload the PNG, and save. No upload button? Some accounts take the photo from Gravatar or the account you sign in with unverified

Custom GPTs are being replaced by plugins, so we don't cover their picture here. Projects offer preset icons only.

For agents

The logo ships inside the plugin package, so changing it means shipping a new version. There's no face per state: one logo per theme.

Instructions
platform: chatgpt (plugin logo; your own profile photo)
crop:     a square file is required; the shape ChatGPT shows isn't documented
variant:  tile (logo, composerIcon) · pad (profile photo, a circle)
file:     brass-otto-tile.svg
format:   PNG, JPEG, WebP or SVG, up to 5 MiB, square, at least 48 px (raster up to 4096 px)
buddy:    Brass Otto
hash:     0x4f7857573d121112474507868c95e98e2cbb66d73cc61e786482793f28ed9bb0
method:   plugin manifest interface.logo, logoDark, composerIcon, composerIconDark (./ paths, files in the package)
colour:   brandColor #69798c (needs at least 2:1 on white); brandColorDark needs 2:1 on #212121
per-mode: none. One logo per theme.
runtime:  can't change at runtime; ship a new plugin version
mcp:      ChatGPT isn't documented to read MCP icons
checked:  2026-10-21
.codex-plugin/plugin.json
"interface": {
  "logo": "./assets/brass-otto-tile.svg",
  "logoDark": "./assets/brass-otto-tile.svg",
  "composerIcon": "./assets/brass-otto-tile-128.png",
  "composerIconDark": "./assets/brass-otto-tile-128.png",
  "brandColor": "#69798c"
}

Limits

FormatPNG, JPEG, WebP or SVG for a plugin. The profile photo's formats aren't documented unverified
Max size5 MiB per plugin image
DimensionsSquare, at least 48 px, raster up to 4096 px
CropPlugin logo: not documented. Profile photo: a circle unverified
AnimationNot documented for logos, so treat them as still. Pets animate.
Who can set itThe plugin's developer, in the package or dashboard. You, for your own photo. ChatGPT itself has no settable face.
Per-mode facesNo

Last checked 2026-10-21 against Plugin submission, Submission errors, Settings and Pets. Parts of OpenAI's help centre block fetching, so the profile-photo steps are unconfirmed. We re-check this page monthly. If a step is wrong, the platform's own docs win.