# 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 ```bash # Clone and install git clone https://github.com/yeho/doks.git cd doks ./install.sh ``` Or build manually: ```bash make build sudo mv doks /usr/local/bin/ ``` ## Usage ### Add a document ```bash # 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 ```bash # By key doks -k git # Search doks -s "commit" ``` ### Other commands ```bash # 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` ```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 # 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