balladeer
Balladeer
Balladeer makes your AI agents work like they have been on your team for years. It is decision memory for engineering teams and their agents: it captures the decisions your team makes while building (the question, the call, the why, the rejected options) and returns them at the moment they matter: before an agent builds, when a choice comes up, and when a new plan contradicts a settled call.
A real serving from Balladeer's own brain (2026-07-14, trimmed). The agent asked before touching a webhook receiver, and the team's settled call came back with its certainty and its why:
⟢ balladeer · 2 decisions for "Add a rate limiter to the webhook receiver…"
decision decision_1a4cdf8b-f92: The remote-MCP per-org RPM cap is enforced FLEET-WIDE
via a shared DB counter (mcp_rate_counters: one row per (org, minute bucket), single
atomic INSERT ... ON CONFLICT ... SET hits=hits+1 RETURNING), replacing the per-process
Map that would have enforced N x the limit across N machines. […]
certainty: confirmed by a human
question it settles: How should the remote-MCP rate limit be enforced across multiple
Fly machines, and which parts of the guard should stay per-process?
When the agent then makes a new call of its own, the decision is recorded back (unconfirmed until a human confirms it) and surfaces to every future session that touches it.
What it does mechanically
- Your agent gains three habits over MCP:
get_contextbefore non-trivial work,consultat a choice,propose_decisionwhen a call gets made. Every decision carries its certainty (human-confirmed vs machine-captured) and its receipts. - Your team's decisions live on a shared central server; the
balladeerCLI and the hosted MCP connector read from and write to it directly, with no local database to manage. - Humans stay in charge:
balladeer recentand the status line show what accumulated; confirm or dismiss from the terminal.balladeer uninstallremoves everything the setup installed (your data directory is backed up, not deleted). - Decisions cluster into initiatives: cite a decision id in the PR body that delivers it and its definition of done checks off on merge, so initiative progress is derived from merged work, not status updates.
Install
npm install -g balladeer
balladeer
This package is a thin installer. On your consent (one prompt; --yes to skip), it
downloads the current Balladeer client from get.balladeer.ai, verifies the published
sha256 checksum, and installs the verified file globally, replacing this installer with
the real client (the everyday balladeer CLI).
Equivalent, without npm:
curl -fsSL https://get.balladeer.ai | sh
Then pair the machine to your team:
balladeer login
You need a Balladeer workspace to pair with; create one at app.balladeer.ai.
Flags: --yes installs without prompting; --download-only fetches and verifies the
client tarball and prints its path without installing.
The client is served from Balladeer's own infrastructure so every install gets the current build; the client package will publish here directly once self-serve install stabilizes.
Copyright (c) 2026 Balladeer. All rights reserved.