no subscription · no browser · no therapy bill

We need to talk
about your workflow.

You're alt-tabbing to a browser to ask an AI how to use grep. In 2026. sparkle-cli brings local LLMs directly into your Zsh workflow — because you deserve better, and also because your student loans aren't going to pay themselves.

Install now
sparkle-cli · zsh · ~/projects/api

It does a lot.
Unlike your 401k.

🧠

Local LLM. Yours. Private.

Talks directly to Ollama over native HTTP. Your prompts stay on your machine. Big Tech doesn't get to train on your rm -rf / accidents.

Ctrl+G. Done. Go home.

One keybind summons the TUI. Accept a response and it teleports into your shell buffer. Fewer keystrokes than texting your PM that you're "almost done."

🔍

Web search that actually works

/search hits SearXNG, reads the pages, and gives you a summary with sources. Like Stack Overflow, but the answers aren't from 2009.

🎭

Three modes of existential depth

Normal, Reasoning, and Chat. Press Ctrl+T to cycle. Pick the one that matches how much you're willing to wait before screaming into the void.

✏️

Editor escape hatch

Ctrl+E opens your prompt in Neovim, Vim, VS Code or Emacs. For when your prompt needs more crafting than your last Tinder bio.

⚙️

Config file. Like an adult.

XDG-compliant YAML at ~/.config/sparkle-cli. Custom commands, custom models, custom timeouts. It respects your choices, unlike your family at Thanksgiving.

Because typing the whole thing is giving very 2012 energy

Slash commands expand before hitting Ollama. You can define your own in the config. Yes, with your own templates. Yes, it's basically personalized. No, it doesn't cost $20/month.

/explain What does this command do? (Asking for a friend)
/fix It's broken. You know it's broken. Just fix it.
/cheat Usage examples, because man pages are a cry for help
/generate-code Describe it in plain English. Get a command back. Magic. 🪄
/search Google, but it reads the articles so you don't have to
/translate Duolingo has been asking you to open it for 47 days. Don't.

The mouse is a crutch and you know it

Every action mapped to a keystroke. Your hands never leave the keyboard. Carpal tunnel is between you and your physiotherapist.

keybindings · sparkle-cli TUI
Send promptEnter
Accept & print to stdoutCtrl+O
Copy response to clipboardCtrl+Y
Open in editorCtrl+E
Autocomplete commandTab
Cycle thinking modesCtrl+T
Clear conversationCtrl+L
Cancel in-flight requestCtrl+C
Exit without emittingEsc

Invoke from Zsh via Ctrl+G after sourcing scripts/init.zsh. Yes, you have to edit your .zshrc. You'll live.

Pick your fighter.
(There's no wrong answer. Probably.)

Normal

Fast. Direct. No memory of previous messages. Like texting someone who immediately forgets your entire conversation. Ideal for quick commands.

🧩

Reasoning

The model thinks before it answers. Step-by-step. Out loud. Like that one coworker in standups who processes everything verbally. But useful.

💬

Chat

Full context on every request. It remembers what you said. It's basically a therapist — except it actually listens and doesn't cost $200/hour.

Three commands.
Less time than your Spotify ad.

Requires Go 1.22+, Ollama running locally, and Zsh with ZLE. If you don't have these, no worries — the README will love you through it.

# 1. Install the binary
go install github.com/janoamaral/sparkle-cli/cmd/sparkle-cli@latest

# 2. Add the Zsh widget (Ctrl+G binding)
echo 'source /path/to/sparkle-cli/scripts/init.zsh' >> ~/.zshrc

# 3. Reload and launch
source ~/.zshrc && sparkle-cli
# Optional: run directly with context
go run ./cmd/sparkle-cli --context "git log --oneline"
View on GitHub Read the docs

Config at ~/.config/sparkle-cli/config.yaml · XDG compliant · MIT licensed · 0 VCs harmed in its making

Copied to clipboard ✓