Skip to main content

A unified CLI for AI providers like OpenAI and Ollama

Project description

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.tw.martin98.com/project/askora/

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

askora-0.0.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

askora-0.0.2-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file askora-0.0.2.tar.gz.

File metadata

  • Download URL: askora-0.0.2.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for askora-0.0.2.tar.gz
Algorithm Hash digest
SHA256 aa34501fd415b5a92a7d2efd99f1103061d7e98bb468bb76cb65eaf59d06d156
MD5 e2bde8fabbfd961bc35da0e7ce2997e2
BLAKE2b-256 13f188e198eb419fa1f7ef9e02b0bd743e2c6412aa6343eccc3119a172eea412

See more details on using hashes here.

File details

Details for the file askora-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: askora-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for askora-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6a56c3fc5f5a6c5afbb6a44eaa63be82188abe747115766a6c97620006c86a59
MD5 cc0f83c13b0e7648cee3e6c983d9a5c3
BLAKE2b-256 27fab06e2bd45e7ffb1fb6164c2409a1140f83aee0b58f7d548e688df23e3442

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