Metadata-Version: 2.4
Name: Vertex-CLI
Version: 1.0.0
Summary: A unified CLI tool for interacting with multiple LLMs via LangChain
Author-email: Pratham Hole <prathamhole@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/prathamhole14/Vertex-CLI
Project-URL: Repository, https://github.com/prathamhole14/Vertex-CLI
Project-URL: Documentation, https://prathamhole14.github.io/Vertex-CLI/
Keywords: CLI,AI,LLM,LangChain,chatbot,gemini,openai,anthropic
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich<16.0.0,>=14.0.0
Requires-Dist: langchain-core<2.0.0,>=1.0.0
Requires-Dist: langchain-google-genai<5.0.0,>=3.0.0
Provides-Extra: openai
Requires-Dist: langchain-openai<2.0.0,>=1.0.0; extra == "openai"
Provides-Extra: anthropic
Requires-Dist: langchain-anthropic<2.0.0,>=1.0.0; extra == "anthropic"
Provides-Extra: dev
Requires-Dist: twine; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: mkdocs-material; extra == "dev"
Requires-Dist: mkdocs-material[imaging]; extra == "dev"
Requires-Dist: mkdocstrings; extra == "dev"
Requires-Dist: mkdocstrings-python; extra == "dev"
Dynamic: license-file

# Vertex CLI

A modern CLI tool for interacting with multiple LLMs using LangChain.

## Features

- Unified interface for multiple LLM providers (Google Gemini, OpenAI, Anthropic Claude)
- Clean architecture following SOLID principles
- Conversation history management
- Shell command debugging
- Easy model switching

## Installation

```bash
pip install Vertex-CLI
```

Gemini works out of the box. OpenAI and Anthropic are optional extras, so their
packages are only downloaded if you ask for them:

```bash
pip install "Vertex-CLI[openai]"     # OpenAI models
pip install "Vertex-CLI[anthropic]"  # Anthropic Claude models
```

To work on Vertex-CLI itself, install from a clone instead:

```bash
git clone https://github.com/prathamhole14/Vertex-CLI.git
cd Vertex-CLI
pip install -e ".[openai,anthropic]"
```

## Quick Start

```bash
# Initialize configuration
tex --setup

# Configure a model (provider auto-detected from model name)
tex config gemini-3.6-flash YOUR_API_KEY
tex config gpt-4 YOUR_OPENAI_KEY
tex config claude-opus-5 YOUR_ANTHROPIC_KEY

# Or specify provider explicitly
tex config my-model YOUR_KEY --provider google

# Select active model
tex select gemini-3.6-flash

# Use it
tex "explain quantum computing"
```

## Commands

```bash
tex "your question"                  # Ask a question
tex chat <text>                      # Chat mode
tex debug                            # Debug shell commands
tex config <model> <api_key>         # Configure model (auto-detects provider)
tex config <model> <key> --provider <provider>  # Specify provider explicitly
tex list                             # List models
tex select <model>                   # Select active model
tex remove <model>                   # Remove model
```

## Supported Providers

- **Google Gemini**: `google` or `gemini` — installed by default
- **OpenAI**: `openai` — needs `pip install 'Vertex-CLI[openai]'`
- **Anthropic**: `anthropic` or `claude` — needs `pip install 'Vertex-CLI[anthropic]'`

## Configuration

Models are configured in `~/.config/ai_model_manager/models_config.json`

Example configuration:
```json
{
  "selected_model": "gemini-flash-latest",
  "models": {
    "gemini-flash-latest": {
      "provider": "google",
      "api_key": "your-api-key",
      "temperature": 0.7
    }
  }
}
```

## Documentation

- [Architecture](docs/ARCHITECTURE.md) - Technical architecture

## Requirements

- Python 3.10+
- LangChain and provider packages

---

## Usage

Once installed and configured, you can start chatting or debugging commands:

### Chat with the LLM

You can either use the `chat` subcommand or omit it entirely:

```bash
# Explicit subcommand
tex chat "Tell me about the solar system"

# Shortcut form (no subcommand)
tex "Tell me about the solar system"
```

Replace the quoted string with any query you'd like.

![alt text](docs/images/eg_matplotlib.gif)

🔗 **Complete CLI Documentation:** [CLI Commands](https://prathamhole14.github.io/Vertex-CLI/cli_tool_docs/)

---

## Debugging Mode (Beta Feature)

Debugging is currently in beta but can analyze recent shell commands to identify issues.

### Debug the Last 3 Commands (default)

```bash
tex debug
```

### Specify the Number of Commands to Debug

```bash
tex debug -n 5
```

### Add a Custom Debugging Message

```bash
tex debug -n 5 -p "Explain why \`git commit\` failed"
```

---

## Contributing

Contributions are welcome! Follow these steps to contribute:

1. **Fork the repository**
2. **Create a new branch**:

   ```bash
   git checkout -b feature/your-feature-name
   ```
3. **Commit your changes**:

   ```bash
   git commit -m "Add your feature description"
   ```
4. **Push your branch**:

   ```bash
   git push origin feature/your-feature-name
   ```
5. **Open a pull request**

🔗 **Contributor Guide:** [How to Contribute](https://prathamhole14.github.io/Vertex-CLI/contributors_guide/)

---

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.

---

## Support

If you encounter any issues, open an issue on the **[GitHub repository](https://github.com/prathamhole14/Vertex-CLI/issues)**.
