~/ember$cat customize.md

Make Ember yours

Themes, chat backgrounds, animated wallpapers and a separate look for every chat. This is the full guide, with the exact menus to tap, and a gallery of codes you can copy and paste straight into the app.

covers the current alpha

Everything here is private to you. Your look is stored with your encrypted private settings and follows you between your devices. Photos and videos are encrypted on your device before upload, so the server only keeps an unreadable blob. Share codes contain only colors and numbers, never code.

Most options live in Settings (the gear icon in the app). The two pages that matter here are Settings → Appearance and Settings → Chat backgrounds. Want to skip the reading? Jump to the gallery, copy a code, and paste it in the app.

01Themes

A theme colors the whole app: panels, text, buttons, and message bubbles.

Pick a preset

  1. Open Settings → Appearance.
  2. Under Theme, tap a swatch: Dark, Light, Violet, Ocean, AMOLED, Forest or Rose. The preview at the top updates at once.
  3. Fine-tune if you like: Accent color, Message colors (sent and received), Bubble style (Rounded, Tail, Flat, Outline), Corner roundness, Text size and font, and Density. These overrides survive switching presets.

Follow the system, or a schedule

  1. In Settings → Appearance, find Theme mode.
  2. Manual keeps the theme you picked. Follow system switches with your device's light/dark setting. Schedule goes dark between two times.
  3. For the last two, choose a Light theme and a Dark theme. With Schedule, set Dark from and to. A range like 20:00 to 07:00 crosses midnight, and equal times mean "never dark".

Build your own from six colors

  1. In Settings → Appearance → Custom themes tap New custom theme (up to 10).
  2. Give it a name (24 characters at most) and pick six colors: Chat background, Panels, Text, Accent, Sent bubble, Received bubble.
  3. Ember derives every other shade. A dark or light base is chosen from the brightness of the chat background, and if your text color would be hard to read on it, Ember swaps in a safe one.
  4. Tap Save and use. Reopen it later with edit under its swatch.

Share and import with ember-theme: codes

A theme code is the text ember-theme: followed by your six colors and name, packed as base64url. It is about 250 characters.

  1. Copy: open your custom theme and tap Copy theme code.
  2. Paste: on the other device, open Settings → Appearance → Custom themes, paste into the box ("Paste a theme code (ember-theme:…) here") and tap Import theme. It is added to your list and switched on.

Codes are checked on import: anything that is not strict #rrggbb colors, or longer than 2048 characters, is rejected with a message. Try the ready-made ones in the gallery.

02Chat backgrounds

Open Settings → Chat backgrounds. Under Chat background, switch between Color, Photo or video and Animated. An animation covers a photo, and a photo covers a color, so only one is active at a time.

A plain color

  1. Choose Color.
  2. Tap the swatch next to Background color. Tap default to go back to the theme's own.

A photo, GIF, WebP or short video

  1. Choose Photo or video and tap Upload photo or video.
  2. Pick a JPEG, PNG, GIF or WebP (animated ones move), or an MP4 or WebM video.
  3. To replace it, tap Change photo or video. To drop it, tap remove.
LimitValue
File size10 MB at most
Video length30 seconds at most
Video size1920 px at most on the long side
FormatsJPEG, PNG, GIF, WebP, MP4, WebM

Privacy: large photos are shrunk and then encrypted on your device. Only ciphertext is uploaded, so the server stores an unreadable blob and cannot see what your wallpaper is.

Tip: Match accent to wallpaper, then Use this accent, picks an accent color from your wallpaper.

03Animated background generator

  1. Open Settings → Chat backgrounds and choose Animated.
  2. Tap one of the eight ready-made tiles. Hover (or focus) a tile to see it move.
  3. Change Type, the Colors (the + and - buttons add or remove colors, from 2 to 5) and the sliders below.
  4. Tap Copy code to share it, or Paste code to apply one. Remove animation clears it.

The types

TypeWhat you get
EmbersGlowing sparks drifting up from a warm glow. The last color is the backdrop, the others are the sparks.
AuroraSoft waving ribbons of light. The last color is the sky, the others are the ribbons.
GradientA smooth blend of all your colors that slowly sways, with a soft highlight drifting across.
StarsTwinkling stars that slowly drift. The last color is the night sky. With three or more colors the second one tints the horizon.
BubblesTranslucent rings floating up. The last color is the water, and with three or more colors the second one lightens it near the surface.
KeyframesYou define the colors over time. See advanced keyframes.

