Skip to content
Zephyr

Changelog

Every release, newest first.

Signed builds under Apache-2.0, no telemetry, and no account. Each entry is written from the release notes, with the fixes kept as visible as the features.

v1.1.11

Latest

Tool calls that actually run, and an agent that knows where it is

The agent release. Inline XML tool calls are parsed and executed instead of being printed as text, the workspace is summarized before the first turn, every project rules file is read, and each turn reports its plan, step, and recent results. Git gains stash, rebase, take-ours, and one-click commit messages. The MCP server no longer loses a call that lands during startup.

AI

  • Inline XML tool calls now run. DSML <|DSML| invoke>, <tool_calls>, and <antml:invoke> are all parsed, and the tags are stripped from both the visible reply and the stored history.
  • The workspace is summarized before the first turn: detected stack, entry points, top-level layout, and a short file list, with node_modules, .vite, .git, dist, and target left out.
  • Every project rules file is read. AGENTS.md, CLAUDE.md, ZEPHYR.md, and .cursorrules are all loaded instead of stopping at the first one found.
  • Each agent turn gets a status block carrying the plan, the step number, the recent tool results, and the calls that failed.
  • A failed tool call returns explicit guidance to try a different approach rather than letting the loop retry the same thing.
  • file_edit replaces every occurrence and no longer treats $&, $`, or $1 as replacement patterns.
  • The active editor file is passed to the agent as context while agent mode is on.
  • A provider with no API key shows a banner with a button that jumps to the exact settings section it needs.
  • The Chat or Agent choice is remembered across restarts instead of resetting to Chat.
  • The subagent runner has a 90-second idle watchdog, so a silent worker is reclaimed instead of hanging the turn.

Features

  • Git blame for the active file is printed to the Output panel.
  • Git stash: save, list, pop, and drop.
  • Merge conflicts resolve per file with take-ours and take-theirs.
  • Rebase the current branch onto another one without leaving the editor.
  • Write a commit message from the diff in one click.

Interface

  • The startup splash paints immediately and closes on React mount, with a timeout fallback so it can never get stuck on screen.
  • Feature panels (sidebar, settings, command palette, dialogs) load on demand, which shortens the time to the first usable frame.
  • The subagent panel shows a progress bar while workers run.
  • The browser pane starts with an empty address bar instead of a hardcoded localhost:3000.
  • The Chat and Agent buttons have tooltips.

MCP

  • Requests wait briefly for the front end and retry, so a call that arrives during startup is not lost with "UI did not answer".
  • /health performs no UI work and needs no token, and no longer holds the MCP lock for up to eight seconds.
  • Pending requests are cleared on every failure path, not just the happy one.

Fixes

  • Settings files with a UTF-8 BOM are read correctly. They were previously moved aside as .broken-*, which silently reset your preferences.
  • A settings patch is cancelled when the current file cannot be read, instead of writing over it.
  • Settings are written atomically through a temp file and a rename.
  • The AI model is reconciled from settings at boot and before every send. A stale custom-model placeholder was causing 401s.
  • Non-ASCII paths no longer panic. The relative path helper was slicing a string by byte offset.
  • An extension id such as C:evil is rejected, so it cannot resolve outside the extensions directory.
  • A subagent that never replies now fails with a clear timeout instead of an empty result.

v1.1.10

Previous

Agent mode and subagents

Agent mode arrives with tool calling across the editor, the terminal, and git, plus a subagent runner that can work in parallel.

Highlights

  • Agent mode: the model calls editor, terminal, and git tools instead of describing what you should do.
  • Parallel subagents, with a panel that lists every worker and what it is holding.
  • Any OpenAI-compatible base URL works, so Ollama and other local servers are first class.
  • API keys live on the Rust side. The settings UI only ever shows a masked preview.
  • Fixed: long agent turns could trip the request timeout on large files.

v1.1.9

Previous

Terminal depth and a wider git surface

Multi-pane terminals over ConPTY, WSL alongside PowerShell, and the git workflow the earlier versions were missing.

Highlights

  • Up to six terminal panes per tab, each with its own working directory and process.
  • PowerShell, cmd, pwsh, bash, and WSL in the same tab, switchable per pane.
  • Git: status, diff, stage, commit, branch, log, push, pull, and fetch from inside the window.
  • Inline blame in the gutter, with the author and date per line.
  • Self-update verifies the minisign signature before it installs anything.

v1.1.7

Previous

The buffer becomes the source of truth

Writes go through the editor buffer instead of the file on disk, and a batch of path handling bugs stops being fatal.

Highlights

  • file_edit goes through the buffer, so unsaved changes survive an edit from a tool or an MCP call.
  • The relative path helper no longer slices by byte offset, which panicked on non-ASCII paths.
  • Extension ids are validated before resolution and cannot escape the extensions directory.
  • The Output panel was rebuilt around virtualized rows and stays quick with long builds.

v1.1.6

Previous

First MCP server

The HTTP JSON-RPC server on port 9222 lands, with a token, a disable switch, and one-click CLI registration.

Highlights

  • HTTP JSON-RPC on port 9222, bound to loopback only.
  • A bearer token is issued at first launch and stored with the rest of the app data.
  • First methods: editor_read, editor_write, editor_search, and terminal_send.
  • One-click registration for Claude Code and Codex.
  • A disable switch in Settings for when the server should not be listening at all.