exponential

module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2026 License: MIT

README

Exponential

The product engineering system for human-agent teams.

Decompose problems into small, precise specs your agents can actually nail — then run the whole lifecycle, from planning to shipping, in your repo. One binary. Git-native. Bring your own agents.

Exponential dashboard showing velocity, cycle time, and agent activity

Get started

go install github.com/palarix/exponential/cmd/exponential@latest
cd your-project
xpo init
xpo add "Wire up login form" --label feature
xpo board

Run xpo init and you're tracking work in under a minute. It creates the issue database, configures .mcp.json for agent access, and generates agent instruction files with a portable development workflow skill for any detected agents (Claude Code, Gemini, Cursor, Aider, etc.).

Why Exponential

Git-native. Issues live in .xpo/ and travel with your code. Clone the repo, get the backlog and its full audit trail. Branches, merges, and history apply to your issues the same way they apply to everything else.

Agent-first. A built-in MCP server gives AI coding agents structured tools for reading, writing, linking, and driving issues. No shelling out to a CLI and praying about quoting — agents get typed tool calls with proper schemas.

Durable memory. A context window forgets between sessions; the backlog doesn't. Issues, comments, specs, decisions, and history persist, so the next agent picks up where the last one left off instead of starting cold.

Event-sourced. Every change is an append-only event. Merge conflicts are rare. The audit trail is a byproduct, not a feature you switch on.

Single binary. xpo ships the CLI, the web UI, and the MCP server in one Go executable. No Node.js, no Docker, no database to run.

xpo drive — turn your backlog into an execution pipeline

Point xpo drive at your backlog. A supervisor agent evaluates your spec and reviews the result; a coder agent builds it on a branch and runs your tests. The agent that writes the code never grades its own work.

Three modes, one command:

  • Manual — pick a story, the agent handles the rest: xpo drive --id <id>
  • Automatic — the agent picks the highest-priority unblocked story: xpo drive
  • Continuous — drain the backlog until everything planned is done: xpo drive --loop

If a run fails, the issue is marked blocked with feedback attached — nothing is lost, and you can resume where it stopped with xpo drive --resume.

Agent integration (MCP)

Wire xpo mcp into any MCP-compatible client. The fastest setup is a .mcp.json at your repo root — checked in alongside the code, so every contributor gets the same tools:

{
  "mcpServers": {
    "xpo": {
      "command": "xpo",
      "args": ["mcp"]
    }
  }
}

Agents get twelve structured tools: list, show, add, update, comment, link, start, merge, history, spec, walkthrough, artifact. All writes are append-only events on a git-tracked file, so a mistaken call is recoverable via git.

To reduce permission prompts in Claude Code, allow-list the tools in .claude/settings.json:

{
  "permissions": {
    "allow": ["mcp__xpo__*"]
  }
}

The Board

xpo board opens a Kanban board in your browser — drag-and-drop, sub-issues, keyboard shortcuts, and a Cmd-K command palette:

  • Drag across status columns; hold Alt to nest as a sub-issue
  • Epics show progress; children render inline
  • Dashboard with velocity charts, flow metrics, cycle burndowns, workload distribution
  • Inbox with grouped notifications and read/unread state
  • Run multiple boards in parallel — the sidebar links to your other live projects

The server binds to 127.0.0.1 only. No remote access, no auth needed.

CLI

Daily workflow
xpo list                                # see the board (alias: xpo ls)
xpo show <id>                           # full details for one issue
xpo add "Title" --label feature         # create
xpo start <id>                          # move to DOING + create branch
xpo done  <id>                          # move to DONE
xpo comment <id> "Fixed in auth.go"     # markdown comment
Filtering
xpo list --status PLANNED               # by status
xpo list --label bug                    # by label
xpo list --assignee "Alice"             # by assignee
xpo list --match "login"                # full-text search
xpo list --mine                         # your issues
xpo list --since 1w                     # recent activity
Relationships and estimation
xpo add "Big initiative" --label epic
xpo add "Subtask" --label feature -p <epic-id>
xpo link <a> <b> --type blocks
xpo estimate <id> 5
Branch workflows
xpo start <id>                          # creates branch, moves to DOING
xpo review <id>                         # unified diff from the terminal
xpo merge <id>                          # squash-merge + close

Run xpo --help or xpo <command> --help for the full surface.

Installation

Binary download

Grab the latest release from GitHub Releases and put it on your PATH.

Go install
go install github.com/palarix/exponential/cmd/exponential@latest

Requires Go 1.25+. Builds the CLI without the embedded web UI. For the full build, build from source.

From source

Requires Go 1.25+ and bun.

git clone https://github.com/palarix/exponential.git
cd exponential
make && make install
Docker
docker build -t xpo:latest .
docker run -v /path/to/repo:/data -p 8080:8080 xpo:latest

Distributed mode

For teams that need a shared server, xpo runs in client-server mode with SSH key authentication.

# Server
xpo serve --addr :8080

# Client
xpo login https://xpo.example.com
xpo list                                # works against the remote
xpo board                               # proxies to the remote

Add team members' SSH public keys to .xpo/authorized_keys. Role-based permissions (admin, member, viewer) are configured in .xpo/config.yaml. See xpo serve --help for details.

Configuration

Settings live in .xpo/config.yaml, created by xpo init. Project settings override user-level settings in ~/.config/xpo/config.yaml. Environment variables prefixed with XPO_ override both.

Highlights: configurable issue ID prefix, estimation scales (fibonacci, exponential, linear, t-shirt), sprint cycles, label colors, contributor lists, automatic parent/child state propagation, and xpo drive agent configuration. Run xpo config to view or edit.

Architecture

Issues live in .xpo/issues.db as an append-only JSONL event log. Reads are accelerated by a local-only snapshot that caches the projection up to a given event. The CLI, web UI, and MCP server are all thin clients over the same in-memory projection.

For the full design, see docs/design.md.

Contributing

make           # full build (frontend + Go binary)
make cli       # Go binary only (skip frontend)
make test      # run Go tests
make lint      # go vet

Issues for Exponential are tracked in xpo itself. Run xpo ls in this repo to see what's open.

Built with itself

We built Exponential with Exponential. One developer directing AI agents shipped the entire product as a stream of micro-tasks — 180+ issues, 90% at 3 story points or fewer, 12-minute median cycle time. The numbers on the landing page come from this repo's own issues.db.

License

MIT

Directories

Path Synopsis
cmd
exponential command
internal
inputs
Package inputs defines the agent-facing input types shared by the xpo CLI (--json mode) and the MCP server.
Package inputs defines the agent-facing input types shared by the xpo CLI (--json mode) and the MCP server.
mcpserver
Package mcpserver exposes exponential over the Model Context Protocol so AI agents can manage issues with structured tool calls instead of shelling out to the CLI.
Package mcpserver exposes exponential over the Model Context Protocol so AI agents can manage issues with structured tool calls instead of shelling out to the CLI.
registry
Package registry manages a shared file-based registry of running xpo board instances so peers can discover each other.
Package registry manages a shared file-based registry of running xpo board instances so peers can discover each other.
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL