2.0 KiB
2.0 KiB
doks
A terminal application for quickly accessing personal notes and documents.
Features
- Key-based access - Retrieve documents instantly by registered key
- Full-text search - Search across all documents with ripgrep (or pure-Go fallback)
- Interactive TUI - Navigate multiple search results with keyboard
- Symlink support - Keep files in original location while storing in doks
- Shell completions - Tab completion for bash, zsh, and fish
Installation
# Clone and install
git clone https://github.com/yeho/doks.git
cd doks
./install.sh
Or build manually:
make build
sudo mv doks /usr/local/bin/
Usage
Add a document
# Basic add
doks add ./notes.md -k mynotes
# Add with symlink preservation (keeps file accessible at original path)
doks add ./cheatsheet.md -k git -p
# Add with tags and description
doks add ./docker.md -k docker -t "containers,devops" -d "Docker commands"
Retrieve a document
# By key
doks -k git
# Search
doks -s "commit"
Other commands
# List all documents
doks list
# Filter by tag
doks list -t devops
# Edit a document
doks edit git
# Remove a document (keeps file in storage)
doks remove git
# Remove and delete file
doks remove git --delete
# Show version
doks -v
Configuration
Config file: ~/.config/doks/config.json
{
"doksStorageDir": "/home/user/doks",
"defaultEditor": "vim",
"search": {
"engine": "text",
"vectorEnabled": false
},
"display": {
"contextLines": 3,
"maxResults": 20
}
}
Storage
Documents are stored in ~/doks/ by default:
~/doks/
├── doksRegistry.db # Document registry (NDJSON)
└── doksFiles/ # Stored documents
Shell Completions
# Bash
doks completion bash > /etc/bash_completion.d/doks
# Zsh
doks completion zsh > "${fpath[1]}/_doks"
# Fish
doks completion fish > ~/.config/fish/completions/doks.fish
License
MIT