alternative to Notion
A single-file relational spreadsheet for you and your agent.
↓ Download
All releases →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.
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
- Desktop: Download Eidos Lite to work with a local folder. No account is required for local use.
- Android: Download the APK from GitHub Releases or download.eidos.space/android, or follow the Android guide.
- iOS: Build the experimental iOS app from source for local editing and LAN sync with your desktop.
- Browser: Open editor.eidos.space to create or edit a local
.eidosfile without installing anything. - CLI: Install
eidosto create, inspect, query, update, and serve Eidos Files.
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-fileimplements the Eidos File format and Runtime.packages/eidos-file-uiprovides the shared React editor UI.packages/markdownprovides 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-desktopis the desktop app.apps/eidos-androidandapps/eidos-iosare the experimental native mobile hosts, with shared embedded editors.apps/eidos-file-webpowers the browser editor.apps/markdown-editor-playgroundis the isolated development and compatibility playground for the shared Markdown editor.apps/clicontains the agent-first CLI and local server.cratescontains private Rust libraries for the Runtime, SQLite helpers, publication, and mobile transports. All Rust consumers share the rootCargo.tomlandCargo.lock; applications keep independent releases.apps/sqlite-web-vieweris 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.