tiltmeter GitHub

Know when the APIs
under your agents move.

Tiltmeter learns the shape of every third-party API you depend on and tells you, your CI and your agents the moment it changes.

$

✕ billing_customers 200 · 13 ms breaking · 3 changes

breaking$.data[*].balanceinteger → string
breaking$.data[*].phoneremoved · possibly renamed to phone_number
info$.data[*].phone_numbernew field

Claude The vendor most likely renamed phone to phone_number. Code doing math on balance will break now that it is a string. Read phone_number and parse balance as a number.

No spec. It learns from real responses.

No noise. Only what breaks a consumer.

No guessing. Agents ask has_drifted over MCP.

For agents

Agents ask before they act.

An MCP server lets Claude Code, Cursor or any LangChain agent check an API before trusting its response.

claude mcp add tiltmeter -- tiltmeter serve

has_drifted("billing_customers")

drifted       true
max_severity  breaking
changed       phone → phone_number
checked       2 min ago

Install in your agent

One line. Or let your agent do it.

claude mcp add tiltmeter -- uvx tiltmeter serve --config tiltmeter.yaml
Run it in your project folder.
{
  "mcpServers": {
    "tiltmeter": {
      "command": "uvx",
      "args": [
        "tiltmeter",
        "serve",
        "--config",
        "tiltmeter.yaml"
      ]
    }
  }
}
Or paste this into .cursor/mcp.json.Add to Cursor
codex mcp add tiltmeter -- uvx tiltmeter serve --config tiltmeter.yaml
Or add [mcp_servers.tiltmeter] to ~/.codex/config.toml.
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tiltmeter": {
      "type": "local",
      "command": [
        "uvx",
        "tiltmeter",
        "serve",
        "--config",
        "tiltmeter.yaml"
      ],
      "enabled": true
    }
  }
}
Add this to opencode.json in your project.
Set up Tiltmeter (https://github.com/tiltmeter-dev/tiltmeter) in this project so you can check whether the third-party APIs we use have changed before relying on them.

1. Find the external HTTP APIs this codebase calls that return JSON.
2. Create tiltmeter.yaml in the project root with one endpoint per API. Use ${ENV_VAR} placeholders for keys, never literal secrets. Docs: https://github.com/tiltmeter-dev/tiltmeter/blob/main/docs/configuration.md
3. Add .tiltmeter/ to .gitignore and run `uvx tiltmeter check` once to record the baselines.
4. Register the MCP server for yourself, using the command: uvx tiltmeter serve --config tiltmeter.yaml
5. Add to CLAUDE.md or AGENTS.md: "Before relying on a third-party API, call the tiltmeter has_drifted tool for it."

Show me the endpoints you chose before writing the file.
Paste it into any coding agent. It finds your APIs, writes the config and installs the server.

How it works

  1. ObserveCall the API. Turn the JSON into a shape: types, required fields, enum values.
  2. CompareCheck it against a rolling baseline. Only real contradictions count.
  3. WarnFail CI, ping Slack, explain it with Claude, tell your agents. Once.

For CI

An exit code that knows what broke.

0 clean 1 warning 2 breaking

Nothing leaves your machine.

Secrets stay in your environment. Response bodies are never stored, only their shape. One SQLite file, no account.

View on GitHub