Skip to content

Releases: kingb/ember

Ember 0.3.1

Choose a tag to compare

@kingb kingb released this 08 Jul 16:14

Ember 0.3.1 keeps the campfire honest: the default spark animation now pauses
itself whenever you are not actually watching it.

Added

  • Ember sparks guardrails. The sparks switch is now a three-way dial,
    sparks = "off" | "focused" | "always" (default focused), cycled from
    the Settings overlay. focused animates sparks only in the window you are
    actually looking at; unfocused windows keep their sparks visible but hold
    still until you switch back. Old configs with ember_sparks = true/false
    still load, mapped to focused/off. Two system signals also pause the
    animation automatically on macOS: Low Power Mode turns sparks fully off,
    and Reduce Motion freezes them without hiding them, regardless of the dial.

With these in place, the default campfire costs about 2% of one core in the
one window you are looking at, and nothing anywhere else: unfocused windows,
hidden windows, Low Power Mode, and Reduce Motion all read zero.


Install

brew install --cask kingb/ember/ember    # macOS
brew install kingb/ember/ember           # Linux

Full changelog: https://github.com/kingb/ember/blob/main/CHANGELOG.md

Ember 0.3.0

Choose a tag to compare

@kingb kingb released this 08 Jul 07:09

Ember 0.3.0: multiple windows, drag anything anywhere, and the campfire is lit by default.

Added

  • Multiple windows. Open new windows (Cmd+N on macOS, Ctrl+Shift+N on Linux),
    and move terminal surfaces freely between them: promote a split pane to its
    own tab or window, move tabs to another window, and merge a tab back into
    another as a split. Shells keep running through every move.
  • Drag tabs and panes between windows. Tear a tab off the strip, or drag a
    pane: edges of a target pane split it, the center adds a tab, and empty
    desktop makes a new window right there. While you carry a surface it becomes
    a wisp, a small ember that rides the pointer. Escape cancels any drag.
  • Hold to wisp. Press and hold on any pane and a small ring draws itself
    closed around your cursor; when it completes, the pane is swept into the
    wisp and you are carrying it, no keyboard involved.
  • External tools can now find and jump to tabs and windows through the
    control surface and MCP (per-tab state, focus by title, window raising).

Changed

  • The campfire is now fully lit by default: a fresh install opens with the
    warm gradient and drifting ember sparks. The sparks render as short glowing
    trails (velocity-stretched motion blur), which keeps the drift smooth at
    the gentle default of 15 frames per second. Tune or disable it in Settings;
    automatic pauses on unfocused windows, on battery, and under Reduce Motion
    arrive in the next patch release.
  • In ctl state, the tabs field changed from a count to a per-tab array.

Fixed

  • Linux keyboard shortcuts no longer fight the GNOME shell: conventional
    Ctrl+Shift/Alt chords now work everywhere, and the shortcuts overlay shows
    the bindings that work on your platform.
  • A plain click now clears the selection, like other terminals.

Install

brew install --cask kingb/ember/ember    # macOS
brew install kingb/ember/ember           # Linux

Benchmarks (default configuration: sparks at 15fps with trails; Apple Silicon MacBook, quiet machine, 30s idle, 2 alternating passes — protocol)

Scenario CPU GPU
Default campfire, window visible 2.13% / 2.37% of one core ~15–20 mW
Window occluded 0% 0%
Sparks off (gradient only) ~0.05% ~10 mW static

The default look costs about as much as a background browser tab while you
can see it, and nothing when you can't.

Full changelog: https://github.com/kingb/ember/blob/main/CHANGELOG.md

Ember v0.2.1

Choose a tag to compare

@kingb kingb released this 06 Jul 17:57

Fixed

  • Ember now launches on Ubuntu 22.04. The 0.2.0 Linux builds were made
    against a newer glibc, which made Homebrew interpose its own C library on
    22.04 hosts; the GPU drivers then failed to load and the app never opened
    a window. Linux builds are now made against Ubuntu 22.04's glibc, so one
    build runs cleanly on 22.04, 24.04, and 26.04, and Ubuntu 22.04 is part
    of continuous testing from now on.

macOS builds unchanged from v0.2.0 (see that release); updated macOS assets land here when the notarization chain re-runs.

Ember 0.2.0

Choose a tag to compare

@kingb kingb released this 06 Jul 16:09

Ember 0.2.0 brings live font settings, clickable URLs, and a warmer default look.

Added

  • Font settings, live from the Settings panel: pick the font family from a
    curated monospace list and set the size (6 to 48pt). Both apply
    immediately, no restart.
  • The Settings panel is organized into Appearance, Terminal, and Developer
    sections, and now also surfaces shell integration and Option-as-Meta.
  • Clickable URLs. Web links in terminal output are subtly underlined; click
    one at the prompt to open it in your browser. Inside mouse-driven apps like
    vim or tmux, hold Cmd (macOS) or Ctrl (Linux) and click.

