| Crates.io | qnote |
| lib.rs | qnote |
| version | 1.1.0 |
| created_at | 2025-10-18 03:34:00.031196+00 |
| updated_at | 2025-10-20 23:41:54.969029+00 |
| description | A fast, lightweight terminal-based note-taking application |
| homepage | |
| repository | https://github.com/adi-sen/qnote |
| max_upload_size | |
| id | 1888762 |
| size | 144,860 |
Quick Note - A fast, lightweight terminal-based note-taking application written in Rust
Fast, lightweight note-taking with CLI and TUI interfaces. Tag-based organization with fuzzy search, external editor integration, and markdown preview.
# Install
cargo install qnote
# Launch interactive TUI
qnote
# CLI usage
qnote add "My Note" "Content here" --tags work,ideas
qnote list
qnote search "keyword"
cargo install qnote
Linux/macOS (one-liner):
curl -sSL https://raw.githubusercontent.com/adi-sen/qnote/master/scripts/install.sh | bash
Manual download:
Windows:
qnote-Windows-x86_64.exe from Releasesqnote.exe and add to PATHgit clone https://github.com/adi-sen/qnote.git
cd qnote
cargo install --path . --features bundled # Portable version
Build variants:
--features bundled - Bundled SQLite (portable, larger binary)# Create
qnote add <title> <content> [--tags tag1,tag2]
# Read
qnote list [--tag work] [--sort title] [--limit 10]
qnote show <id|pattern>
# Update
qnote edit <id|pattern> [--title "..."] [--content "..."]
# Delete
qnote delete <id|pattern> [--yes]
# Search
qnote search "keyword"
# Tag management
qnote tags # List all tags with counts
qnote list --tag work # Filter by tag
# Sorting
qnote list --sort updated # updated (default), created, title
# Export note to markdown
qnote export <id|pattern> [-o output.md]
# Import from markdown files
qnote import notes/*.md
# Statistics
qnote stats
Navigation:
j/k or ↓/↑ - Move selectiong/G - Jump to top/bottomCtrl+j/k - Scroll previewActions:
n or a - New notee or Enter - Edit noted - Delete notex - Export to markdown/ - Search modes - Cycle sort modeEsc - Clear search/cancelq - QuitSearch Mode:
Ctrl+n/p - Next/previous matchEnter - Select noteEsc - Exit search# Generate config file
qnote config
# View current config
qnote config --show
Config locations:
~/.config/qnote/config.toml~/Library/Application Support/qnote/config.toml%APPDATA%\qnote\config.tomlDatabase locations:
~/.local/share/qnote/notes.db~/Library/Application Support/qnote/notes.db%APPDATA%\qnote\notes.db[ui]
split_ratio = 0.4 # List pane width (0.1-0.9)
message_display_keypresses = 5 # Status message duration
preview_scroll_step = 3 # Lines per scroll
preview_max_scroll_buffer = 10 # Preview scroll bounds
header_lines = 3 # Preview header lines
max_markdown_formatting_buffer = 10 # Markdown formatting buffer
[editor]
default_editor = "nvim" # Override $EDITOR (optional)
secure_temp_files = true # 0600 permissions (Unix only)
[keybindings]
quit = "q"
new_note = "n"
delete = "d"
edit = "e"
search = "/"
export = "x"
sort = "s"
goto_top = "g"
goto_bottom = "G"
move_down = "j"
move_up = "k"
[database]
wal_mode = true # Write-Ahead Logging
cache_size_kb = -64000 # 64MB cache (negative = KB)
synchronous = "NORMAL" # OFF, NORMAL, FULL, EXTRA
temp_store = "MEMORY" # DEFAULT, FILE, MEMORY
When editing notes in external editor:
Note Title
#tag1 #tag2 #tag3
Note content goes here.
Multiple lines supported.
# prefix)src/
├── main.rs
├── cli.rs # CLI definitions
├── db.rs # Database layer
├── commands/ # Command handlers
│ ├── note_ops.rs # CRUD operations
│ ├── list.rs # List, tags, stats
│ ├── io.rs # Import/export
│ └── config.rs # Config management
├── config/ # Configuration
│ ├── ui.rs
│ ├── keybindings.rs
│ ├── editor.rs
│ └── database.rs
├── utils/ # Utilities
│ ├── formatting.rs
│ ├── parsing.rs
│ ├── conversion.rs
│ └── interaction.rs
└── tui/ # Terminal UI
├── app.rs
├── render.rs
├── editor.rs
└── markdown.rs
# Development build
cargo build
# Release build (optimized)
cargo build --release
# Portable version (bundled SQLite)
cargo build --release --features bundled
# Run tests
cargo test
# Format & lint
cargo fmt
cargo clippy
MIT License - see LICENSE for details.
Contributions welcome! Please feel free to submit a Pull Request.
Built with: