Your sassy, command-line tutor that remembers the commands you keep forgetting.
Like a lot of developers, I found myself constantly switching contexts to ask an LLM for the same simple shell commands over and over. tar flags, find syntax, awk one-liners... I wasn't learning them, I was just outsourcing my memory. It felt like a bad habit.
Instead of just trying to memorize everything, I thought: what if a tool could track my bad habits and help me internalize the patterns?
So, I built SassyShell. It's not just another "GPT in the terminal." It's a CLI sidekick that:
- Uses a local TF-IDF search to find similar commands you've asked for in the past.
- Feeds that history to an LLM to provide context-aware answers.
- Gives you the command you need, along with a bit of sarcastic feedback based on how often you forget it.
It's a project born from turning my own laziness into data. It's designed to mock you into getting better.
- Personalized Memory: Remembers the types of commands you struggle with and uses that history to inform its responses.
- Sassy Feedback: The more you ask for the same thing, the more it will gently (or not so gently) remind you.
- Platform Aware: Automatically detects if you're on Linux, macOS, or Windows and asks the LLM for the correct shell syntax (bash/zshvs. PowerShell).
- Lightweight & Fast: Uses a fast local similarity search before ever calling an LLM.
The recommended way to install SassyShell is with pipx or uvx. This installs it in an isolated environment so it doesn't clutter your global packages.
pipx install sassyshellYou can install pipx using:
pip install --user pipxOr, if you use uvx:
uvx sassyshellBefore you can use the tool, you need to run the setup wizard to configure your LLM provider and API key. Your credentials are saved locally in ~/.config/sassyshell/.env.
sassysh setupYou'll be guided through selecting a provider (OpenAI, Google, etc.) and entering your API key.
Use the ask command to ask for help.
sassysh ask "how to find all files modified in the last 24 hours"Example Interaction:
$ sassysh ask "how to add changes to my last git commit without a new one"
Looks like you're having trouble with your Git commits again! You can add your new changes using:
git commit --amend --no-edit
We welcome contributions! Please read our CONTRIBUTING.md guide to get started. It covers setup, development, and how to submit changes.
This project is licensed under the MIT License.
