百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
L

lix

> AI 编程
开源

适用于任何文件格式的版本控制系统

729 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

适用于任何文件格式的版本控制系统

Universal version control system

Lix is a version control system for any file format: code, documents, spreadsheets, design files, video, datasets. It runs in-process on pluggable storage. Files, app tables, and history are rows in one ACID database. Agents read and write normal files. Your product queries SQL. You branch, diff, merge, and roll back all of it together:

  • Any format. Text, binaries, large blobs. Plugins make formats like DOCX, XLSX, and JSON diffable and mergeable by clause, cell, or row.
  • Embeddable. Runs in-process as a library. Storage is pluggable: memory, filesystem, browser OPFS, or S3.
  • ️ Designed as a database. File content, app tables, and history are rows in one ACID OLTP database. Query millions of rows with SQL.
  • ⚡ Real-time collaboration. People and agents share a repository and see changes as they happen.
  • Permissions (planned). Per file, per group, stored in the repository and versioned like any other change.

Why not Git?

Git is a CLI designed for source code. It assumes a local POSIX filesystem, tracks whole files, and diffs text lines. Keep software engineering in Git. Use Lix when your product stores files and data for its users.

Git Lix
Process model Separate CLI process Library in your process
Storage Local disk Memory · filesystem · OPFS · S3
Application data Separate database SQL rows, ACID, with the files
Recording changes Manual commits Every write, automatically
Formats Text lines Any, by clause, cell, or row
Collaboration Push and pull Real time

Getting started

JavaScript · Rust · Python · Go

bash
npm install @lix-js/sdk @lix-js/storage-filesystem

Run locally with FilesystemStorage:

typescript
import { openLix } from "@lix-js/sdk";
import { FilesystemStorage } from "@lix-js/storage-filesystem";

const lix = await openLix({
  storage: new FilesystemStorage({ path: "./repository" }),
});

await lix.execute("INSERT INTO lix_file (path, content) VALUES ($1, $2)", [
  "/notes/status.txt",
  new TextEncoder().encode("ready"),
]);

Or against a server:

typescript
const lix = await openLix({
  server: {
    url: "https://example.com/lix/01936f4e-7b6c-7c3d-8f9a-123456789abc",
  },
});

Lix is in alpha.

Prime use cases

Co-locate code, documents, and app state

Code lives in Git. Documents, design files, and media live in Drive, Figma, and S3. App state lives in Postgres. No system versions all of them together. Lix stores them in one repository with one history.

typescript
// A script, a 4.8 GB video, and an app table in one transaction.
await lix.executeBatch([
  {
    sql: "INSERT INTO lix_file (path, content) VALUES ($1, $2)",
    params: ["/automations/weekly-report.js", source],
  },
  {
    sql: "INSERT INTO lix_file (path, content) VALUES ($1, $2)",
    params: ["/media/launch.mp4", video],
  },
  {
    sql: "UPDATE orders SET status = 'shipped' WHERE id = $1",
    params: [1002],
  },
]);

// Branch, diff, and roll back all of it together.

Give each customer a repository

Your customers want agents that write automations and edit their documents, with a way to review and undo. Drive has no version control. Your customers do not have GitHub repos. Embed Lix and give each customer a repository that holds their code, documents, spreadsheets, and media.

typescript
// One hosted repository per customer.
const lix = await openLix({
  server: {
    url: `https://example.com/lix/${customer.repositoryId}`,
  },
});

// The agent writes an automation. Lix commits the change automatically.
await lix.execute("INSERT INTO lix_file (path, content) VALUES ($1, $2)", [
  "/automations/booking.ts",
  code,
]);

// Your UI shows the diff. The customer clicks accept or undo.

Apps with version control

Your app reads and writes SQL rows and normal files. Lix records every change with its author, so history, blame, branching, and rollback are queries instead of features you build.

typescript
// A normal app write. "orders" is a table you registered with a Lix schema.
await lix.execute("UPDATE orders SET status = 'shipped' WHERE id = 1002");

// The history sidebar, diff view, and undo button are queries:
const changes = await lix.execute(`
  SELECT created_at, account_id, schema_key, row_pk, snapshot_content
  FROM lix_change
  ORDER BY created_at DESC
`);

Read more about diffs →

How Lix works

Files × database

Plugins map files to SQL rows. A paragraph, cell, or property becomes a row Lix can version.

With FilesystemStorage, the file stays available on disk. Its rows are queryable with SQL. Lix tracks changes to both.

Runs in-process as part of your infrastructure

Lix runs in-process with pluggable storage: memory, filesystem, browser OPFS, or S3. See the Storage docs.

Try a hosted repository

Try out lixray.com:

Learn more

  • Getting Started Guide - Build your first app with Lix
  • Documentation - Full API reference and guides
  • Discord - Get help and join the community
  • GitHub - Report issues and contribute

License

MIT

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rustaiai-agentschange-detectionversion-control

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类AI 编程
定价开源

> 相关工具

G
GitHub Copilot
GitHub 官方 AI 编程助手,覆盖补全、Chat 与 Agent 模式。
C
Cursor
AI 原生代码编辑器,对话改代码、多文件 Agent 与规则体系是其核心。
S
skills
Skills for Real Engineers. Straight from my .agents directory.