https://github.com/0xsecaas/quickfind
Instant file search CLI
https://github.com/0xsecaas/quickfind
commandline-tool file-search quick-search tui
Last synced: 20 days ago
JSON representation
Instant file search CLI
- Host: GitHub
- URL: https://github.com/0xsecaas/quickfind
- Owner: 0xsecaas
- License: mit
- Created: 2025-09-30T09:14:25.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-09-30T19:50:36.000Z (7 months ago)
- Last Synced: 2026-03-11T22:37:48.144Z (about 2 months ago)
- Topics: commandline-tool, file-search, quick-search, tui
- Language: Rust
- Homepage: https://crates.io/crates/quickfind
- Size: 58.6 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# quickfind
**Search files instantly: configurable, interactive, Rust-powered.**
[](https://asciinema.org/a/dLkoml2XselK9G31oqEtv3O0J)
Remember part of a filename? Find it instantly in milliseconds, open it in your default app or jump straight into `vim`.
## Install Quickly
```bash
$ cargo install quickfind
```
Usage
## 1. Index once
```bash
$ quickfind index
```
## 2. Search any moment
```bash
$ quickfind
# OR
$ quickfind
```
---
Why quickfind?
Since I started using Linux, I always felt one essential tool was missing: a fast, reliable file finder like _Everything Search_ on Windows.
So I built **quickfind** in Rust. Its configurable indexing and interactive TUI make finding files fast, reliable, and effortless.
Features
- **Configurable:** Customize search locations, ignored paths, and search depth via a simple config file.
- **Efficient Indexing:** Traverses directories once and stores paths in a local database for lightning-fast searching.
- **Interactive Interface:** Browse results with a minimal TUI, open files in default apps or `vim`.
Install from Source
1. Clone the repository:
```bash
$ git clone https://github.com/0xsecaas/quickfind
```
2. Build the project:
```bash
$ cd quickfind
$ cargo build --release
```
3. Run the application:
```bash
$ ./target/release/quickfind
# OR
$ cargo run
```
Configuration
Config file: `~/.quickfind/config.toml`
```toml
include = [
"/path/to/your/directory",
"/another/path/to/search"
]
ignore = "**/node_modules/**"
depth = 10
editor = "vim" # "vi" or "code" or "subl" or any editor of your choice
```
- `include`: Absolute paths to directories you want to index.
- `ignore`: Glob patterns for paths to exclude.
- `depth`: Maximum directory depth to traverse.
Interactive Mode
- `Tab`: Switch between search input and results
- `Arrow Keys`: Navigate results
- `Enter`: Open selected file/directory with default app
- `v`: Open selected file with vim
- `d`: Open containing directory
- `Esc`: Exit interactive mode
Architecture
- `main.rs`: CLI parsing and orchestration
- `config.rs`: Loads and manages user configs (~/.quickfind/config.toml)
- `db.rs`: Handles persistent file indexing storage
- `indexing.rs`: Traverses directories and populates the database
- `tui.rs`: Interactive Text User Interface
Future Plans
- **Background Sync**: Automatically update the index as files change
Contributing
Open issues, submit PRs, or suggest features.
License
MIT License