Changelog

What's New

Every Exponential release, newest first. Upgrade with curl -fsSL https://go-exponential.dev/install.sh | bash, or see the installation guide.

v1.5.0

Agent chat comes to the board

Talk to Claude Code or Codex from inside xpo board, then hand it an issue and watch it do the work, with you approving every step that matters.

Upgrade notes
  • xpo is local-only. Remote mode is gone, along with xpo serve, xpo login and xpo logout. Issue data travels with your code through git, so teammates get the latest copy when they sync. The remote.* config keys are ignored.
  • Canceled and duplicate blockers still block. A blocked_by link counts as resolved only when the blocker is DONE. Remove the link, or point it at the issue that replaced it.
  • Building from source now requires Go 1.26.

Agent chat

Press ⌘J anywhere on the board to talk to your local Claude Code or Codex about the project. Chat in a popup, or open the full-page Agent view (g a). Opening an issue adds it to the conversation as context. Attach files and images by pasting or dropping them. Read the docs.

Chat Mode and Work Mode

A chat starts in Chat Mode, where the agent reads the repo and manages issues. When it's time to build, it asks to enter Work Mode on an issue. From then on it works in that issue's own worktree, and the conversation carries over. Start Work on any issue opens a new Work Mode chat, and Continue Work picks up where it left off. Read the docs.

You stay in control

Before the agent runs anything risky, such as a merge or an edit outside its worktree, the chat shows an approval card. Allow it once or for the whole chat, or deny it, all from the keyboard. Claude can also ask you questions with multiple-choice cards. Live status dots, a favicon badge and optional desktop notifications tell you when a chat needs you. Read the docs.

Improvements

  • The chat shows the agent's work as it happens: each action in plain words ("Read board.go", "Created issue …"), with timers and failures marked.
  • An "All chats" page lets you search, filter, archive and delete chats, and totals tokens and cost. Docs.
  • Issues show the chats that worked on them, with a pill on board cards and Backlog rows.
  • Issue IDs in chats, descriptions, specs and comments become chips with a status icon and a hover preview.
  • Merged issues get a "View changes" button that shows the walkthrough, commits and diff from the merge.
  • Save new issues as drafts and come back to them later from the Drafts sidebar item.
  • Agents can see what an issue changed, and which issues touched a file, through new read-only git tools in the MCP server.
  • Agents can reorder the board by placing an issue directly above or below another one.
  • Labels are simpler. Create one from the picker in a single step, and manage colors in a redesigned Labels view.
  • Deleting an issue uses one clear confirmation dialog, with the choice to keep or delete its sub-issues.
  • Live updates use a single connection per tab and recover after sleep or a network drop, so the board no longer silently falls behind.

Fixes

  • Start Work in a folder without a git repository explains what's needed instead of starting the issue and then failing.
  • Start Work is disabled on Backlog issues, with a tooltip explaining why, instead of failing with an error.
  • Review Changes appears when a worktree only has new, untracked files.
  • Merging while the merge view is open no longer shows a raw JSON error.
  • Clearing a field with null in MCP update and xpo update --json works for assignee, cycle, priority, estimate and parent.
  • The activity timeline describes every field change, including cleared values.
  • Creating a label from the picker, and Delete in the issue context menu, no longer close the menu without doing anything.
  • XPO_* environment variables set every config key, as documented.
Full release notes on GitHub
v1.4.0

Relationships, redesigned

Linking issues takes one menu instead of a modal, and the board makes it clear who did the work, you or your agent.

Upgrade notes
  • One link per pair of issues. Two issues can share at most one relationship. Linking an already-linked pair fails unless you pass overwrite, which changes the link's kind. Existing pairs keep working until something changes them.
  • Run xpo init or xpo doctor --fix to refresh your agent instructions.

Relationships, redesigned

One Relationships button in the issue sidebar opens a menu for every kind of link: parent, sub-issue, related, blocked by, blocking and duplicate. The Relations card groups links by kind, shows a preview when you hover a linked issue, and lets you change a link's kind in place with a right-click. Read the docs.

Assign from anywhere

Board cards and Backlog rows have an assignee picker. Click the avatar, or press a on a focused card or row. Unassigned issues show a placeholder avatar, so the column stays aligned. Read the docs.

Clear attribution

When an agent acted for you, your name gets a dashed underline that reveals the agent on hover. Direct actions render plain. The same rule applies across the activity timeline, merge view, dashboard, timeline and inbox.

Improvements

  • The issue Activity section reads as a timeline, with a rail joining events and comments.
  • Issue sidebar pickers are fully keyboard- and screen-reader-accessible, and number shortcuts work for estimate and priority too.

Fixes

  • Board popovers opened with s, e and l appear next to the focused card instead of the board's top-left corner.
  • Board keyboard navigation skips hidden and collapsed columns.
  • The issue detail view shows one scrollbar instead of three.
  • The Dependencies view shows each "related to" link once, and those links no longer trigger false cycle warnings.
  • Dimmed nodes in the dependency graph stay readable.
  • Status icons in the Relations card no longer shrink next to long titles.
