mayneyao/eidos

A single-file relational spreadsheet for you and your agent.

TypeScript

3,196

3,717 commits

updated Oct 12, 2026

See the code

README

Eidos

A single-file relational spreadsheet, for you and your agent.

Eidos File is an open, single-file format built on standard SQLite.
Eidos Lite is the desktop app for working with Eidos Files and ordinary files in a local folder.
Android and iOS apps bring local Eidos Files and Markdown editing to your phone.

Download Eidos Lite Download Android APK Eidos documentation Chat on Discord AGPL v3 license

English · 中文

Eidos on desktop, Android, and iOS: a personal library table and a Markdown editor

On your phone

Browse local files, edit Markdown, and work with Eidos File tables and records on Android and iOS. Files and bundled editors remain usable offline without an account. Pair with Eidos Lite to sync a local Space over the same LAN.

Android APKs are available on GitHub Releases and download.eidos.space/android. The experimental iOS app is built from source. See the Android guide and iOS guide for setup and platform limitations.

Get started

macOS or Linux:

curl -fsSL https://download.eidos.space/cli/install.sh | sh

Windows PowerShell:

irm https://download.eidos.space/cli/install.ps1 | iex

Create a file and open it locally:

eidos file new example.eidos \
  --table Tasks \
  --label-field Title \
  --fields '[{"name":"Title","type":"text"},{"name":"Status","type":"select"}]'
eidos serve example.eidos --open

See the Eidos CLI guide for agent and automation workflows.

Repository

apps/ contains applications and deployable services, crates/ contains private Rust libraries, and packages/ contains shared TypeScript packages. Eidos File semantics remain in packages/eidos-file; Rust hosts run that canonical Runtime.

  • packages/eidos-file implements the Eidos File format and Runtime.
  • packages/eidos-file-ui provides the shared React editor UI.
  • packages/markdown provides the shared Lexical-based WYSIWYG editor for Eidos Flavored Markdown. Markdown remains the canonical value; the package owns import, editing, serialization, fidelity checks, and its plugin API, while hosts own persistence and attachment storage.
  • apps/eidos-lite-desktop is the desktop app.
  • apps/eidos-android and apps/eidos-ios are the experimental native mobile hosts, with shared embedded editors.
  • apps/eidos-file-web powers the browser editor.
  • apps/markdown-editor-playground is the isolated development and compatibility playground for the shared Markdown editor.
  • apps/cli contains the agent-first CLI and local server.
  • crates contains private Rust libraries for the Runtime, SQLite helpers, publication, and mobile transports. All Rust consumers share the root Cargo.toml and Cargo.lock; applications keep independent releases.
  • apps/sqlite-web-viewer is a standalone, read-only SQLite viewer.

The Rust libraries share one workspace and dependency lockfile:

CrateResponsibility
eidos-file-coreSQLite format helpers
eidos-runtime-hostQuickJS host for the canonical TypeScript Runtime; optional Serve server
eidos-publishShared publication engine
eidos-mobile-hostShared mobile sessions and Graft orchestration, Android JNI, and iOS C FFI

All crates are private (publish = false). The root workspace pins Graft and SQLite dependencies. CLI and native apps retain their own release lifecycles; Eidos File and Eidos File UI continue to release together with a shared npm version.

Eidos Lite uses Graft for local version history and optional Sync. Graft is developed as an independent, developer-facing version-control system for application state.

Development

Requirements: Node.js 22.23.1, Corepack, and Rust stable for CLI work.

corepack enable
pnpm install --frozen-lockfile

pnpm dev:eidos-lite
pnpm dev:eidos-file-web
pnpm dev:markdown-editor-playground
pnpm test:eidos-file
pnpm test:markdown-editor

Run JavaScript and Rust commands from the repository root. Rust builds write to the root target/ directory:

cargo fmt --all --check
cargo clippy --workspace --all-targets --locked --features eidos-mobile-host/ffi -- -D warnings
cargo test --workspace --locked --features eidos-mobile-host/ffi
cargo build -p eidos --release --locked

The Runtime host has no default features. The CLI explicitly enables serve; Android uses JNI, and iOS enables the mobile host's ffi feature. Standard mobile build scripts enable planned-transfer-progress with the verified Graft patch in an isolated source mirror, preserving the root lockfile's dependency versions.

The QuickJS bundle and Serve UI are generated and committed beside their sources:

# packages/eidos-file/generated/quickjs/
pnpm --filter @eidos.space/eidos-file build:quickjs

# packages/eidos-file-serve/generated/ui/
pnpm --filter @eidos.space/eidos-file-serve build

Refresh them after changing their sources. Rust builds verify source and output hashes and reject stale artifacts. Serve UI builds resolve Eidos File directly to workspace source.

Mobile builds run independently of the desktop and browser builds. Follow the Android or iOS instructions for the required platform SDKs and Rust targets.

See the documentation site and the normative Eidos File specifications for more detail.

License

The repository is licensed under AGPL v3. The reusable @eidos.space/eidos-file and @eidos.space/eidos-file-ui packages are released under MIT.

database
editor
llm
local-first
notion-alternative
offline
sqlite

mayneyao/eidos

A single-file relational spreadsheet for you and your agent.

TypeScript

3,196

3,717 commits

