Skip to main content

Local-first AI investigation CLI for OpenMetadata data pipelines.

Project description

OpenBlame

                         _     _                      
                        | |   | |                     
   ___  _ __   ___ _ __ | |__ | | __ _ _ __ ___   ___ 
  / _ \| '_ \ / _ \ '_ \| '_ \| |/ _` | '_ ` _ \ / _ \
 | (_) | |_) |  __/ | | | |_) | | (_| | | | | | |  __/
  \___/| .__/ \___|_| |_|_.__/|_|\__,_|_| |_| |_|\___|
       | |                                            
       |_|                                            

OpenBlame is a local-first AI investigation CLI for data pipelines running on OpenMetadata. Point it to a table, and it will trace lineage, inspect recent quality failures, parse schema-changes, surface governance gaps, and draft a root-cause narrative.

The reasoning layer runs entirely on your local Ollama models, ensuring your metadata stays inside your environment.


✨ Features

  • 🕵️ Autonomous Investigation: ReAct-style agent loop that plans and executes metadata research.
  • 🌳 Lineage & Blast Radius: Automatic upstream/downstream analysis to find affected entities.
  • 📉 Schema Drift: Instant diffing of column changes, type updates, and renames.
  • 🛡️ Governance Aware: Surfaces missing owners, tiers, and domain gaps as operational risks.
  • 🦙 Local-First AI: Powered by Ollama (qwen2.5, llama3, etc.). No external API keys needed for reasoning.
  • 🔌 MCP Ready: Built-in Model Context Protocol server to integrate with AI IDEs like Cursor and Claude Desktop.

🚀 Quick Start

1. Install

pip install openblame

2. Configure (CLI-only)

No need to manually edit files. Just run the interactive setup:

openblame configure

It will help you set your OpenMetadata Host, Token, and even auto-detect your installed Ollama models.

3. Investigate

openblame investigate "ecommerce.analytics.customer_churn"

🛠 CLI Commands

investigate

The core command. Runs the full AI reasoning loop.

openblame investigate <table_fqn> [OPTIONS]

Options:
  --depth INTEGER     Lineage depth (default: 3)
  --days INTEGER      Lookback days for changes (default: 7)
  --output PATH       Save report to markdown file
  --model TEXT        Override default Ollama model
  --host TEXT         Override OpenMetadata host
  --token TEXT        Override OpenMetadata JWT token

configure

Interactive setup for your environment. Sets up .env for you.

openblame configure

list-models

Show all models available in your local Ollama instance and see which one is active.

openblame list-models

diff

Check for schema changes in a table without running the full agent.

openblame diff <table_fqn> --days 7

lineage

Visualize upstream and downstream lineage as a tree.

openblame lineage <table_fqn> --depth 3

mcp-server

Start the MCP server for integration with Claude/Cursor.

openblame mcp-server

🔌 MCP Integration (Cursor / Claude)

Add OpenBlame to your claude_desktop_config.json:

{
  "mcpServers": {
    "openblame": {
      "command": "openblame",
      "args": ["mcp-server"]
    }
  }
}

🏗 Development

# Clone and install
git clone https://github.com/manasdutta04/openblame
cd openblame
pip install -e ".[dev]"

# Run Tests (Windows)
.\test.ps1

# Run Tests (Linux/Mac)
make test

📄 License

OpenBlame is released under the MIT License. See LICENSE for details.


🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines. Check out our Code of Conduct and Security Policy.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openblame-0.1.5.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openblame-0.1.5-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file openblame-0.1.5.tar.gz.

File metadata

  • Download URL: openblame-0.1.5.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openblame-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e12c332da5f559ad910811dc6aa5a7f087b2eab500647ba14e533a8ff4ee7f1c
MD5 72d70f5ed897cacc0ea2fe02b80357d5
BLAKE2b-256 db350530d7716b4a857d2e61aad28432da320188dc348a2443209c2096c20ef7

See more details on using hashes here.

Provenance

The following attestation bundles were made for openblame-0.1.5.tar.gz:

Publisher: publish.yml on manasdutta04/openblame

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openblame-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: openblame-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openblame-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2a073a87cc1bbfe5f515e3264d187e65ac7209ebf11e2eb814e413de18d2707a
MD5 5d9923c327762d241228492ddcee11f0
BLAKE2b-256 a056d7a304d7a6f44123ef3f83eafbbf30686593d849f6b6052b5d579c5b4aee

See more details on using hashes here.

Provenance

The following attestation bundles were made for openblame-0.1.5-py3-none-any.whl:

Publisher: publish.yml on manasdutta04/openblame

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page