Skip to content

nagi-project/nagi

Nagi

PyPI CI License Python

Nagi keeps data in its desired state.

Motivation

State evaluation, routine ELT, and data incident response are often carried out as separate activities — different tools, different runbooks, different moments. When a scheduled job succeeds but the data is stale, the gap between "the pipeline ran" and "the data is correct" surfaces as an incident that lives outside the pipeline itself.

These activities are points on the same continuum: observe state, decide it needs correction, and correct it. Nagi places them in a single reconciliation loop so you can move between monitoring, manual recovery, and automated convergence without changing tools or vocabulary.

graph LR
    subgraph Nagi
        Eval["Evaluate data state"]
        Drift{"Diverged from<br>desired state?"}
        Conv["Run convergence<br>operation"]
    end
    subgraph User
        Define["Define desired state<br>of data"]
    end
    subgraph UserAI["User / AI Agent"]
        Check["Check state"]
    end
    Define --> Eval
    Eval --> Drift
    Drift -->|No| Eval
    Drift -->|Yes| Conv
    Conv --> Eval
    Nagi -->|"Alert"| UserAI
    UserAI -->|"Manual operation"| Nagi
Loading

Principles

  • Declarative — Define the desired state; let Nagi handle convergence.
  • Composable — Use with your existing tools, or let Nagi take the wheel.
  • AI-collaborative — Designed for humans and AI agents to work as one.

Install

pip install nagi-cli

See the Quickstart for a full walkthrough, or browse the Documentation.

License

Apache License 2.0. See LICENSE for details.

About

Data reconciliation engine that keeps data in its desired state.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors