Local semantic search for your files. Privacy-first, no cloud, works offline.
Phoenix indexes your documents, code, and notes using AI embeddings, enabling natural language search across all your files. Everything runs locally on your machine.
- π Semantic Search - Find files by meaning, not just keywords
- π 100% Private - All data stays on your machine
- β‘ Real-time Indexing - Automatically watches for file changes
- π Multi-format Support - PDF, DOCX, TXT, Markdown, code files, and more
- π Offline-first - No internet required after initial setup
- π₯οΈ Native Desktop - Fast, lightweight, low resource usage
Download the latest release for your platform:
- Windows:
Phoenix_1.0.0_x64_en-US.msi - macOS:
Phoenix_1.0.0_x64.dmg - Linux:
phoenix_1.0.0_amd64.debor.AppImage
Double-click to install, then launch Phoenix from your applications.
- Click "Add Folder" to select folders to index
- Wait for initial indexing (progress shown in status bar)
- Type a query and press Enter to search
- Python 3.10+ with pip
- Node.js 18+ with npm
- Rust (via rustup)
- PyInstaller:
pip install pyinstaller - Tauri CLI:
cargo install tauri-cli
# Clone the repository
git clone https://github.com/your-org/phoenix-desktop.git
cd phoenix-desktop/project_pheonix
# Install Python dependencies
pip install -r requirements.txt
# Run the build script
.\scripts\build.ps1
# Output: ui\src-tauri\target\release\bundle\msi\Phoenix_1.0.0_x64_en-US.msi# Clone the repository
git clone https://github.com/your-org/phoenix-desktop.git
cd phoenix-desktop/project_pheonix
# Install Python dependencies
pip install -r requirements.txt
# Run the build script
chmod +x scripts/build.sh
./scripts/build.sh
# Output:
# macOS: ui/src-tauri/target/release/bundle/dmg/Phoenix.dmg
# Linux: ui/src-tauri/target/release/bundle/deb/phoenix_1.0.0_amd64.deb# Skip model download (if already cached)
.\scripts\build.ps1 -SkipModels
# Debug build with verbose output
.\scripts\build.ps1 -Debug
# Clean build (removes previous artifacts)
.\scripts\build.ps1 -CleanRun the app without building an installer:
# Terminal 1: Start the Python engine
python -m phoenix.main
# Terminal 2: Start the Tauri dev server
cd ui
npm install
npm run tauri devβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Tauri Desktop Shell β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β React UI β β Health Mon. β β Engine Manager β β
β β (Search UI) β β (Auto-restart)β β (IPC Handler) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
JSON/stdin/stdout
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Python Engine (Frozen) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β Indexer β β Chunker β β Embedder β β
β β (Watchdog) β β (Semantic) β β (MiniLM-L6-v2) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β SQLite β β Qdrant β β Worker Pool β β
β β (Metadata) β β (Vectors) β β (Concurrent) β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Phoenix stores data in:
- Windows:
%APPDATA%\Phoenix\ - macOS:
~/Library/Application Support/Phoenix/ - Linux:
~/.local/share/Phoenix/
Create config.json in the data directory:
{
"chunk_size": 512,
"chunk_overlap": 50,
"embedding_model": "all-MiniLM-L6-v2",
"max_workers": 4,
"excluded_patterns": ["node_modules", ".git", "__pycache__"]
}| Category | Extensions |
|---|---|
| Documents | .pdf, .docx, .doc, .odt, .rtf |
| Text | .txt, .md, .markdown, .rst |
| Code | .py, .js, .ts, .java, .c, .cpp, .rs, .go |
| Web | .html, .htm, .css, .json, .xml |
| Config | .yaml, .yml, .toml, .ini, .cfg |
- Check if port 6333 is available (Qdrant)
- Review logs in data directory
- Large files (>10MB) are skipped by default
- Binary files are not indexed
- Reduce
max_workersif CPU constrained
- Ensure folder is added to watch list
- Wait for indexing to complete (check status bar)
- Try more descriptive queries
MIT License - See LICENSE for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
pytest tests/ - Submit a pull request