mayneyao/eidos

TypeScripteidos.space
macOSWindowsLinux

代替: Notion

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

databaseeditorllmlocal-firstnotion-alternativeofflinesqlite
スター成長
スター
3.2k
フォーク
139
週間成長
+1
Issue
7
1.5k2k2.5k3k
2024年6月2025年3月2026年1月2026年10月
成果物npm
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:

Crate Responsibility
eidos-file-core SQLite format helpers
eidos-runtime-host QuickJS host for the canonical TypeScript Runtime; optional Serve server
eidos-publish Shared publication engine
eidos-mobile-host Shared 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.