OmniChat CLI 🤖
A powerful CLI tool that combines multiple AI models (OpenAI, Groq) for chat, image generation, and content creation. Features streaming responses, conversation history, and multi-format exports.
✨ Features
AI Providers
- 🧠 OpenAI (
gpt-3.5-turbo) - 🚀 Groq (
llama3-8b-8192) - 🎨 Image Generation
Core Features
- 📡 Real-time streaming responses
- 🌈 Colorful, emoji-enhanced interface
- 💾 Chat history saving with custom filenames
- 📁 Custom save locations
- 📊 Multiple export formats
- JSON (structured data)
- PDF (formatted document)
- Markdown (human-readable)
- ⚙️ Configurable parameters
- Temperature control
- Token limits
- Model selection
- Response streaming
- Export format selection
Interface
- 👤 User messages in yellow
- 🤖 Assistant responses in blue
- 🎨 Image generation with custom prompts
- 🚦 Color-coded status messages
- 📝 Easy-to-read format with emoji indicators
🛠️ Prerequisites
- Python 3.10+
- Required API Keys:
- OpenAI API key
- Groq API key
- Image Generation API URL
📦 Installation
From PyPI
pip install omenicli
From Source
git clone https://github.com/Amul-Thantharate/omenicli.git
cd omenicli
pip install -e .
- Configure API Keys:
Method A: Environment Variables
# Windows (Command Prompt)
set OPENAI_API_KEY=your_openai_api_key
set GROQ_API_KEY=your_groq_api_key
set APP_URL=your_image_generation_api_url
# Windows (PowerShell)
$env:OPENAI_API_KEY="your_openai_api_key"
$env:GROQ_API_KEY="your_groq_api_key"
$env:APP_URL="your_image_generation_api_url"
# Linux/Mac
export OPENAI_API_KEY="your_openai_api_key"
export GROQ_API_KEY="your_groq_api_key"
export APP_URL="your_image_generation_api_url"
Method B: .env File
Create a .env file in the project root:
OPENAI_API_KEY=your_openai_api_key
GROQ_API_KEY=your_groq_api_key
APP_URL=your_image_generation_api_url
🚀 Usage
Quick Start
- Chat with OpenAI (Default):
omenicli
- Chat with Groq:
omenicli --model-type groq
- Generate Images:
omenicli --model-type image
Advanced Usage
- Stream Responses:
omenicli --stream
- Custom Model Settings:
omenicli --temperature 0.7 --max-tokens 2048
- Save Chat History:
omenicli --save
- Custom Image Directory:
omenicli --model-type image --image-dir my_images
- Combined Features:
omenicli --model-type image --save --image-dir my_images --stream
📚 Example
Refer to the Example section.
⚙️ Configuration Options
| Option | Short | Default | Description |
|---|---|---|---|
| --model-type | -mt | openai | Model provider (openai/groq/image) |
| --temperature | -T | 0.5 | Response randomness (0-1) |
| --max-tokens | -M | 1024 | Maximum response length |
| --stream | -S | False | Enable streaming responses |
| --save | -s | False | Save chat history |
| --openai-model | -o | gpt-3.5-turbo | OpenAI model name |
| --groq-model | -g | llama3-8b-8192 | Groq model name |
| --image-dir | -i | generated_images | Directory to save generated images |
| --export-format | -e | json | Export format (json/pdf/markdown) |
💾 Data Management
Chat History
- Default Location:
chat_history/ - Format: JSON files
- Custom Options:
- Directory: Enter custom path when prompted
- Filename: Enter custom name when prompted
- Default naming:
chat_[model-type]_[timestamp].json
Generated Images
- Default Location:
generated_images/ - Format: PNG files with timestamps
- Custom Locations:
- Via CLI:
--image-dir path/to/directory - Via Prompt: Enter path when asked
- Via CLI:
- Naming:
image_[timestamp].png
🔧 Error Handling
The application handles various scenarios:
- Missing/Invalid API keys
- Network connectivity issues
- Rate limiting
- Invalid configurations
- File system errors
🤝 Contributing
Feel free to:
- Open issues
- Submit pull requests
- Suggest improvements
- Report bugs
📝 License
🔍 Tips & Tricks
-
Chat Mode:
- Use "exit" to end the session
- Try different temperatures for varied responses
- Enable streaming for real-time responses
- Use custom filenames for better organization
-
Image Generation:
- Be specific in your prompts
- Use custom directories for organization
- Combine with chat history saving
-
Chat History:
- Use descriptive filenames
- Organize by project/topic
- Use custom paths for better file management
Metadata
Release files for omenicli 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| omenicli-0.2.3.tar.gz | 9.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| omenicli-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 kB
Release files / omenicli-0.2.3.tar.gz
| Download URL | omenicli-0.2.3.tar.gz |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f6603346a022ffb4b3a7b29f54786a6006068c4749ef6a732277b24bddcde3d
|
|
BLAKE2b-256 checksum How to use checksums |
6aae4b887985298a8ed25524b5a21e9e093ac0b6a1048446ab86e87b9f6a5407
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Release files / omenicli-0.2.3-py3-none-any.whl
| Download URL | omenicli-0.2.3-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cf15d1a7e6e7dff8d282e92b023b64b51ad00f82f85fdf98d024e79b30802102
|
|
BLAKE2b-256 checksum How to use checksums |
1744eba4bf8488a1f4d0442fbaef3c78570e14a2ef638585807d13bfb2cc21e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|