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:

smartly delete all my branches that are already merged into main
git branch --merged main | grep -vE '^\*| main$' | xargs git branch -d

smartly 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

nonelightfull
Your sentenceSentSentSent
Directory listing (capped)SentSent
Git branch, status, worktreesSentSent
Recent shell historySent

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.