|
1 | | -# deepshell |
2 | | -Your Universal LLM Command-Line Interface |
| 1 | +# DeepShell: Your Universal LLM Command-Line Interface |
| 2 | + |
| 3 | +[](https://www.python.org/) |
| 4 | + |
| 5 | +<!-- Add other badges as appropriate, e.g., license, build status --> |
| 6 | + |
| 7 | +**DeepShell**: Your Universal LLM Command-Line Interface |
| 8 | + |
| 9 | +**DeepShell** is a powerful and versatile command-line program that seamlessly blends the familiar environment of your local shell with the immense knowledge and capabilities of Large Language Models (LLMs). Imagine having direct, remote access to the world's most advanced AI models—from local Ollama instances to cloud-based services like Google's Gemini—all unified within your terminal. |
| 10 | + |
| 11 | +Designed for developers, researchers, and power users who demand precision, flexibility, and efficiency, DeepShell cuts through the complexity of API integrations. It offers a streamlined pathway to query both open-source and proprietary LLMs, transforming your command prompt into a conduit for deep AI intelligence. Whether you're generating code snippets, summarizing extensive documents, brainstorming complex ideas, or crafting creative text, DeepShell makes it effortless. |
| 12 | + |
| 13 | +Say goodbye to juggling multiple tools! With DeepShell, your command line isn't just for local commands anymore; it's your portal to a new dimension of intelligent interaction, empowering you with efficient, configurable LLM access. |
| 14 | + |
| 15 | +## ✨ Features |
| 16 | + |
| 17 | +* **Multi-LLM Support:** |
| 18 | + * Seamlessly connect to **Ollama** servers (local or remote). |
| 19 | + * Integrate with **Google Gemini API**. |
| 20 | + * Easily switch between configured LLM services. |
| 21 | +* **Interactive Setup & Configuration:** |
| 22 | + * User-friendly setup wizard (`-s`) to guide you through initial configuration. |
| 23 | + * Manages LLM service details, including server addresses (Ollama) and API keys (Gemini). |
| 24 | + * Stores configuration securely in `~/.deepshell/deepshell.conf`. |
| 25 | +* **Flexible Model Management:** |
| 26 | + * List available models from your connected LLM service. |
| 27 | + * Set and change default models per service (`-model`). |
| 28 | +* **Gemini API Key Management:** |
| 29 | + * Store and manage multiple Gemini API keys with user-defined nicknames. |
| 30 | + * Easily switch between active Gemini API keys (`-set-key`). |
| 31 | + * Display the currently active Gemini API key (`-show-key`). |
| 32 | + * Quick link to check your Gemini API usage (`-gq`). |
| 33 | +* **Intuitive Querying:** |
| 34 | + * Send queries directly from your command line (`-q` or `--query`). |
| 35 | + * Engaging progress animation while waiting for LLM responses. |
| 36 | +* **User-Friendly Interface:** |
| 37 | + * Clear, colored console output for enhanced readability. |
| 38 | + * Well-formatted and alphabetized help messages (`-h`). |
| 39 | + * View active configuration details (`-show-config`). |
| 40 | + * Option to delete your configuration (`-d`). |
| 41 | + |
| 42 | +## 🚀 Why DeepShell? |
| 43 | + |
| 44 | +* **Unified Experience:** Access different LLMs without context switching. |
| 45 | +* **Efficiency:** Quickly query models and manage configurations from your terminal. |
| 46 | +* **Customizable:** Tailor DeepShell to your preferred models and services. |
| 47 | +* **Developer-Friendly:** Built with Python, making it easy to understand and extend. |
| 48 | +* **Local First, Cloud Ready:** Perfect for local development with Ollama and scalable with cloud LLMs like Gemini. |
| 49 | + |
| 50 | +## 🛠️ Installation |
| 51 | + |
| 52 | +1. **Prerequisites:** |
| 53 | + |
| 54 | + * Python 3.7 or higher. |
| 55 | + * `pip` (Python package installer). |
| 56 | + |
| 57 | +2. **Clone the Repository:** |
| 58 | + |
| 59 | + ```bash |
| 60 | + git clone <your-repository-url> # Replace with your actual repo URL |
| 61 | + cd deepshell |
| 62 | + ``` |
| 63 | + |
| 64 | +3. **Install Dependencies (If running the python file):** |
| 65 | + DeepShell uses the `requests` library for API communication, but all required modules will be listed in `modules.txt`. |
| 66 | + |
| 67 | + ```bash |
| 68 | + pip install requests chardet |
| 69 | + ``` |
| 70 | + |
| 71 | +4. **Run Python version:** |
| 72 | + |
| 73 | + ```bash |
| 74 | + python3 main.py |
| 75 | + ``` |
| 76 | + |
| 77 | +5. **Run Executable Binary Release :** |
| 78 | + |
| 79 | + ```bash |
| 80 | + ./deepshell |
| 81 | + ``` |
| 82 | + |
| 83 | +## 🏁 Getting Started: Initial Setup |
| 84 | + |
| 85 | +The first time you run DeepShell, or if you want to reconfigure, use the `-s` flag: |
| 86 | + |
| 87 | +```bash |
| 88 | +./deepshell -s (or --setup) |
| 89 | +``` |
| 90 | + |
| 91 | +This will launch an interactive wizard that helps you: |
| 92 | + |
| 93 | +1. Choose an LLM service to configure (Ollama or Gemini). |
| 94 | +2. **For Ollama:** Enter your Ollama server address and select a default model. |
| 95 | +3. **For Gemini:** Manage your API keys (add, set active) and select a default model. |
| 96 | + |
| 97 | +Your settings will be saved to `~/.deepshell/deepshell.conf`. |
| 98 | + |
| 99 | +## 💻 Usage & Command-Line Options |
| 100 | + |
| 101 | +Here are some common ways to use DeepShell: |
| 102 | + |
| 103 | +* **Querying the Active LLM:** |
| 104 | + |
| 105 | + ```bash |
| 106 | + ./deepshell -q (or --query) "What are the benefits of using a CLI for LLM interaction?" |
| 107 | + ``` |
| 108 | + |
| 109 | +* **Changing the Default Model for the Active Service:** |
| 110 | + |
| 111 | + ```bash |
| 112 | + ./deepshell -model (or --model-change) |
| 113 | + ``` |
| 114 | + |
| 115 | + (This will list available models and prompt you to choose a new default.) |
| 116 | + |
| 117 | +* **Switching or Configuring LLM Services:** |
| 118 | + |
| 119 | + ```bash |
| 120 | + ./deepshell -l (or --llm) |
| 121 | + ``` |
| 122 | + |
| 123 | + (This allows you to switch between already configured services like Ollama and Gemini, or add/reconfigure one.) |
| 124 | + |
| 125 | +* **Managing Gemini API Keys:** |
| 126 | + |
| 127 | + * Add a new key or set an existing one as active: |
| 128 | + |
| 129 | + ```bash |
| 130 | + ./deepshell -set-key (or --set-api-key) |
| 131 | + ``` |
| 132 | + |
| 133 | + * Show the currently active Gemini API key nickname and value: |
| 134 | + |
| 135 | + ```bash |
| 136 | + ./deepshell -show-key (or --show-api-key) |
| 137 | + ``` |
| 138 | + |
| 139 | + * Get information on checking your Gemini API quota: |
| 140 | + |
| 141 | + ```bash |
| 142 | + ./deepshell -gq (or --gemini-quota) |
| 143 | + ``` |
| 144 | + |
| 145 | +* **Viewing Active Configuration:** |
| 146 | + |
| 147 | + ```bash |
| 148 | + ./deepshell -show-config (or --show-full-config) |
| 149 | + ``` |
| 150 | + |
| 151 | +* **Getting Help:** |
| 152 | + |
| 153 | + ```bash |
| 154 | + ./deepshell -h (or --help) |
| 155 | + ``` |
| 156 | + |
| 157 | +* **Checking Version:** |
| 158 | + |
| 159 | + ```bash |
| 160 | + ./deepshell -v (or --version) |
| 161 | + ``` |
| 162 | + |
| 163 | +* **Deleting Configuration:** (Use with caution!) |
| 164 | + |
| 165 | + ```bash |
| 166 | + ./deepshell -d (or --delete-config) |
| 167 | + ``` |
| 168 | + |
| 169 | +## ⚙️ Configuration File |
| 170 | + |
| 171 | +DeepShell stores its configuration in a JSON file located at `~/.deepshell/deepshell.conf`. While you can view this file, it's recommended to manage settings through DeepShell's command-line options for safety and ease of use. |
| 172 | + |
| 173 | +The configuration includes: |
| 174 | + |
| 175 | +* `active_llm_service`: The currently selected LLM service (e.g., "ollama" or "gemini"). |
| 176 | +* `llm_services`: A dictionary containing specific configurations for each service: |
| 177 | + * **Ollama:** `server_address` and default `model`. |
| 178 | + * **Gemini:** A list of `api_keys` (each with a `nickname` and `key` value), the `active_api_key_nickname`, and the default `model`. |
| 179 | + |
| 180 | +## 🤖 Supported LLMs |
| 181 | + |
| 182 | +* **Ollama:** Connect to any Ollama instance serving models like Llama, Mistral, etc. |
| 183 | +* **Google Gemini:** Access Gemini models (e.g., `gemini-pro`) via the Google AI Studio API. |
| 184 | + |
| 185 | +*(Support for more LLM providers can be added in the future!)* |
| 186 | + |
| 187 | +--- |
| 188 | + |
| 189 | +We hope DeepShell enhances your productivity and makes interacting with LLMs a breeze! |
| 190 | +If you have suggestions or encounter issues, please feel free to open an issue on the project repository. |
| 191 | + |
| 192 | +Happy Hacking! |
0 commit comments