diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-19 16:31:25 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-19 16:31:25 +0300 |
| commit | 5e259cafc87c96bbe6ab6c4a498099c1ffef0fac (patch) | |
| tree | 87eac0697f0f93a4d2f2f9faf62b1f08ae10f62e /FISH_INTEGRATION.md | |
| parent | 7292a5db4e96ffeb30697ce3308d47777bf7c2f5 (diff) | |
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 <noreply@anthropic.com>
Diffstat (limited to 'FISH_INTEGRATION.md')
| -rw-r--r-- | FISH_INTEGRATION.md | 89 |
1 files changed, 0 insertions, 89 deletions
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 <TAB> - -# 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) |
