Lix is in alpha · Follow progress to v1.0

Embeddable version control system for AI agents

Lix is a version control system that can be imported as a library. Use it to, for example, enable human-in-the-loop workflows for AI agents like diffs and reviews.

90k+
Weekly downloads
MIT
Open Source
PythonRustGo
import { openLix, InMemoryEnvironment } from "@lix-js/sdk";
import { plugin as json } from "@lix-js/plugin-json";

const lix = openLix({
environment: new InMemoryEnvironment(),
providePlugins: [json]
})
dependencies
http
2.1
db
3.0
lix
1.0

It's just a library

Lix is a library you import. Get branching, diff, rollback in your existing stack.

config.json
title
DraftFinal
price
1012

Tracks semantic changes

Lix stores semantic changes via plugins. Diffs, blame, and history are queryable via SQL.

12:03edit config.json
12:04update data.xlsx
12:05
approved
12:06edit report.pdf

Approval workflows for agents

Agents propose changes in isolated versions. Humans review, approve, and merge.

README.mdfrom opral/lix
View on GitHub

Lix

Embeddable version control system

97k weekly downloads on NPM Discord GitHub Stars X (Twitter)

[!NOTE]

Lix is in alpha · Follow progress to v1.0 →


Lix is an embeddable version control system that can be imported as a library. Use lix, for example, to enable human-in-the-loop workflows for AI agents like diffs and reviews.

  • It's just a library — Lix is a library you import. Get branching, diff, rollback in your existing stack
  • Tracks semantic changes — diffs, blame, and history are queryable via SQL
  • Approval workflows for agents — agents propose changes in isolated versions, humans review and merge

How does Lix compare to Git? →

Getting started

JavaScript JavaScript · Python Python · Rust Rust · Go Go

npm install @lix-js/sdk
import { openLix, selectWorkingDiff } from "@lix-js/sdk";

const lix = await openLix({
  environment: new InMemorySQLite()
});

await lix.db.insertInto("file").values({ path: "/hello.txt", data: ... }).execute();

const diff = await selectWorkingDiff({ lix }).selectAll().execute();

Semantic change (delta) tracking

Unlike Git's line-based diffs, Lix understands file structure through plugins. Lix sees price: 10 → 12 or cell B4: pending → shipped, not "line 4 changed" or "binary files differ".

JSON file example

Before:

{"theme":"light","notifications":true,"language":"en"}

After:

{"theme":"dark","notifications":true,"language":"en"}

Git sees:

-{"theme":"light","notifications":true,"language":"en"}
+{"theme":"dark","notifications":true,"language":"en"}

Lix sees:

property theme:
- light
+ dark

Excel file example

The same approach works for binary formats. With an XLSX plugin, Lix shows cell-level changes:

Before:

  | order_id | product  | status   |
  | -------- | -------- | -------- |
  | 1001     | Widget A | shipped  |
  | 1002     | Widget B | pending |

After:

  | order_id | product  | status   |
  | -------- | -------- | -------- |
  | 1001     | Widget A | shipped  |
  | 1002     | Widget B | shipped |

Git sees:

-Binary files differ

Lix sees:

order_id 1002 status:

- pending
+ shipped

How Lix Works

Lix is change-first: it stores semantic changes as queryable data, not snapshots.

Plugins parse files and app state into structured entities. Lix stores what changed semantically — not just which bytes differ. Audit trails, rollbacks, and history become simple SQL queries:

SELECT * FROM change_history
WHERE entity_id = 'order.1002.status'
ORDER BY created_at DESC;
  • Doesn't reinvent databases — uses SQLite, Postgres, etc.
  • SQL API for changes — query diffs, history, and audit trails directly
  • Branching & merging — isolate agent work, compare, and merge
┌─────────────────────────────────────────────────┐
│                      Lix                        │
│                                                 │
│ ┌────────────┐ ┌──────────┐ ┌─────────┐ ┌─────┐ │
│ │ Filesystem │ │ Branches │ │ History │ │ ... │ │
│ └────────────┘ └──────────┘ └─────────┘ └─────┘ │
└────────────────────────┬────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────┐
│                  SQL database                   │
│            (SQLite, Postgres, etc.)             │
└─────────────────────────────────────────────────┘

Read more about Lix architecture →

Learn More

Blog posts

License

MIT