Brier
Forecasting as a harness for decision-making.
Instead of asking "Is X good?" or "Should I do Y?", brier helps you:
- Define what success looks like (KPIs)
- Expand your options (including ones you didn't consider)
- Make explicit forecasts (with confidence intervals and resolution rules)
- Track outcomes to improve calibration over time
Installation
python -m pip install 'brier[mcp]'
Quick Start
Codex
brier setup codex
brier doctor codex
Then restart Codex and use $brier when a decision prompt appears.
Claude Code
brier setup claude
brier doctor claude
Then restart Claude Code.
Local CLI
brier new "Should we rewrite the auth layer?" --context "3 incidents this quarter"
brier list
brier calibration
The CLI is local-only and does not call an LLM or require an API key.
Python package
from brier import Decision, KPI, Option, Forecast, DecisionStore
from datetime import datetime, timedelta
# Create a decision
decision = Decision(
question="Should I take the new job offer?",
kpis=[
KPI(name="income", description="Total comp after 2 years", unit="$"),
KPI(
name="satisfaction",
description="Job satisfaction 1-10",
outcome_type="score",
resolution_date=datetime.now() + timedelta(days=365),
resolution_rule="Ask for a 1-10 retrospective self-rating 12 months after starting.",
data_source="Follow-up self-review",
),
],
options=[
Option(
name="Take new job",
description="Accept the offer at Company X",
forecasts={
"income": Forecast(
point_estimate=300000,
confidence_interval=(250000, 400000),
reasoning="Base + equity, assuming normal vesting",
),
"satisfaction": Forecast(
point_estimate=7.5,
confidence_interval=(6, 9),
reasoning="Interesting work, but unknown team",
),
}
),
Option(
name="Stay at current job",
description="Decline and stay",
forecasts={
"income": Forecast(
point_estimate=250000,
confidence_interval=(230000, 280000),
reasoning="Known trajectory, likely promotion",
),
"satisfaction": Forecast(
point_estimate=6.5,
confidence_interval=(6, 7),
reasoning="Comfortable but plateauing",
),
}
),
],
review_date=datetime.now() + timedelta(days=180),
)
# Save it
store = DecisionStore()
store.save(decision)
Command Line
brier new "Should we launch now?"
brier show abc123
brier pending
brier calibration
Forecast Question Drafts
brier can turn a stored decision forecast or standalone policy question into
Manifold-ready forecast question drafts. This is draft-only: it does not publish
questions, place a bet, or require a Manifold API key.
brier forecast-draft "Will Waymo be legally permitted to offer fully driverless paid robotaxi rides in Washington, DC by 2026-12-31?" \
--initial-prob 52 \
--resolution-date 2026-12-31 \
--resolution-rule "Resolve YES if official DC law, regulation, or permit approval allows Waymo to offer fully driverless paid public rides in DC by 2026-12-31." \
--source "Waymo DC announcement|https://waymo.com/blog/2025/03/next-stop-for-waymo-one-washingtondc/" \
--source "DC AV testing law|https://code.dccouncil.gov/us/dc/council/laws/23-156" \
--tag waymo \
--tag dc \
--output waymo-dc-forecast-pack.json
For a stored decision with options and forecasts:
brier forecast-draft abc123 --output forecast-pack.json
An example Waymo/DC draft pack lives at
examples/waymo_dc_market_pack.json. It
uses an existing Manifold public-service question as the gate, then drafts
conditional aggregate 2027 safety forecasts for DC traffic fatalities and serious
injuries. These resolve N/A when the linked gate question resolves the opposite
way.
AI Agent Workflows
brier is not tied to Claude. The Claude Code plugin is the most integrated path today, but the framework also works with Codex and other coding agents that can follow structured instructions or run shell commands.
For agent-agnostic setup and prompt guidance, see docs/agent-workflows.md.
Codex and other coding agents
The default builder path is package-first:
python -m pip install 'brier[mcp]'
brier setup codex
brier doctor codex
For source installs during development:
python -m pip install -e /path/to/brier
MCP server