# Searchi Local desktop search for Windows, macOS and Linux. Under active development; production readiness is tracked in [the roadmap](docs/ROADMAP.md). ## Architecture `crates/searchi-core` owns persistent indexing and retrieval. `crates/searchi-cli` provides a headless interface. `apps/desktop` hosts the Tauri desktop app. Search combines indexed filenames, SQLite FTS5 keyword retrieval, and real Google EmbeddingGemma 2 semantic search with a persistent HNSW index. PDF pages and DOCX paragraphs retain source locations. Image, audio, and video search remain planned; the provisioned media projector is not yet used. Granola is not required. The desktop UI is primary; the CLI builds separately without GUI dependencies. Production uses supported hardware acceleration with CPU fallback. All testing in the Windows development VM uses CPU only. Indexed content stays local. Treat the index as sensitive: it contains extracted document text. The desktop automatically downloads and verifies missing Google artifacts (approximately 865 MB), reuses its local cache, and warms the query session in the background. Development builds must build and stage the native worker first; production installers and signing remain release gates. First-query performance is measured separately from repeated-query performance. ## Copy-and-paste setup prompt Paste this into your coding agent: ```text Set up Searchi from https://tea.karlcom.de/karl/searchi.git in a new searchi directory, or reuse the existing checkout without overwriting local changes. Read AGENTS.md, SKILLS.md, docs/ROADMAP.md, and apps/desktop/README.md first. Inspect the OS and installed tools. Install missing supported prerequisites: Git, stable Rust, Node.js 24+, Python 3, CMake, native C/C++ tools and Tauri's platform dependencies. Preserve existing credentials and never print secrets. From the repository root, build and stage the pinned Google runtime: python tools/embeddinggemma2/build_runtime.py --backend cpu --jobs 2 python tools/embeddinggemma2/stage_runtime.py --backend cpu Run cargo test --workspace --locked, cargo fmt --all -- --check, and cargo clippy --workspace --all-targets --locked -- -D warnings. Run cargo test --manifest-path apps/desktop/src-tauri/Cargo.toml --locked. In apps/desktop run npm ci, npm test, npm run format:check, and npm run build. For Karl's Windows VM set SEARCHI_FORCE_CPU=1 and WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS=--disable-gpu before tests or launch. Launch the real app using npm run tauri dev from apps/desktop. Allow automatic verified Google model setup; never substitute another model or mock results. Ask which folders I want indexed; do not index my whole home automatically. Verify filename and remembered-content searches on my selected files, including persistence after restart. Report actual checks and blockers. Do not publish a release or claim production readiness, GPU validation, or untested OS coverage. ``` This is developer setup, not an installer. See the [desktop guide](apps/desktop/README.md) and [official Tauri prerequisites](https://v2.tauri.app/start/prerequisites/). The worker builder also supports `auto`, `metal`, `vulkan`, and `cuda`; those require platform SDKs and separate hardware validation. ## Development Install stable Rust and the platform's C/C++ build prerequisites. Run: ```sh cargo test --workspace cargo fmt --all -- --check cargo clippy --workspace --all-targets -- -D warnings cargo run -p searchi-cli -- --help ``` Desktop development instructions live in `apps/desktop/README.md`. Agent constraints and workflows live in [AGENTS.md](AGENTS.md) and [SKILLS.md](SKILLS.md). Use Node.js 24+ for frontend state tests. For a headless build, run `cargo build --release --locked -p searchi-cli`. No Node, Tauri, or WebView is needed. Semantic commands additionally need the native worker and Google assets; `searchi setup` provisions the model cache. Platform and CI details live in [the build guide](docs/BUILDING.md). Native CI builds must pass on all supported systems before release. Cross-platform source support does not imply signed macOS installers can be built on Windows. ## Release policy Do not publish until the roadmap's release gates have evidence. Record benchmark hardware, corpus size, cold/warm state and p95 latency. Signing credentials are supplied through CI secrets, never source control. Licensed under [MIT](LICENSE). Repository author: Karl.