Skip to main content

A command-line interface for interacting with local and remote LLMs.

Project description

gru-cli -- Version 3.3.0

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

why?

I hate how other CLI tools have big ass 3000 line+ system prompts and don't allow you to run local models or use custom APIs.

So I decided to make my own CLI tool for professional vibe coders🔥🔥🔥.

I'll try to improve on it over time, if I don't give up on this project that is.

Features

  • Interactive Chat: Have a conversation with your chosen LLM right from your terminal.
  • Model Selection: Easily switch between different locally-served models.
  • 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 BOTH Gemini API AND Google OAUTH

  • 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

To install grucli, clone this repository and use pip to install the package.

  1. Clone the repository (or download the source):

    git clone https://github.com/grufr/grucli.git
    cd gru-agentic-cli
    
  2. Install the package:

    • For regular use: This installs the CLI like any other tool.
      pip install .
      
    • For development: This links the command to your source code for instant updates.
      pip install -e .
      

This will install the grucli command and all its dependencies.

WARNING !!

windows sucks anyways...
This project was **NOT** tested on Windows, it was only tested on Linux and macOS

Usage

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

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.
  • /exit: Exit the application.

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 to keep the production installation lightweight for end-users.

pip install pytest
pytest tests/

Current Tests

The test suite covers:

  • API Interactions: Validating stream processing and tool call parsing.
  • UI Formatting: Ensuring tool blocks, diffs, and spinners render correctly.
  • Permissions System: Verifying that tool execution permissions are respected.
  • ANSI Utilities: Testing color and icon formatting.

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

Uninstallation

To remove grucli from your system, simply run:

pip uninstall grucli

License

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

funny

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

My first open source project 💖🎀

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

grucli-3.3.0.tar.gz (52.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grucli-3.3.0-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

File details

Details for the file grucli-3.3.0.tar.gz.

File metadata

  • Download URL: grucli-3.3.0.tar.gz
  • Upload date:
  • Size: 52.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for grucli-3.3.0.tar.gz
Algorithm Hash digest
SHA256 178ed26b83dc4e5348452516e9b65f153ce7955bc3465b822c40d9871f3d3173
MD5 3a45c649838a1b041d58600619b5a92d
BLAKE2b-256 1fbc6a458397f8379f329b174a094e93aa35753a848d6b34ee6358671f78f12f

See more details on using hashes here.

File details

Details for the file grucli-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: grucli-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 46.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for grucli-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4cb073d5894c2ea56087c5d6c967ecd6cf59f97fe8e96937bd8813c87b9cc1c2
MD5 dbba4f59f392212df33a9c7bd7648ed3
BLAKE2b-256 b69820a8fa381ce39f1900150d7d8fc2defdd471e48d5f62f3c37c52b8eea101

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page