⚠️ Early stage project HardBore is very new and you will run into bugs. If you do, please open an issue. Bug reports help a lot.
npm install
npm run tauri dev
cd portal
./install.sh
After installation, all apps (Firefox, Chrome, VSCode) should use HardBore for file selection.
Real-world benchmarks on Arch Linux (tested with system directories):
| Operation | Throughput | Details |
|---|---|---|
| Single dir read | 709,000 items/sec | 2,820 files in 3ms |
| Recursive crawl | 424,000 items/sec | 38,214 files across /usr (depth 3) |
| Indexing | 19,663 files/sec | 47,225 files with SQLite FTS5 |
| FTS5 search | 1.7ms avg | Sub-2ms queries across 47K indexed files |
| Cold start | 2ms | DB open + first search |
| Large directory | 320,000 items/sec | 9,906 files from /usr/lib |
Multi-threaded crawling with jwalk + rayon. Optimized SQLite inserts with prepared statements and batch commits.
| Key | Action |
|---|---|
Ctrl+P |
Command palette / search |
j k |
Navigate up/down |
h l |
Parent / enter directory |
Enter |
Open file with default app / enter directory |
Ctrl+C |
Copy selected file to clipboard |
Ctrl+X |
Cut selected file to clipboard |
Ctrl+V |
Paste file from clipboard |
Delete |
Delete selected file/directory |
p |
Toggle preview |
b |
Toggle sidebar |
Ctrl+H |
Toggle hidden files |
Alt+ <- -> |
History navigation |
Mouse: Double-click files to open with default application. Right-click for context menu. Drag and drop files/directories to move them into other directories.
Use HardBore in shell scripts:
hardbore --picker # Select file
hardbore --picker --multiple # Multiple files
hardbore --picker-dirs # Select directory
hardbore --picker --types png,jpg # Filter by extension
Output: HARDBORE_SELECTED:/path/to/file
Requirements: Rust, Node.js 18+, webkit2gtk
Arch:
sudo pacman -S webkit2gtk base-devel
Ubuntu/Debian:
sudo apt install libwebkit2gtk-4.1-dev build-essential
Build:
npm install
npm run tauri dev # Development
npm run tauri build # Production
src/ SvelteKit frontend
src-tauri/ Rust backend + file operations
portal/ XDG Desktop Portal integration
docs/ Documentation
AGPL-3.0