EaaSE is a local-first desktop application designed to turn hundreds of Excel workbooks into an instant, searchable index database. It processes everything locally on your machine, requiring no database migrations or cloud service uploads.
Important
Read-Only Safety Guarantee: EaaSE is strictly read-only. It parses and caches sheet content into local DB configurations without ever modifying or writing back to your original Excel files.
| Target Scenario | EaaSE Solution |
|---|---|
| Scattered Excel Files | Load up to 1000 .xls, .xlsx, .xlsm, and .csv files into a single unified search engine index. |
| Complex Table Inspecting | High-performance search interface supporting grouped results, column filtering, and layout switching. |
| No Database Overhead | Import files directly; EaaSE automatically parses and updates cache records locally. |
| Offline Desktop Execution | Local Node.js service paired with a React client, bypassing fragile cloud service requirements. |
| Launch Option | Steps to Execute | Available Features |
|---|---|---|
| Option 1: Release Package | 1. Go to Releases 2. Download & run the installer 3. Drag and drop folders to search |
Full Desktop Experience (Local path actions, SQLite persistence) |
| Option 2: Run From Source | npm installnpm run devOpen localhost:5173 |
Full Desktop Experience (Developer mode) |
| Option 3: Web Fallback | npm run quickstart |
Web-Only Sandbox (Web Worker search, no local SQLite, browser file picker only) |
Note
AI Gating & Maintenance: For AI agents maintaining this codebase, you must obey the logic rules defined in AgentLogic/ and self-verify with check:logic before coding.
| Path | Core Purpose |
|---|---|
src/ |
React frontend components, styling, custom hooks, and Web Worker files |
scripts/ |
Local Node.js backend server code and package compile scripts |
config/ |
Stores SQLite cache.db, local configurations, and logging entries |
AgentLogic/ |
Governance profiles, version guidelines, and agent entrypoints |
- Core Components: React + Vite + TypeScript.
- Database Cache: SQLite database wrapper (
cache.db) enabling rapid strict substring searches. - Virtualization: Uses virtualized lists for rendering large result sets without UI freezing.
- Parsing Engine: Fast spreadsheet data Ingestion via
xlsxlibraries.
- Multi-Workbook Indexing: Ingest directories, files, or specific sheets for unified lookups.
- Structured Results: Group outputs by
File -> Sheetto trace source cells. - Intelligent Filters: Search and isolate columns, handle multi-row headers, and toggle layout views.
- Local Persistence: Workspace states are exported/imported seamlessly using
.eaase.jsonarchives. - Worker Ingestion: Automatically falls back to client-side Web Worker searching if the local server drops.
Manage, audit, and compile releases using npm scripts:
# Ingest dependencies
npm install
# Run Vite dev server
npm run dev
# Compile React frontend
npm run build
# Run local verification test suite
npm run verify
# Verify logic links & docs mapping
npm run check:logic
npm run check:docs
# Package the application for GitHub release
npm run package:github-release- Desktop-specific features (such as local file path links) are unavailable in the Web Fallback quickstart mode.
- App packaging requires a matching platform compiler to output native portable files.
- SQLite cache DB resides locally; sharing workspaces requires exporting the
.eaase.jsonindex archive.
| Version | Status | Key Hardening Focus |
|---|---|---|
| v2.1.0 | Stable | SQLite physical database compaction, cache cleanup on folder removal, package installers |
| v2.0.0 | Release | Support for 1000+ files, SQLite cache database persistence, .eaase.json workspace archives |
| v1.1.0 | Legacy | Inception of Node.js background local service paired with Electron wrapper |
| v1.0.0 | Legacy | Substring parser core, React browser-picker UI, multilingual READMEs |
- Open an Issue for search model defects or query parser enhancements.
- Submitting PRs requires completing the
check:logicgate first. - Currently, no external license file is declared in this repository.