Command-line tool for interacting with LLMs
Project description
azc - LLM Chat from the command-line
A command-line tool for interacting with LLMs.
Why should you use this?
- If you're a command-line junkie, you don't need to switch to another tool to chat with your LLM
- One tool, multiple LLMs (OpenAI, Anthropic, Ollama, Gemini) - Why settle for one when you can have them all?
- Pay-as-you-go pricing for LLM providers (Cheaper in many cases)
Features
- Multi-provider support
- Ollama
- OpenAI
- Anthropic
- Gemini
- Streaming responses (see response as it is being generated)
- Persistent command-line history (use up and down arrows to navigate)
- Chat history & reset (full discussion, start new chat)
- Switch provider and model (compare models and providers)
- Markdown output (nicely formatted headings, lists, tables, etc.)
- Command-line parameters (first prompt)
Possible future features
- Support for more LLM providers
- Support RTL languages
- Save output to file
- Patterns library (a-la fabric)
- Upload files
- Aggregate responses from multiple providers
- Support more modes (image generation, transcription, etc.)
- Automated testing
- track total cost
Installation
pip install azc
Running
% azc
azc> how tall is the eiffel tower?
ollama:llama3.1:latest (1st message)
The Eiffel Tower stands at an impressive height of:
• 324 meters (1,063 feet) tall, including its antenna.
• 302.9 meters (994.7 feet) tall, excluding its antenna.
It was the world's tallest man-made structure when it was first built for the 1889 World's Fair in
Paris.
azc> q
👋 Bye
%
You can specify the first prompt as a command-line argument:
% azc -b "What is the capital of Panama?"
The capital of Panama is Panama City.
%
Command-line parameters
- default parameter: first prompt
-d/--double-enter- Press enter twice to submit - This is useful for those who want to use use multi-line prompts without pressing ctrl-j to add new line.-b/--batch- Exit after the first response-v/--verbose- Print verbose output--provider- The provider to use (e.g.openaiorollama). Abbreviations allowed, likeopforopenai--model- The model to use. Abbreviations allowed, liketuforgpt-3.5-turbo
Commands
qorexit- exit the programhor?- show helpl- list modelsn- start new chatp- Change providerm- Change modelctrl-n- new line
Setup
You will need to configure at least one LLM API.
You should create a .env file which contains your API Key/s.
See .env.sample for a sample file
Here are the links to the API sign-up pages (or download in case of Ollama):
You can configure the default models you want to use in config.json
Limitations
- Streaming updates are limited to screen height (after that it displays ellipsis and will update the display only when the response is complete)
- No support for RTL languages
Contributing
Contributions are welcome! Please feel free to submit a PR.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file azc-1.0.7.tar.gz.
File metadata
- Download URL: azc-1.0.7.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc17ad91be79cb6616f48eca5ef031493f4e50c602634ee1388e19dab150cce1
|
|
| MD5 |
7c52290e84ca52f899c6a1f33dfcb0fc
|
|
| BLAKE2b-256 |
7d4aeb2a160e1321aed017cb6db8addc078f773ba126cf03defb8ad8e398fde0
|
File details
Details for the file azc-1.0.7-py3-none-any.whl.
File metadata
- Download URL: azc-1.0.7-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c03ff8d9f1ee75401325681bededa795f69c40047b9fd8aaa4c6014c6b80f5cc
|
|
| MD5 |
f57104b8bf88cdbccfab8b4fff53a47b
|
|
| BLAKE2b-256 |
df1ea24c87770cfa3999a2249d65146be43f6aed9e08c42b0b64d943bdeec4fc
|