Shell completions
ai-memory completions <shell> prints a completion script to stdout for
bash, zsh, fish, powershell, or elvish. The script is generated from
the binary's own command tree, so it covers every subcommand and flag of the
version that produced it — including nested commands like user reset-password,
api-key rotate, and auth login.
The Docker wrapper's upgrade command is wrapper-owned rather than part of the
native clap command tree, so it is the one subcommand not present in generated
completions.
The command reads no config and does not need a data directory, so it can be
run before ai-memory init or inside a packaging step.
The Docker wrapper buffers this bounded command before writing it to stdout, so
short consumers such as head can close the pipe without Docker adding a
broken-pipe diagnostic. A helper-container failure still returns non-zero and
prints no partial completion script.
Install
fish
mkdir -p ~/.config/fish/completions
ai-memory completions fish > ~/.config/fish/completions/ai-memory.fish
Fish loads that path lazily on first use — no shell restart, no config.fish
edit.
zsh
mkdir -p ~/.zfunc
ai-memory completions zsh > ~/.zfunc/_ai-memory
~/.zfunc must be on $fpath before compinit runs. If it is not already,
add this to ~/.zshrc above the compinit call:
fpath=(~/.zfunc $fpath)
autoload -Uz compinit && compinit
Zsh caches completion metadata, so run rm -f ~/.zcompdump and start a new
shell if a freshly regenerated script does not take effect.
bash
Requires bash-completion.
mkdir -p ~/.local/share/bash-completion/completions
ai-memory completions bash > ~/.local/share/bash-completion/completions/ai-memory
Start a new shell to pick it up. To load it for the current shell only:
source <(ai-memory completions bash)
PowerShell
ai-memory completions powershell | Out-String | Invoke-Expression
To persist the generated script, keep it beside your PowerShell profile and
dot-source it from $PROFILE once:
$completionDir = Join-Path (Split-Path -Parent $PROFILE) "completions"
$completionPath = Join-Path $completionDir "ai-memory.ps1"
New-Item -ItemType Directory -Force $completionDir | Out-Null
ai-memory completions powershell | Set-Content -Encoding utf8 $completionPath
Add-Content -Path $PROFILE -Value ". '$completionPath'"
After upgrades, regenerate $completionPath; the profile line does not need to
be added again.
elvish
mkdir -p ~/.config/elvish/lib
ai-memory completions elvish > ~/.config/elvish/lib/ai-memory.elv
Then add use ai-memory to ~/.config/elvish/rc.elv.
Upgrades
The script is a snapshot of the command tree at the moment it was generated.
Re-run the same command after upgrading ai-memory so completions pick up new
subcommands and flags. Nothing is checked into the repository, precisely so a
stale script cannot ship alongside a newer binary.
Docker users can generate a script without a local install:
docker run --rm akitaonrails/ai-memory:latest completions fish \
> ~/.config/fish/completions/ai-memory.fish