Configure
Context
Context is what makes "delete all my branches that are already merged into main" resolvable. It is also what leaves your machine, so it is worth knowing what each level includes.
The three levels
context: light # none | light | full
Or for one call:
smartly --context none show me the largest files here
none
Only your sentence is sent. Nothing about your machine, your directory or your repository.
Use it when the request is self-contained, or when you are in a directory whose file names you would rather not send anywhere.
light — the default
Adds a capped directory listing plus git branch, status and worktree information. This is what lets a vague request resolve against reality:
git branch --merged main | grep -vE '^\*| main$' | xargs git branch -dsmartly could not have produced that pipeline without knowing your branches and what has already merged.
full
Everything in light, plus a tail of your recent shell history — $HISTFILE,
or ~/.zsh_history / ~/.bash_history depending on your shell.
Choosing a level
none | light | full | |
|---|---|---|---|
| Your sentence | Sent | Sent | Sent |
| Directory listing (capped) | — | Sent | Sent |
| Git branch, status, worktrees | — | Sent | Sent |
| Recent shell history | — | — | Sent |
light is the default because it is the level at which requests like “it”, “all
worktrees except main” and “the log file in here” start working. If that is not
worth sending a directory listing for a particular request, use --context none
for that request rather than changing the default.