Metadata-Version: 2.4
Name: grucli
Version: 3.3.4
Summary: A command-line interface for interacting with local and remote LLMs.
Home-page: https://github.com/grufr/grucli
Author: grufr
Project-URL: Homepage, https://github.com/grufr/grucli
Project-URL: Bug Tracker, https://github.com/grufr/grucli/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: prompt_toolkit
Requires-Dist: cryptography
Requires-Dist: google-auth
Requires-Dist: google-auth-oauthlib
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# gru-cli -- Version 3.3.4

`grucli` is a CLI tool for agentic LLMs that works with both local LLMs and API-based models such as Claude, Gemini, GPT-5 and others.

![gru-cli preview image](/public/assets/preview-version-334.png "gru-cli preview")

## why?
I hate how other CLI tools are overcomplicated, heavy, are exclusive to one API, and sometimes don't even let you change models.

So I decided to make my own CLI tool :)

It has support for multiple APIs, both remote and local ones.

I'll keep improving this project as time goes on.

## Features

*   **Interactive Chat:** Have a conversation with your chosen LLM right from your terminal.
*   **Model Selection:** Easily switch between different models within the chat session.
*   **Command System:** Use slash commands (`/help`, `/model`, `/clear`, `/manage-api-keys`) for quick actions.
*   **Context-Aware:** Automatically injects your project's file tree into the system prompt to give the LLM better context.
*   **Encrypted API keys** You don't need to worry about someone snooping your API keys, they're encrypted :)

## Supported APIs

GruCLI supports models from the following providers:

*   **OpenAI:** All available models, including GPT-5.2
*   **Anthropic:** All available models, including Claude Opus and Sonnet 4.5.
*   **Gemini:** Supports <bold>both</bold> Gemini API and Google AUTH
*   **Ollama:** Supports both local and cloud models.
*   **LM Studio:** Supports all local models.
*   **Cerebras:** Supports their API available models.

* If a model doesn't show up on your selected API, you can just type it out.

**Installation:**

- **For regular use:**  
    This installs the CLI like any other tool.
    ```bash
    pip install grucli
    ```

- **For development:**  
    First, clone the repository and then install in editable mode:
    ```bash
    git clone https://github.com/grufr/grucli.git
    cd grucli
    pip install -e .
    ```

This will install the `grucli` command and all its dependencies.

## WARNING !!
This project was **NOT** tested on Windows, it was only tested on Linux and macOS!!

Though it should mostly work, if you have issues, blame them on windows.


## Usage

Once installed, you can start the CLI by simply running:

```bash
grucli
```

This will ask you to select an available model and then take you to the chatting interface.

### Commands

*   `/help`: Show available commands.
*   `/model`: Re-open the model selection menu.
*   `/clear`: Clear the current chat history.
*   `/manage-api-keys`: Manage your saved API keys.
*   `/gemini-login`: Login with your Google account.
*   `/gemini-auth-mode`: Switch Gemini authentication between API Key and Google Auth.
*   `/telemetry [true|false]`: Enable or disable anonymous usage statistics.
*   `/exit`: Exit the application.

## Telemetry

GruCLI collects minimal, anonymous usage data (a "ping" when the app starts) to help me understand how many people are using the tool. This includes only:
*   Your operating system (e.g., `darwin`, `linux`)
*   GruCLI version

**Privacy is important:** No personally identifiable information, IP addresses, or local file paths are ever collected.

You can permanently disable telemetry at any time by running:
```bash
/telemetry false
```
within the CLI.

## Development

If you want to contribute to or modify `grucli`, you should install it in "editable" mode as described above (`pip install -e .`).

This allows you to edit the Python files in the `src/grucli/` directory and have your changes be live the next time you run the `grucli` command. There is no need to run `pip install .` again after every code change.

If you change dependencies in `requirements.txt` or settings in `setup.py`, you should run `pip install -e .` again to apply those changes.
## Testing

`grucli` uses `pytest` for testing. To run the tests, you must install `pytest` manually as it is not included in `requirements.txt`.

```bash
pip install pytest
pytest tests/
```

If you want to contribute your code must pass all tests.

## Uninstallation

To remove `grucli` from your system, simply run:

```bash
pip uninstall grucli
```

## License

This project is licensed under the MIT License. See the `LICENSE` file for details.

## silly 

Some of the code here was generated by grucli itself :)

My first public open source project 💖🎀
