From 5e259cafc87c96bbe6ab6c4a498099c1ffef0fac Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 19 Apr 2026 16:31:25 +0300 Subject: feat: replace fish integration files with built-in fish subcommand (task u6) Add `foostore fish` subcommand that prints the complete fish shell integration script (tab completions for foostore + the ge wrapper function) to stdout so users can source it with `foostore fish | source`. Remove install-fish.sh, FISH_INTEGRATION.md, and completions/ directory. Update CLAUDE.md and README.md to document the new workflow. Co-Authored-By: Claude Sonnet 4.6 --- FISH_INTEGRATION.md | 89 ----------------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 FISH_INTEGRATION.md (limited to 'FISH_INTEGRATION.md') diff --git a/FISH_INTEGRATION.md b/FISH_INTEGRATION.md deleted file mode 100644 index c1e7aee..0000000 --- a/FISH_INTEGRATION.md +++ /dev/null @@ -1,89 +0,0 @@ -# Fish Shell Integration for foostore - -## Installation - -### Automatic Installation - -```bash -cd /home/paul/git/foostore -./install-fish.sh -``` - -### Manual Installation - -1. Copy the completion file for `foostore`: -```bash -cp completions/foostore.fish ~/.config/fish/completions/ -``` - -2. Copy the wrapper function for `ge`: -```bash -cp completions/ge.fish ~/.config/fish/functions/ -``` - -3. Reload fish shell: -```bash -exec fish -``` - -## Usage - -### `foostore` command - -The `foostore` command now has full tab completion: -- Tab complete all subcommands (ls, search, cat, paste, etc.) -- Tab complete file paths for `import` -- Tab complete the `force` flag for import - -### `ge` wrapper - -The `ge` wrapper provides shortcuts: - -```bash -# Interactive mode (no arguments) -ge - -# Search shortcut (if not a known command, treats as search) -ge mypassword -# Same as: foostore search mypassword - -# Explicit commands still work -ge cat mypassword -ge import file.txt backup/ -ge import file.txt backup/ force -``` - -In interactive mode, empty `Enter` opens the fuzzy picker with direct action keys: -- `Enter` select -- `Ctrl-T` cat -- `Ctrl-Y` paste -- `Ctrl-O` open -- `Ctrl-E` edit - -The picker preview remains metadata-only for safety (no decrypted secret preview). - -### Dynamic Entry Completion - -For better security, entry completion only works when the `PIN` environment variable is set: - -```bash -# Set PIN for session (entries will autocomplete) -set -x PIN yourpin - -# Use foostore with autocomplete -ge - -# Unset PIN when done -set -e PIN -``` - -Without `PIN` set, commands will still autocomplete, but entry names won't (to avoid prompting for PIN during tab completion). - -## Features - -- ✓ Dynamic command completion (fetched from `foostore commands`) -- ✓ Smart search fallback in `ge` wrapper -- ✓ Entry name completion (when PIN is set) -- ✓ File path completion for import/export -- ✓ Force flag completion -- ✓ No hardcoded command lists (stays in sync with foostore updates) -- cgit v1.2.3