All notable changes to Atlas (CLI, TUI, MCP server and Atlas Desktop). Versions follow SemVer; the CLI and the desktop app always ship together with the same version.
[Unreleased]#
Added#
- Updates, shown properly. When a newer release exists, a soft-glow Update to X.Y.Z pill appears in the sidebar footer and you get one native notification per version (same switch as agent notifications). It opens a What’s new sheet with the release notes of every version between yours and the latest, Update and relaunch with live steps (Download and verify → Install → Update the app, raw output under Details), Later, and Skip this version (remembered until a newer one ships). The first launch after an update shows a one-time Updated to X card with See what’s new.
- Settings → General → Updates: current versions, channel, last check, Check now, an automatic-check switch (on launch, on returning to the app at most every 6 hours, and every 6 hours) and a link to the full changelog. Command palette: Check for updates and What’s new.
- Project icons: every project gets an icon (your emoji or Lucide icon, the repo’s own favicon/logo auto-detected, or a monogram) and an optional color, via right-click → Change icon and color…; shown in the sidebar, header breadcrumb, panel, palette, Files header and tray.
- Sidebar: shows the active project’s worktrees; other projects collapsed under “Other projects”; the bottom strip is now project icons instead of dots.
Changed#
- The big Dev build card in the sidebar is gone. Dev builds (
atlas link,cargo tauri dev) now show a 2 px amber line across the top of the window, a small Dev chip next to the version in Settings and in the menu-bar popover, and a tooltip on the top edge: Dev build X — updates paused (atlas unlink to resume).
[1.0.1] — 2026-10-11#
Changed#
- Dependencies updated to their latest versions: Rust crates (
clap4.6,tempfile3.27,flate21.1,insta1.49,pollster1.0,toml_edit,serde_json,syn,cc) and the desktop frontend packages.@codeatlasdev/uiis already at its latest release (0.7.1). A few transitive crates (thetoml0.8 family,psm,generic-array,brotli-decompressor) stay where their parent crates pin them. - TypeScript stays on the latest 6.x: TypeScript 7 (the native Go compiler) no longer ships the JavaScript API that SvelteKit’s
syncuses.
[1.0.0] — 2026-10-11#
Atlas 1.0 turns Atlas Desktop into a full development environment: a native GPU terminal, a Zed-style workspace around it, and a log viewer built for real traffic, in both the desktop app and the TUI. atlas.yaml, the CLI, the TUI and the MCP tools stay compatible with 0.6.
Highlights#
- A GPU terminal built into Atlas Desktop. Terminals are drawn natively with Metal (wgpu) instead of a web view: 120 Hz, under 1 ms of render work per frame, images, color emoji, ligatures and shell integration. On by default for local terminals.
- A Zed-style workspace. Left, right and bottom docks, pane zoom, a command palette with every action, go to file and go to symbol, rebindable shortcuts, Zed themes, file icons, and a settings page for fonts, terminal and panels.
- Logs built for real traffic, in the TUI and the desktop. Search like a terminal (match counter, next/previous, highlights), jump to the next error or warning, click a URL or
path:lineto open it, full color fidelity, and no freezes under bursts of hundreds of thousands of lines.
GPU terminal#
- Rendering: Metal through wgpu. Each terminal is a native view over its pane, with its own render thread that sleeps until there is output. Frames are vsync-paced at 120 Hz on ProMotion displays; render work is ~0.2–0.3 ms p95 for a 144×44 grid in an optimized build.
- Text: bundled JetBrains Mono with a Nerd Font symbols fallback, bold/italic, programming ligatures (
->,!=,=>,===; toggle in settings), color emoji including ZWJ sequences, flags, skin tones and VS16, a minimum-contrast option (WCAG ratio), and pixel-exact box drawing, block elements, braille, sextants and powerline glyphs that tile without gaps. - Underline styles: single, double, curly, dotted and dashed, in color (SGR 58), plus strikethrough.
- Images: the Kitty graphics protocol (PNG, RGB/RGBA, zlib, chunked transfers, files, placement ids, z-order above or below text, quiet mode) and sixel. Images scroll with the text and leave with the alternate screen.
- Shell integration: OSC 133 prompt marks (⌘↑ / ⌘↓ jump between prompts, exit codes), OSC 7 working directory (Restart reopens there), titles, bell (flash, Dock attention when unfocused).
- Interaction: native selection (character, word, line and ⌥ block), 10,000 lines of scrollback (configurable) with a scrollbar, ⌘F regex search with match counter and highlights, clickable URLs and OSC 8 links (⌘-click), copy and bracketed paste, dropping a file pastes its path.
- Keyboard and modes: the Kitty keyboard protocol, synchronized output (mode 2026), grapheme clusters (mode 2027), cursor shapes and blinking (hollow when unfocused).
- Clipboard safety: a program writing the clipboard with OSC 52 now asks first (
terminal.osc52: ask, allow or deny). Reading the clipboard is always denied. - Live settings: theme, font size, cursor, scrollback, ligatures and contrast apply to open terminals.
- Backpressure: the terminal host now slows a program down when the screen cannot keep up, like a native terminal, instead of buffering its output in memory. A client that stops reading for 2 s is dropped so it cannot freeze the program.
- Terminals of SSH-host worktrees keep using the classic (xterm.js) renderer, as does a terminal host started by an older Atlas until it restarts (Settings → Editor & terminal → Restart terminal host).
Benchmarks against Ghostty on the same machine are in docs/terminal.md.
Workspace#
- Docks: ⌘B left (project or git panel), ⌘R right, ⌘J bottom (its own terminal tabs), ⌥⌘Y all docks, ⇧Esc zooms the focused pane, plus a centered layout. Docks are resizable by dragging and remember their size; header buttons show their state.
- Palettes: ⌘⇧P command palette (every command with its current shortcut, recently used first, matched characters highlighted), ⌘K jump to worktrees and terminals, ⌘P go to file with file icons, ⌘⇧O go to symbol in the open editor.
- Shortcuts: every shortcut is a named command with Zed’s names and defaults. Rebind or unbind them in Settings → Keyboard shortcuts, or under
keymapin~/.atlas/desktop/settings.json. - Themes: Zed theme files (v0.2.0 format) color the whole app, the code editor and the terminals. Bundled: Atlas Dark/Light and One Dark/Light; add your own in
~/.atlas/desktop/themes/. Separate light and dark choices follow the system appearance. - File icons: the Material Icon Theme in the explorer, tabs and go to file.
- Settings → Editor & terminal: editor and interface fonts, terminal font size, cursor, scrollback, OSC 52 policy, ligatures and contrast, explorer side, icons and indentation, active-pane border and inactive-pane dimming (Zed setting names).
- Polish: welcome screens for a first run and for an empty worktree, loading skeletons, in-app confirmation dialogs instead of browser prompts, tooltips that show the current shortcut, tidier sidebar, explorer, agents and dashboard views.
Logs#
- Robust ingestion (runner): real lines are assembled from the raw pipe. Partial lines (prompts) show after 150 ms of silence,
\r\nis one line break, a lone\rkeeps only a progress bar’s last state, invalid UTF-8 is replaced, and lines over 16 KiB are cut with… [truncated]. Level, timestamp and sequence number are computed once per line. - Restart separators: a dim
──── HH:MM:SS restarted ────rule separates a service’s runs. - Bursts never cut the desktop off: a client that falls behind skips log lines and gets a “N lines skipped” marker (the full output stays in
.logs/), instead of being disconnected. Output reaches the app in ~16 ms batches. - TUI:
/find withn/Ncounter and highlights across the whole buffer,]e/[eand]w/[wjump between errors and warnings,}/{move between URLs andpath:line[:col]links andoopens them (browser or your GUI editor at the line; copied otherwise),ycopies a link. Rendering is O(visible rows) with a cached wrap index. - Desktop: ⌘F find with regex/case toggles,
n/Ncounter, Enter/⇧Enter and highlights; filter mode hides non-matching lines;e/wjump to the next error/warning; ⌘-click opens URLs in the Atlas browser andpath:linein an editor tab at that line; error counts on service chips; timestamps and wrap toggles; a “N new lines” pill while scrolled up; Copy for AI of the filtered view. The view keeps 50k lines, filters incrementally (a filter change re-scans in idle slices) and parses ANSI only for visible rows. Colors follow the theme’s terminal palette, including 256 colors, truecolor, underline styles and OSC 8 links. - MCP:
atlas_logs_searchuses the same matcher as the TUI and stays case-insensitive.
Changed#
- Shortcuts follow Zed: the jump palette is ⌘K only (⌘J opens the bottom dock), restart the focused service is ⌥⌘R (⌘R toggles the right dock), the right sidebar is ⌘R (was ⌘⌥B), the git panel is ⌃⇧G. Any of them can be rebound.
- The GPU terminal is on by default; turn it off in Settings → Editor & terminal.
- Release notes now come from this changelog.
Fixed#
-
The desktop Logs tab could stay empty when the service filter from another project did not exist in the current one.
-
First-run project discovery could throw when the registry had already loaded.
-
The sidebar showed ⌘J for the jump palette.