Changed

  • The warm gradient backdrop is now on by default, so a fresh install opens
    with Ember's signature look. It draws statically and costs nothing while
    idle; the ember sparks animation stays opt-in. Turn the gradient off in
    Settings if you prefer a flat background.
  • The Settings panel re-shapes its text only when something actually
    changes, not on every frame, keeping the app responsive while it is open.

Fixed

  • On Linux, the keyboard shortcuts overlay now shows Super instead of Cmd,
    matching the keys you actually press.
  • The Settings panel no longer misaligns its value column at very large or
    very small terminal font sizes.

Install

brew install --cask kingb/ember/ember    # macOS
brew install kingb/ember/ember           # Linux

macOS builds are signed with a Developer ID and notarized by Apple.
Full changelog: https://github.com/kingb/ember/blob/main/CHANGELOG.md


Benchmarks (v0.2.0 binary, Apple Silicon MacBook, quiet machine, 30s idle × 2 alternating passes — protocol)

Idle CPU Pass 1 Pass 2
flat background 0.03% 0.33%
gradient backdrop (the default) 0.03% 0.07%
gradient + ember sparks 5.83% 5.73%

The default configuration (gradient on, sparks off) idles at the noise floor,
indistinguishable from a flat background: the gradient draws statically and
costs nothing. The opt-in ember sparks animation costs about 5–6% of one core
at its default settings, which is exactly why it is opt-in.

Correction: an earlier version of this table, measured on a machine with
background load, understated the sparks cost (and overstated everything
else). These numbers are from a quiet machine; the methodology notes live in
the protocol.

Ember 0.1.0

Choose a tag to compare

@kingb kingb released this 05 Jul 04:25

[0.1.0] - 2026-07-04

The first release. Ember is a GPU-accelerated terminal built around a
campfire aesthetic, running natively on macOS and Linux.

Ember's birthday release, launched on America's 250th, July 4th, 2026. Happy
Fourth of July. 🎆

Added

  • Split panes and tabs. Split side-by-side or stacked, resize by
    dragging any divider, navigate between panes by direction, drag tabs to
    reorder, rename them inline, and jump straight to a tab by number.
  • Native, GPU-rendered text, including full text attributes (bold,
    italic, underline, strikeout, overline, dim, concealed) and full
    wide-character/CJK rendering.
  • Hand-rasterized box-drawing. Every light, heavy, double, dashed,
    rounded, and diagonal box-drawing glyph is drawn as a real vector shape
    rather than a font glyph, so borders and diagrams stay crisp and
    perfectly joined at any font size or display scale. Cross-checked
    against Alacritty and Ghostty's rendering for the full block.
  • Shell integration. Automatic exit-status markers in the gutter
    (green, red, or amber), jump to the previous or next prompt, and
    cwd-inheriting splits and manual navigable marks when your shell
    supports iTerm2's shell-integration escape codes. Installs itself into
    zsh and bash with no manual setup.
  • Mouse support: text selection (click, word, and line modes) with
    system clipboard copy/paste, bracketed paste, wrapped-line-aware copy,
    a draggable scrollbar, and full mouse reporting (clicks, drags, motion,
    wheel) forwarded to mouse-aware terminal apps.
  • A campfire backdrop with drifting ember sparks, off by default and
    fully configurable (density, frame rate, scrim).
  • A visual bell: an ember flash instead of an audible beep, with a
    bell indicator on background tabs.
  • Settings (Cmd+,), an About page with version and build info, and
    a keyboard shortcuts cheat sheet (Cmd+/).
  • A confirmation prompt before closing a pane or window with a running
    process.
  • Developer Mode (off by default): a control socket and MCP server for
    driving and inspecting a running instance, useful for scripting and
    automated testing.
  • Configurable font family and size, with live zoom (Cmd +/-/0).
  • A macOS Homebrew cask, app bundle, dock icon, and native menu bar.
  • Linux support built and verified on Ubuntu 24.04 and 26.04, x86_64 and
    arm64, on both X11 and Wayland.

Fixed

A handful of hardening fixes worth knowing about, found and fixed before
this first release:

  • A GPU resource leak that could exhaust memory over a long session, and a
    related issue where an occluded or sleeping window would spin the GPU
    allocating frames it never presented.
  • A hairline gap that could appear between adjacent box-drawing cells at
    certain font-size and display-scale combinations.
  • Glyph-advance jitter that made spinners and other rapidly-updating
    symbols appear to twitch.

Security

  • The developer-mode control socket and shell-integration directory are
    created owner-only, use no fixed or predictable paths, and return
    JSON-encoded errors rather than leaking internal state.