Skip to main content

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
  • Command-line completion (for providers and models)
  • Support RTL languages
  • Save output to file
  • Patterns library (a-la fabrik)
  • Upload files
  • Aggregate responses from multiple providers
  • Support more modes (image generation, transcription, etc.)
  • Automated testing

Installation

pip install azc

Running

% azc
azc> how tall is the eifel tower?
openai:gpt-4o-mini: The Eiffel Tower is approximately 1,083 feet (330 meters) tall, including its antennas. The structure itself, without antennas, is about 1,063 feet (324 meters).
azc> q
Bye!
%

You can specify the first prompt as a command-line argument:

% azc "what is the capital of the moon?"
openai:gpt-4o-mini: The capital of the moon is called "New Moon".
azc>

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.
  • --provider - The provider to use (coming soon)
  • --model - The model to use (coming soon)

example:

% azc "knock knock"
providers configured: openai, ollama, anthropic, gemini
using: openai:gpt-4o-mini
type ? or h for help
...
openai:gpt-4o-mini (1st message)
Who's there?

azc>

Commands

  • q or exit - exit the program
  • h or ? - show help
  • l - list models
  • n - start new chat
  • p - Change provider
  • m - Change model
  • ctrl-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):

Contributing

Contributions are welcome! Please feel free to submit a PR.

License

MIT

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

azc-1.0.5.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

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

azc-1.0.5-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file azc-1.0.5.tar.gz.

File metadata

  • Download URL: azc-1.0.5.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for azc-1.0.5.tar.gz
Algorithm Hash digest
SHA256 9283c88143a87c5634b3dc16dbda431ce3b3713ac4d2575fdd18ca44cdbbcceb
MD5 56c387227f37ca9c3c4caef89a37a931
BLAKE2b-256 a2d9e4162b2798558af42ac942cbbcd1315f5fec84dd48b68d21f09848157dde

See more details on using hashes here.

File details

Details for the file azc-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: azc-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for azc-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 47114ee7d11d3e3908706743f98de0d305d75018c9e86095f009faf42eacd21e
MD5 32009bd62f6afeee63dba00a8069527e
BLAKE2b-256 4a8ae0b366eba6a753cd6a841633adfab791ca02dc62f0d2db657e85aa407b8a

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