Full release notes on GitHub
v1.3.0

Worktrees for every issue, and a safer board

Every issue now gets its own git worktree, xpo board stays on your machine unless you say otherwise, and setup takes a single wizard.

Upgrade notes
  • Branch mode is removed. Every issue gets its own git worktree, and merge always runs from the main checkout. Before upgrading, merge or park any issue you started in branch mode, and check out your default branch in the main checkout. xpo start --mode and xpo merge --no-wt no longer exist, and the worktrees config key is ignored.
  • xpo board binds to 127.0.0.1. To reach it from another machine, use ssh -L, or pass --host and sign in with the per-run access token it prints.
  • xpo init mcp and xpo init skill are merged into xpo init.
  • xpo history --json returns a single JSON object instead of JSON lines.

Worktrees only

Every issue you start gets an isolated git worktree under .xpo/worktrees/, so several agents and sessions can work in parallel without stepping on each other. merge runs from your main checkout and cleans up after itself. Running start again from inside an issue's worktree is safe.

A safer board

xpo board only listens on your own machine by default, and rejects requests that try to reach it through DNS rebinding. Exposing it on a network now requires a per-run access token.

People first

An issue is always assigned to a person, and work an agent does is recorded on that person's behalf. A new "Worked by" filter separates agent work from human work. Read the docs.

One setup wizard

xpo init walks you through the prefix, your agents and a preview of every change before it writes anything. Agent instructions live in managed blocks that refresh safely without touching your own text. xpo doctor --fix repairs what it can. Read the docs.

Improvements

  • Edits on the board show up instantly and roll back with a clear message if they fail, instead of failing silently.
  • Every CLI --json command shares one input and output format with the MCP tools.
  • A new unlink command and MCP tool remove a single relationship.
  • Links work in both directions: "A blocks B" also shows B as blocked by A.
  • My Issues and Labels get search boxes.
  • An "Open" button opens an issue's worktree in VS Code.
  • j and k in an issue walk the list you opened it from.
  • The board bundles its own fonts, so text looks the same on every machine.
  • Menus and pickers share one keyboard-friendly design, with filtering in the Cycle and Assignee menus.

Fixes

  • Several MCP servers, the CLI and the board can write at the same time without losing events.
  • xpo merge works from inside an issue's worktree, and a failed merge leaves the issue as it was.
  • Agents commit before they merge, instead of calling merge on uncommitted work.
  • Commands no longer stall for 5 seconds in terminals that don't answer color queries.
  • Switching Backlog tabs keeps each tab's own filters.
  • The merge view no longer re-renders the whole diff on every refresh.
  • The instance list works on Windows.
Full release notes on GitHub
v1.2.1

Set up any agent, and review uncommitted work

xpo now configures Claude Code, GitHub Copilot, Cursor, Codex and OpenCode, and the merge view shows changes before they're committed.

Improvements

  • xpo init sets up MCP and the xpo workflow skill for Claude Code, GitHub Copilot, Cursor, OpenAI Codex and OpenCode, each in its own format.
  • Install the skill once for all your projects with xpo init skill --global (macOS and Linux).
  • The merge view's Files tab switches between all branch changes and uncommitted work, refreshes on its own, and marks uncommitted files in amber.
  • xpo doctor groups its checks into sections, each with the command that fixes it.
  • CLI output is colored: green for success, yellow for warnings, red for errors.

Fixes

  • The merge check no longer blocks a merge because of unrelated uncommitted changes in your working directory.
  • The merge button is disabled, with "No commits to merge", when a branch has nothing to merge.
Full release notes on GitHub
v1.2.0

See how your work connects

An interactive dependency graph, searchable design history, and project health at a glance from the terminal.

Dependency graph

Explore how issues depend on each other in an interactive graph, or work through them in a filterable table. Open it from any issue's sidebar to start from that issue. Read the docs.

Design rationale search

xpo rationale searches past specs and walkthroughs, so agents find earlier decisions before they change code. It's available as an MCP tool too. Read the docs.

Walkthroughs in review

The merge view opens on the issue's walkthrough when it has one, so reviewers read the explanation before the diff. Read the docs.

Project pulse and history in the terminal

xpo pulse shows velocity, cycle time, work in progress and blockers at a glance. xpo history draws a timeline of events, commits and merges for one issue or the whole project.

Improvements

  • The command palette ranks exact and substring matches first.
  • Right-click issues in My Issues for the full set of actions.
  • Click a label in the Labels view to see its issues in the Backlog.
  • Cycle through Backlog tabs with [ and ].
  • Filter the Timeline by event type, including artifacts and canceled or duplicate issues.
  • Empty Backlog views explain why they're empty.
  • Branch badges show the number of commits, and a dot marks uncommitted changes.
  • Specs and walkthroughs update live in the issue view when the file changes.
  • Drag-and-drop between board columns is more reliable.
  • Backlog search is always visible in the top bar.
  • The keyboard help overlay covers the Board.