updated Oct 12, 2026

See the code

README

Eidos

A single-file relational spreadsheet, for you and your agent.

Eidos File is an open, single-file format built on standard SQLite.
Eidos Lite is the desktop app for working with Eidos Files and ordinary files in a local folder.
Android and iOS apps bring local Eidos Files and Markdown editing to your phone.

Download Eidos Lite Download Android APK Eidos documentation Chat on Discord AGPL v3 license

English · 中文

Eidos on desktop, Android, and iOS: a personal library table and a Markdown editor

On your phone

Browse local files, edit Markdown, and work with Eidos File tables and records on Android and iOS. Files and bundled editors remain usable offline without an account. Pair with Eidos Lite to sync a local Space over the same LAN.

Android APKs are available on GitHub Releases and download.eidos.space/android. The experimental iOS app is built from source. See the Android guide and iOS guide for setup and platform limitations.

Get started

macOS or Linux:

curl -fsSL https://download.eidos.space/cli/install.sh | sh

Windows PowerShell:

irm https://download.eidos.space/cli/install.ps1 | iex

Create a file and open it locally:

eidos file new example.eidos \
  --table Tasks \
  --label-field Title \
  --fields '[{"name":"Title","type":"text"},{"name":"Status","type":"select"}]'
eidos serve example.eidos --open

See the Eidos CLI guide for agent and automation workflows.

Repository

apps/ contains applications and deployable services, crates/ contains private Rust libraries, and packages/ contains shared TypeScript packages. Eidos File semantics remain in packages/eidos-file; Rust hosts run that canonical Runtime.

  • packages/eidos-file implements the Eidos File format and Runtime.
  • packages/eidos-file-ui provides the shared React editor UI.
  • packages/markdown provides the shared Lexical-based WYSIWYG editor for Eidos Flavored Markdown. Markdown remains the canonical value; the package owns import, editing, serialization, fidelity checks, and its plugin API, while hosts own persistence and attachment storage.
  • apps/eidos-lite-desktop is the desktop app.
  • apps/eidos-android and apps/eidos-ios are the experimental native mobile hosts, with shared embedded editors.
  • apps/eidos-file-web powers the browser editor.
  • apps/markdown-editor-playground is the isolated development and compatibility playground for the shared Markdown editor.
  • apps/cli contains the agent-first CLI and local server.
  • crates contains private Rust libraries for the Runtime, SQLite helpers, publication, and mobile transports. All Rust consumers share the root Cargo.toml and Cargo.lock; applications keep independent releases.
  • apps/sqlite-web-viewer is a standalone, read-only SQLite viewer.

The Rust libraries share one workspace and dependency lockfile:

CrateResponsibility
eidos-file-coreSQLite format helpers
eidos-runtime-hostQuickJS host for the canonical TypeScript Runtime; optional Serve server
eidos-publishShared publication engine
eidos-mobile-hostShared mobile sessions and Graft orchestration, Android JNI, and iOS C FFI

All crates are private (publish = false). The root workspace pins Graft and SQLite dependencies. CLI and native apps retain their own release lifecycles; Eidos File and Eidos File UI continue to release together with a shared npm version.

Eidos Lite uses Graft for local version history and optional Sync. Graft is developed as an independent, developer-facing version-control system for application state.

Development

Requirements: Node.js 22.23.1, Corepack, and Rust stable for CLI work.

corepack enable
pnpm install --frozen-lockfile

pnpm dev:eidos-lite
pnpm dev:eidos-file-web
pnpm dev:markdown-editor-playground
pnpm test:eidos-file
pnpm test:markdown-editor

Run JavaScript and Rust commands from the repository root. Rust builds write to the root target/ directory:

cargo fmt --all --check
cargo clippy --workspace --all-targets --locked --features eidos-mobile-host/ffi -- -D warnings
cargo test --workspace --locked --features eidos-mobile-host/ffi
cargo build -p eidos --release --locked

The Runtime host has no default features. The CLI explicitly enables serve; Android uses JNI, and iOS enables the mobile host's ffi feature. Standard mobile build scripts enable planned-transfer-progress with the verified Graft patch in an isolated source mirror, preserving the root lockfile's dependency versions.

The QuickJS bundle and Serve UI are generated and committed beside their sources:

# packages/eidos-file/generated/quickjs/
pnpm --filter @eidos.space/eidos-file build:quickjs

# packages/eidos-file-serve/generated/ui/
pnpm --filter @eidos.space/eidos-file-serve build

Refresh them after changing their sources. Rust builds verify source and output hashes and reject stale artifacts. Serve UI builds resolve Eidos File directly to workspace source.

Mobile builds run independently of the desktop and browser builds. Follow the Android or iOS instructions for the required platform SDKs and Rust targets.

See the documentation site and the normative Eidos File specifications for more detail.

License

The repository is licensed under AGPL v3. The reusable @eidos.space/eidos-file and @eidos.space/eidos-file-ui packages are released under MIT.

database
editor
llm
local-first
notion-alternative
offline
sqlite

Significant stargazers

(top 24 of 37)

Dan Dascalescu

739 followers · starred Mar 2025

Innei

3,489 followers · starred Aug 2024

Elsa Granger

141 followers · starred Jun 2024

yetone

9,252 followers · starred Nov 2025