A sassy, AI-powered CLI sidekick that remembers the commands you forget and mocks you into getting better.
Project description
SassyShell (sassysh)
Your sassy, command-line tutor that remembers the commands you keep forgetting.
Why I Built This
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.
Features
- 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.
Installation
The recommended way to install SassyShell is with uvx or pipx. This installs it in an isolated environment so it doesn't clutter your global packages.
uvx install sassyshell
Or, if you use pipx:
pipx install sassyshell
Quickstart
1. One-Time Setup
Before 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 setup
You'll be guided through selecting a provider (OpenAI, Google, etc.) and entering your API key.
2. Ask a Question
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
License
This project is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sassyshell-0.1.0.tar.gz.
File metadata
- Download URL: sassyshell-0.1.0.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f42b43a7d411abffe66278934a1456880381585941c1fe06e042d25b338d4dcc
|
|
| MD5 |
4dcdae988400602da2ee0a2e37e2006c
|
|
| BLAKE2b-256 |
436a5b8f8e232d86510dca72e10a0803d653bc9904d1de67f44a1a1ad7994cd6
|
File details
Details for the file sassyshell-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sassyshell-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f51f2d3d12bc9a56a367ae12590ded214d6fd85cf021fd8d0b9a29ab0da684cb
|
|
| MD5 |
0722e1481e71b16e1c9bb1cc3c9c49ba
|
|
| BLAKE2b-256 |
b11c14b72496c83c1d07082dceec9173163bdc198d28544ba161721e2a14af78
|