v0.7.0
Settings inside the launcher, Ask AI with any model, and the list that
learns what you use.
Added
- Used recently, and Stats. The root list starts with the five things
opened most recently, marked. Every open is one line in
~/.local/state/swoop/usage.jsonl; aStatsrow shows what you open
most, how often, when last, and a fortnight by day. A setting turns the
group off; ctrl-k in Stats clears the log. - Start Screensaver, a row beside Sleep and Lock Screen.
- ctrl-k on New conversation changes the model. The same list as
Settings, Enter picks one and returns to the pane; the New row says
which model will answer. - Ask AI with any model. Presets under AI model in Settings:
claude,
codex, eachollamamodel, each model LM Studio has loaded, and
openai:<model>for OpenAI or any server with that API (OpenRouter,
Groq, vLLM) with the address under API URL and the key under API key.
Two transports: a command with the conversation on stdin, or a small
HTTP client in the OpenAI chat shape, streamed, with a model's thinking
shown as "thinking" under the dots rather than in the answer. Web
search, when on, reaches claude, codex and OpenAI; the line under the
dots says when the model you picked cannot search. - Settings, inside the launcher. Type
settings, or cmd+, in the
frame: one row per setting, Enter to change it. The hotkey, the preview
width, the AI model (claude, or ollama with any model you have), web
search on or off, the transcript renderer, and a door to the config
folder. Every value is one line in~/.config/swoop/config. The frame
watches that file, so a new hotkey works within a second. - A Homebrew tap.
Changed
- Web search is off by default. claude may search and fetch only when
the Web search setting is on. Turn it on in Settings, orweb = onin
the config file.brew install beatzball/tap/swoop, and on a Mac
brew services start swoopruns the frame at login. The formula is
written byscripts/tap-formulafrom a release's checksums, and the
release workflow pushes it to the tap when it has a token for it.
Fixed
- ollama answers are clean.
ollama runwrapped words with cursor
moves even through a pipe, and a thinking model's reasoning came out
as the answer. The ollama line now runs with--nowordwrap,
--hidethinkingand--think=false, escape codes are stripped from
what any command prints, and with web search on and an ollama model
the line under the dots says the model cannot search.