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