AskOra
AskOra is a unified Python CLI for interacting with multiple AI providers like OpenAI, Ollama, DeepSeek and Anthropic(Claude). Send prompts, get responses, and switch between providers seamlessly, all from the command line.
Features
- Single CLI to interact with multiple AI providers
- Supports OpenAI, Ollama, Anthropic(Claude), DeepSeek and more in the future
- Returns structured responses with tokens used and execution time
- Supports sync and async execution
- Clean error handling for missing models, invalid API keys, etc.
- Available on PyPI as
askora
Installation
Clone the repo and install dependencies:
git clone https://github.com/jetroni/askora.git
cd askora
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
Or install directly from PyPI:
pip install askora
(Optional) Make the CLI globally executable:
pip install --editable .
Usage
Basic usage:
askora --type openai --prompt "Hello AI"
Run with async mode:
askora --type openai --prompt "Hello AI" --async-mode
Ollama example (with base URL):
askora --type ollama --base-url http://localhost:11434 --model codellama --prompt "Hello"
CLI Options
| Option | Description |
|---|---|
--type |
AI provider type (openai, ollama) |
--prompt |
Text prompt to send to the AI |
--key |
API key for providers that require authentication |
--model |
Model name to use (defaults vary per provider) |
--base-url |
Base URL for self-hosted providers like Ollama |
--async-mode |
Run asynchronously (flag, no value needed) |
Response Structure
All responses are returned as a structured JSON object:
{
"provider": "openai",
"model": "gpt-4o-mini",
"output": "Hello! How can I assist you today?",
"raw": {...},
"tokens_used": 17,
"duration_ms": 543
}
Contributing
We welcome contributions!
- Add support for new AI providers
- Improve error handling
- Enhance async execution and CLI experience
Please fork the repo and submit a pull request.
License
MIT License. Free to use and modify.
PyPI
AskOra is published on PyPI. Install via:
pip install askora
Stay up to date with the latest releases and check the package page: https://pypi.org/project/askora/
Metadata
Release files for askora 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| askora-0.0.2.tar.gz | 6.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| askora-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.9 kB
Release files / askora-0.0.2.tar.gz
| Download URL | askora-0.0.2.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa34501fd415b5a92a7d2efd99f1103061d7e98bb468bb76cb65eaf59d06d156
|
|
BLAKE2b-256 checksum How to use checksums |
13f188e198eb419fa1f7ef9e02b0bd743e2c6412aa6343eccc3119a172eea412
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|
Release files / askora-0.0.2-py3-none-any.whl
| Download URL | askora-0.0.2-py3-none-any.whl |
|---|---|
| Size | 7.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a56c3fc5f5a6c5afbb6a44eaa63be82188abe747115766a6c97620006c86a59
|
|
BLAKE2b-256 checksum How to use checksums |
27fab06e2bd45e7ffb1fb6164c2409a1140f83aee0b58f7d548e688df23e3442
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|