clai
(pronounced "clay")
Command line interface to chat to LLMs, part of the Pydantic AI project.
Usage
You'll need to set an environment variable depending on the provider you intend to use.
E.g. if you're using OpenAI, set the OPENAI_API_KEY environment variable:
export OPENAI_API_KEY='your-api-key-here'
Then with uvx, run:
uvx clai
Or to install clai globally with uv, run:
uv tool install clai
...
clai
Or with pip, run:
pip install clai
...
clai
Either way, running clai will start an interactive session where you can chat with the AI model. Special commands available in interactive mode:
/exit: Exit the session/markdown: Show the last response in markdown format/multiline: Toggle multiline input mode (use Ctrl+D to submit)/cp: Copy the last response to clipboard
Help
usage: clai [-h] [-l] [--version] [-m MODEL] [-a AGENT] [-t CODE_THEME] [--no-stream] [--mcp-config MCP_CONFIG] [prompt]
Pydantic AI CLI v...
subcommands:
web Start a web-based chat interface for an agent
Run "clai web --help" for more information
positional arguments:
prompt AI prompt for one-shot mode. If omitted, starts interactive mode.
options:
-h, --help show this help message and exit
-l, --list-models List all available models and exit
--version Show version and exit
-m MODEL, --model MODEL
Model to use, in format "<provider>:<model>" e.g. "openai:gpt-5" or "anthropic:claude-sonnet-4-6". Defaults to "openai:gpt-5".
-a AGENT, --agent AGENT
Custom Agent to use: a module path like "module:variable" or a YAML/JSON spec file like "agent.yml"
-t CODE_THEME, --code-theme CODE_THEME
Which colors to use for code, can be "dark", "light" or any theme from pygments.org/styles/. Defaults to "dark" which works well on dark terminals.
--no-stream Disable streaming from the model
--mcp-config MCP_CONFIG
Path to MCP servers configuration file (JSON, using the same mcpServers shape as Claude Desktop, Claude Code, and Cursor).
For more information on how to use it, see the CLI documentation.
Web Chat UI
Launch a web-based chat interface:
clai web -m openai:gpt-5.2
This will start a web server (default: http://127.0.0.1:7932) with a chat interface.
You can also serve an existing agent. For example, if you have an agent defined in my_agent.py:
from pydantic_ai import Agent
my_agent = Agent('openai:gpt-5.2', instructions='You are a helpful assistant.')
Launch the web UI with:
clai web --agent my_agent:my_agent
For full Web UI documentation, see Web Chat UI.
Release files for clai 2.46.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| clai-2.46.0.tar.gz | 4.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| clai-2.46.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.3 kB
Release files / clai-2.46.0.tar.gz
| Download URL | clai-2.46.0.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e514ab9881fc1bdadb90cfa3f9c5424e55748c04449abc80506b4fd462734b27
|
|
BLAKE2b-256 checksum How to use checksums |
e83c2da8c81033aa51e08ad9dadfc2b6184d60b584faa6d2904f7c085d389c60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / clai-2.46.0-py3-none-any.whl
| Download URL | clai-2.46.0-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f1e568a59c2ff5c6b4c9d993edf575012d76fb7a58f80b76c5dd784fb04ff862
|
|
BLAKE2b-256 checksum How to use checksums |
4845709d9fa07ddb809c816313c0dd214cb2f8a5a71cd4735a5465bd6e451571
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log