Local-first semantic search and natural-language file operations powered by Ollama, ChromaDB, and a Python backend, with both Terminal and Tauri desktop UI workflows.
- Python semantic runtime (SLPFS) for indexing, search, and NL command execution
- FastAPI backend service used by the desktop app
- Tauri + React frontend for file tree, chat/search, and preview UX
- Optional multimodal indexing/search pipeline (Semantixel)
- Config-driven local setup through a single config file
- User submits a search or command from Terminal or UI.
- Backend routes requests to runtime services.
- Files are indexed to vectors using sentence-transformers.
- ChromaDB returns semantic matches.
- Ollama-powered LLM handles intent/command parsing and response shaping.
Primary paths:
slpfs/core semantic file system runtimesemantixel/multimodal servicesbackend_api/app/FastAPI API layer and runtime managementtauri_ui/desktop app frontend (React + Tauri)
Required on all OS:
- Python 3.10+ (3.11 recommended)
- Node.js 18+ and npm
- Ollama installed and available in PATH
- Git
For Tauri desktop development, install Rust toolchain:
- Rustup + stable Rust + Cargo
Install Rust toolchain:
rustup default stableInstall and start Ollama, then pull a model:
ollama serveIn another terminal:
ollama pull qwen2.5:3bgit clone https://github.com/rockers2004/Semantic_file_system.git
cd Semantic_file_system
python -m venv myenv
.\myenv\Scripts\Activate.ps1
pip install --upgrade pip
pip install -r requirements.txt
cd tauri_ui
npm install
cd ..Start backend API:
.\myenv\Scripts\Activate.ps1
python -m uvicorn backend_api.app.main:app --host 127.0.0.1 --port 8000 --reloadStart Tauri UI (new terminal):
cd tauri_ui
npm run tauri devOptional Terminal UI:
.\myenv\Scripts\Activate.ps1
python terminal.pygit clone https://github.com/taslim121/Semantic_file_system.git
cd Semantic_file_system
python3 -m venv myenv
source myenv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
cd tauri_ui
npm install
cd ..Start backend API:
source myenv/bin/activate
python -m uvicorn backend_api.app.main:app --host 127.0.0.1 --port 8000 --reloadStart Tauri UI (new terminal):
cd tauri_ui
npm run tauri devOptional Terminal UI:
source myenv/bin/activate
python terminal.pySystem packages commonly needed for Tauri/WebKit:
sudo apt update
sudo apt install -y build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-devThen project setup:
git clone https://github.com/taslim121/Semantic_file_system.git
cd Semantic_file_system
python3 -m venv myenv
source myenv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
cd tauri_ui
npm install
cd ..Start backend API:
source myenv/bin/activate
python -m uvicorn backend_api.app.main:app --host 127.0.0.1 --port 8000 --reloadStart Tauri UI (new terminal):
cd tauri_ui
npm run tauri devOptional Terminal UI:
source myenv/bin/activate
python terminal.pyEdit config.yaml before first use.
Current important keys:
directories.root_dir: folder to index and operate ondirectories.vector_db_dir: local Chroma storageollama.model: LLM model (currentlyqwen2.5:3b)ollama.url: Ollama server URL (default local)embedding.model: embedding model namemultimodal.enabled: toggle multimodal indexing/searchmultimodal.db_path: multimodal vector DB path
Example:
directories:
root_dir: C:\Users\YourUser\Desktop\your_folder
vector_db_dir: ./.lsfs_db
ollama:
model: qwen2.5:3b
url: http://localhost:11434
embedding:
model: all-mpnet-base-v2
search:
default_results: 5
max_file_size_mb: 10
multimodal:
enabled: true
db_path: ./db_multimodal- Start Ollama
- Start backend API
- Start Tauri app
This mode is best for daily use.
python terminal.pyUseful for debugging backend behavior without UI.
Run these from the repository root.
Windows PowerShell:
.\myenv\Scripts\Activate.ps1
pip install -r requirements.txtmacOS/Linux:
source myenv/bin/activate
pip install -r requirements.txtWindows PowerShell:
.\myenv\Scripts\Activate.ps1
python -m uvicorn backend_api.app.main:app --host 127.0.0.1 --port 8000 --reloadmacOS/Linux:
source myenv/bin/activate
python -m uvicorn backend_api.app.main:app --host 127.0.0.1 --port 8000 --reloadpython backend_api/app/main.pypython terminal.pyRun these from tauri_ui/.
npm installThis starts the Vite dev server on http://localhost:1420.
npm run devThis starts the Tauri desktop shell. The Rust side will also start the Python backend automatically when the app launches.
npm run tauri devnpm run buildnpm run previewnpm run tauri buildBase URL:
http://127.0.0.1:8000/api/v1
Key endpoints:
GET /healthGET /configPUT /configPUT /config/rootPOST /searchPOST /commandGET /treePOST /file/readPOST /index/startGET /index/statusPOST /index/cancel
Connection refused / model unavailable
Fix:
ollama serve
ollama pull qwen2.5:3bMake sure virtual environment is active and dependencies are installed from both requirement files.
- Confirm Rust is installed:
rustc --version - Confirm Node/npm are installed:
node -vandnpm -v - On Linux, install missing system packages for WebKit/GTK
Windows PowerShell:
Remove-Item -Recurse -Force .lsfs_db, db_multimodalmacOS/Linux:
rm -rf .lsfs_db db_multimodal- Balanced default:
qwen2.5:3b - Better quality (if resources allow):
qwen2.5:7b - Alternative general model:
llama3.1:8b
Update the model in config.yaml, then restart backend.
- Backend API entrypoint:
backend_api/app/main.py - UI scripts:
tauri_ui/package.json - Contract and planning docs:
backend-contract.mdtauri-implementation-plan.md
Use according to repository license and applicable third-party dependency licenses.