The sliders

SettingRangeEffect
Speed0.2x to 3xHow fast everything moves.
Density10% to 100%How many sparks, stars or bubbles. For Aurora, how tall the waves are.
Intensity10% to 100%Brightness and opacity of the lights.
Angle0 to 360 degreesDirection. 0 is up, 90 is right, clockwise. Embers and bubbles rise at 0, stars drift at 90, gradients lean along it.

04Advanced: keyframes and codes

A keyframes background animates two gradient colors and an angle through a loop that you describe. In Settings → Chat backgrounds → Animated tap Advanced, then Convert to keyframes. Now you get:

An example spec

A background is just data. This is "Slow tide" from the gallery:

{
  "v": 1,
  "kind": "keyframes",
  "colors": ["#0ea5e9", "#1e1b4b"],
  "speed": 1,
  "density": 0.5,
  "intensity": 0.8,
  "angle": 180,
  "keyframes": [
    { "at": 0,   "colors": ["#0c4a6e", "#020617"], "angle": 180 },
    { "at": 0.5, "colors": ["#1e3a8a", "#0f172a"], "angle": 200 },
    { "at": 0.8, "colors": ["#155e75", "#082f49"], "angle": 160 }
  ],
  "duration": 20
}

How the ember-bg: code is made

The code is the prefix ember-bg: plus base64url(JSON): the spec above as compact UTF-8 JSON, encoded as base64 with - and _ instead of + and /, and no = padding. In a browser console:

const spec = { v: 1, kind: "gradient", colors: ["#f97316", "#4c1d95"], speed: 0.6, density: 0.5, intensity: 0.8, angle: 160 };
const bytes = new TextEncoder().encode(JSON.stringify(spec));
const b64 = btoa(String.fromCharCode(...bytes)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
console.log("ember-bg:" + b64);

Paste a code into Paste code (or the box labelled "Paste a code") to apply it. Codes are validated, never executed:

05Per-chat look, nicknames, folders and pins

In the chat list, right-click a chat (on a phone, long-press it). The menu offers Pin to top (or Unpin), Add to folder…, Set nickname (direct chats) and Customize chat.

Customize chat

  1. Choose Customize chat. The dialog is titled "Customize chat" with the chat's name.
  2. Set an Accent color, a Theme (default Same as app, or any preset or custom theme), a Background color, a Wallpaper (Upload photo or video), or an Animated background (Choose animation, the same generator as above).
  3. The preview at the bottom shows the result. Reset this chat returns it to your app-wide look.

A chat's own look always beats the app-wide one. Only you see it, and it is stored encrypted with your private settings. A photo wallpaper is kept under an anonymous hash of the conversation, so the server does not learn which chat it belongs to.

Nicknames

Choose Set nickname to rename a contact just for you, and optionally give their name a color. Nobody else sees it.

Folders

  1. Above the chat list, next to All, Direct and Groups, tap the + chip (Manage folders) and enter a New folder name.
  2. Put a chat in a folder with Add to folder… in its menu. The folder appears as a tab next to the others.

Pins

Pin to top keeps a chat above the rest, in the order you pinned them. You can pin up to 10.

06Profile tab and status

Open the Profile tab: in the left column's tabs (Chats, Friends, Profile) on a wide screen, or the bottom bar on a phone.

  1. The big card at the top is how others see you, and it updates live as you edit.
  2. Under Status, tap a chip for a quick one: At work, Do not disturb, Focus, Working from home, On vacation. It lasts until the end of the day. Clear removes it.
  3. Under Edit profile set a Display name (32 characters), a Bio (160), a Profile colour, and your own status emoji and text (60). Choose Clear status after: 1 hour, 4 hours, Today or Never, then Save profile.
  4. Your ID has Copy and Share so friends can add you. Customize appearance → at the bottom opens Settings → Appearance.

07Performance and battery

Tap Copy code, open the app, and paste. Theme codes go in Settings → Appearance → Custom themes. Background codes go in Settings → Chat backgrounds → Animated → Paste code.

Themes

Animated backgrounds