Fixes

  • xpo merge no longer blocks on unrelated untracked files.
  • The merge view refreshes when new commits arrive and shows diffs from the right worktree.
  • Moving a sub-issue to Blocked no longer starts its parent.
  • Removing all labels or dependencies from an issue now saves.
  • Completed sub-issues no longer clutter views of active work.
  • Dragging in the Backlog is smoother, and cancelling a drag with Esc no longer opens the issue.
  • Checklist checkboxes in Markdown are visible again.
  • Scrollbars no longer shift the layout.
Full release notes on GitHub
v1.1.0

Parallel work with worktrees

Several agents and sessions can work on different issues at once, and the Backlog gains new statuses and views.

Worktree-based workflows

xpo start gives each issue its own git worktree under .xpo/worktrees/, and xpo merge cleans it up when the work lands. Your main checkout stays on main, so several agents can work in parallel without conflicts, and the board shows every agent's progress live.

Canceled and Duplicate

Two new closed statuses sit alongside Done. Like Done, they unblock dependent issues and can close a parent, but only Done counts toward velocity. Read the docs.

More ways to see the Backlog

A Done tab lists finished issues, newest first. Switch any tab between a nested tree of parents and sub-issues and a flat list, and expand or collapse every parent at once. Read the docs.

Improvements

  • Review a branch's uncommitted changes in the merge view before committing.
  • Large projects stay fast: the Board and Backlog render the first issues of each group, with a "+N more" button for the rest.
  • Markdown tables, headings and lists are easier to read.
  • The issue detail sidebar scrolls on its own on short screens.
  • xpo init can be re-run safely. It refreshes agent instructions without touching your config or issues.
  • xpo merge deletes the issue branch by default.

Fixes

  • Specs and walkthroughs are committed with the merge instead of being left behind as untracked files.
  • Dragging an issue no longer changes its parent by accident. Hold Alt to nest or unnest.
  • Updating an epic's sub-issues no longer reopens finished ones.
  • Story point totals no longer double-count parents or include finished sub-issues.
  • Long label lists no longer overflow rows, cards or the inbox.
  • The MCP list tool returns issues in your manual order.
Full release notes on GitHub
v1.0.3

Editor polish and safer input

A formatting bar in every Markdown editor, a guard against losing unsaved issues, and stricter validation everywhere.

Improvements

  • Select text in any Markdown editor to get a floating formatting bar with styles, links, quotes, code and lists.
  • Closing the new-issue dialog with unsaved content asks before discarding it.
  • Set priority straight from a Backlog row by clicking its icon or pressing p.
  • Invalid issue links show an "Issue not found" page with a way back.

Fixes

  • ⌘K search matches titles by substring, so real results no longer get buried.
  • Links between issues resolve correctly in the issue view.
  • The Board sorts each column the same way as the Backlog.
  • Generated agent instructions include your project's issue ID prefix.
  • Invalid input, such as negative estimates, malformed cycle dates, self-links and oversized fields, is rejected with a clear error.
Full release notes on GitHub
v1.0.2

Agents set up out of the box

xpo init detects your coding agents and configures them, and xpo drive shows what it's doing as it happens.

Upgrade notes
  • drive config changed: supervisor and coder are now objects with agent and model keys.

Improvements

  • xpo init detects installed coding agents and writes MCP config, agent instructions and the xpo workflow skill for each one.
  • xpo drive streams the agent's activity live, with collapsible phases.
  • drive.supervisor.model lets planning and review run on a faster, cheaper model.
  • xpo drive reuses agent sessions, which roughly halves token usage.
  • A broken test command is detected and skipped instead of sending the agent into a retry loop.
  • Release downloads are packaged as .tar.gz and .zip archives.

Fixes

  • Labels that differ only in case are treated as the same label.
  • The dashboard velocity card shows the current week's running total.
  • Pasted text in the Markdown editor is parsed as Markdown.
Full release notes on GitHub
v1.0.1

MCP-first agent instructions

Generated agent instructions now lead with the MCP tools, and building from source no longer needs a frontend build first.

Improvements

  • Agent instructions treat the MCP tools as the main way to work with xpo, with the CLI as a reference.

Fixes

  • Building the Go binary from source works without building the web frontend first.
Full release notes on GitHub
v1.0.0

Hello, Exponential

The first public release. Beats is now Exponential, with the xpo command, under the MIT license.

Upgrade notes
  • Coming from Beats: the binary is now xpo, project data lives in .xpo/, environment variables use the XPO_ prefix, and MCP tools are named xpo_*. There is no backward compatibility with Beats projects.

Exponential is public

The git-native issue tracker for human-agent teams is open source under the MIT license. Issues, specs and walkthroughs live in your repository next to the code, and your agents work with them through MCP. Get started.

Full release notes on GitHub