sassyshell


Namesassyshell JSON
Version 0.1.5 PyPI version JSON
download
home_pageNone
SummaryA sassy, AI-powered CLI sidekick that remembers the commands you forget and mocks you into getting better.
upload_time2025-10-15 08:55:01
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords cli ai shell productivity developer-tools linux terminal
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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:
1.  Uses a local TF-IDF search to find similar commands you've asked for in the past.
2.  Feeds that history to an LLM to provide context-aware answers.
3.  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`/`zsh` vs. PowerShell).
* **Lightweight & Fast:** Uses a fast local similarity search before ever calling an LLM.

<img src="assets/render1760508770224.gif" alt="Sassyshell Demo" width="800" />

### Installation

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.

```bash
pipx install sassyshell
```

You can install `pipx` using:
```bash
pip install --user pipx
```

Or, if you use `uvx`:

```bash
uvx 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`.

```bash
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.

```bash
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.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sassyshell",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "cli, ai, shell, productivity, developer-tools, linux, terminal",
    "author": null,
    "author_email": "Parth Jain <parthjain1812@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/c2/02/38aa80300e284126653f7ecb0f331b14facabf9d36d4f5681f04f145c7aa/sassyshell-0.1.5.tar.gz",
    "platform": null,
    "description": "# SassyShell (sassysh)\n\nYour sassy, command-line tutor that remembers the commands you keep forgetting.\n\n---\n\n\n\n### Why I Built This\n\nLike 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.\n\nInstead of just trying to memorize everything, I thought: what if a tool could track my bad habits and help me internalize the patterns?\n\nSo, I built **SassyShell**. It's not just another \"GPT in the terminal.\" It's a CLI sidekick that:\n1.  Uses a local TF-IDF search to find similar commands you've asked for in the past.\n2.  Feeds that history to an LLM to provide context-aware answers.\n3.  Gives you the command you need, along with a bit of sarcastic feedback based on how often you forget it.\n\nIt's a project born from turning my own laziness into data. It's designed to mock you into getting better.\n\n### Features\n\n* **Personalized Memory:** Remembers the *types* of commands you struggle with and uses that history to inform its responses.\n* **Sassy Feedback:** The more you ask for the same thing, the more it will gently (or not so gently) remind you.\n* **Platform Aware:** Automatically detects if you're on Linux, macOS, or Windows and asks the LLM for the correct shell syntax (`bash`/`zsh` vs. PowerShell).\n* **Lightweight & Fast:** Uses a fast local similarity search before ever calling an LLM.\n\n<img src=\"assets/render1760508770224.gif\" alt=\"Sassyshell Demo\" width=\"800\" />\n\n### Installation\n\nThe 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.\n\n```bash\npipx install sassyshell\n```\n\nYou can install `pipx` using:\n```bash\npip install --user pipx\n```\n\nOr, if you use `uvx`:\n\n```bash\nuvx sassyshell\n```\n\n### Quickstart\n\n#### 1. One-Time Setup\n\nBefore 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`.\n\n```bash\nsassysh setup\n```\n\nYou'll be guided through selecting a provider (OpenAI, Google, etc.) and entering your API key.\n\n#### 2. Ask a Question\n\nUse the `ask` command to ask for help.\n\n```bash\nsassysh ask \"how to find all files modified in the last 24 hours\"\n```\n\n**Example Interaction:**\n\n```\n$ sassysh ask \"how to add changes to my last git commit without a new one\"\n\nLooks like you're having trouble with your Git commits again! You can add your new changes using:\n\ngit commit --amend --no-edit\n```\n\n### License\n\nThis project is licensed under the MIT License.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A sassy, AI-powered CLI sidekick that remembers the commands you forget and mocks you into getting better.",
    "version": "0.1.5",
    "project_urls": {
        "Homepage": "https://github.com/parthjain18/sassyshell",
        "Issues": "https://github.com/parthjain18/sassyshell/issues"
    },
    "split_keywords": [
        "cli",
        " ai",
        " shell",
        " productivity",
        " developer-tools",
        " linux",
        " terminal"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4c6ecb88e2987605ca173374d02c7979805911a560aa55574873b0076a3ec1da",
                "md5": "c22f4df75e45d6606cecf2efee463be7",
                "sha256": "dee4b1feb5bc480c97c10b4141dbe44445a769898da70c1b03491dfb741bb55f"
            },
            "downloads": -1,
            "filename": "sassyshell-0.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c22f4df75e45d6606cecf2efee463be7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 9495,
            "upload_time": "2025-10-15T08:55:00",
            "upload_time_iso_8601": "2025-10-15T08:55:00.043340Z",
            "url": "https://files.pythonhosted.org/packages/4c/6e/cb88e2987605ca173374d02c7979805911a560aa55574873b0076a3ec1da/sassyshell-0.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c20238aa80300e284126653f7ecb0f331b14facabf9d36d4f5681f04f145c7aa",
                "md5": "b47749add20140fd894c73f2d79e7b60",
                "sha256": "2c54c5cb41ef9a805bab637bf05f9776c1a21ac835a205bf818c084f570dc848"
            },
            "downloads": -1,
            "filename": "sassyshell-0.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "b47749add20140fd894c73f2d79e7b60",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 9488,
            "upload_time": "2025-10-15T08:55:01",
            "upload_time_iso_8601": "2025-10-15T08:55:01.463119Z",
            "url": "https://files.pythonhosted.org/packages/c2/02/38aa80300e284126653f7ecb0f331b14facabf9d36d4f5681f04f145c7aa/sassyshell-0.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-15 08:55:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "parthjain18",
    "github_project": "sassyshell",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "sassyshell"
}
        
Elapsed time: 1.36086s