Skip to main content

The terminal client for Ollama, OpenAI, Anthropic, and any pydantic-ai-supported provider.

Project description

oterm

Tests codecov

the terminal client for Ollama, OpenAI, Anthropic, and any pydantic-ai-supported provider.

🚀 oterm is now multi-provider! Alongside Ollama, oterm drives OpenAI, Anthropic, Google (AI / Vertex), Groq, Mistral, Cohere, AWS Bedrock, DeepSeek, Cerebras, Grok, Hugging Face, and any OpenAI-compatible endpoint (vLLM, LM Studio, llama.cpp, OpenRouter, LiteLLM, …). See What's new below for the full set of changes.

Features

  • intuitive and simple terminal UI, no need to run servers, frontends, just type oterm in your terminal.
  • supports Linux, MacOS, and Windows and most terminal emulators.
  • multiple persistent chat sessions, stored together with system prompt & parameter customizations in sqlite.
  • talks to Ollama, OpenAI, Anthropic, Google (AI / Vertex), Groq, Mistral, Cohere, AWS Bedrock, DeepSeek, Cerebras, Grok, Hugging Face, and any OpenAI-compatible endpoint — local (vLLM, LM Studio, llama.cpp, …) or hosted (OpenRouter, LiteLLM, …).
  • tools — built-in (shell, date_time, think), custom Python plugins via entry points, and any Model Context Protocol (MCP) server.
  • allows for easy customization of the model's system prompt and parameters.

Quick install

uvx oterm

See Installation for more details.

Documentation

oterm Documentation

What's new

  • Multi-provider, via pydantic-ai (breaking). oterm is no longer Ollama-only — it drives any pydantic-ai-supported provider: OpenAI, Anthropic, Google (AI / Vertex), Groq, Mistral, Cohere, AWS Bedrock, DeepSeek, Cerebras, Grok, Hugging Face, OpenAI-compatible endpoints (vLLM, LM Studio, llama.cpp, OpenRouter, LiteLLM, …), and Ollama. Set the matching API key and the provider appears in the new-chat dropdown.
  • Refreshed chat UI. Borderless accent-driven layout, auto-growing prompt, inline [Image #N] attachment tokens, a collapsing thinking section, and a live token-usage footer in place of the spinner.
  • Faster streaming. Markdown is now updated as deltas arrive instead of being re-rendered on every token, so long responses don't slow the terminal as they grow.
  • MCP rewrite (breaking). The mcpServers config block adopts pydantic-ai's standard schema (compatible with Claude Desktop / Cursor). See docs/mcp for the full migration notes.

Screenshots

Splash The splash screen animation that greets users when they start oterm.

Chat A view of the chat interface, showcasing the conversation between the user and the model.

Provider and model selection The new-chat screen, where you pick the provider and model and customize the system prompt, tools, parameters, and thinking.

Image selection The image selection interface, demonstrating how users can include images in their conversations.

Theme oterm supports multiple themes, allowing users to customize the appearance of the interface.

License

This project is licensed under the MIT License.

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

oterm-0.17.1.tar.gz (5.5 MB view details)

Uploaded Source

Built Distribution

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

oterm-0.17.1-py3-none-any.whl (53.3 kB view details)

Uploaded Python 3

File details

Details for the file oterm-0.17.1.tar.gz.

File metadata

  • Download URL: oterm-0.17.1.tar.gz
  • Upload date:
  • Size: 5.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for oterm-0.17.1.tar.gz
Algorithm Hash digest
SHA256 2e8464410eb59bbb32f19ef4f626031140ad73e200b0c7602634a23d50f78d41
MD5 9a6bec0a1a3b0603fdf66b6a56cf9cfc
BLAKE2b-256 296beeb34587aa5e0ed18a9d3c05a014eca99c0885ef4c5409bf695c29bb69e9

See more details on using hashes here.

File details

Details for the file oterm-0.17.1-py3-none-any.whl.

File metadata

  • Download URL: oterm-0.17.1-py3-none-any.whl
  • Upload date:
  • Size: 53.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for oterm-0.17.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4b2d8cbeeafb825df4f8ce9db7c0287162937886484695b1a3cb88017a80659b
MD5 88e8c35a2ee0f259bc7df0f7f5b14ed4
BLAKE2b-256 ecf06a45572ea74e997e579caf1c180efc7b26cb9261fe21b5b5ad3493a8e067

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