the terminal client for LLMs
  • Python 99.7%
  • HTML 0.3%
Find a file
Yiorgis Gozadinos e80ca644d7
vb
2026-04-29 21:14:17 +03:00
.github Restrict publish workflow to release events 2026-04-26 13:07:33 +03:00
docs update docs 2026-04-29 20:13:03 +03:00
src/oterm Render assistant tool calls as expandable entries 2026-04-29 20:07:58 +03:00
tests Fix flaky regenerate tests on Python 3.12 2026-04-29 21:04:29 +03:00
.gitignore Replace multiline toggle with auto-growing TextArea prompt 2026-04-25 15:16:53 +03:00
.pre-commit-config.yaml Use ty/ruff 2026-04-15 12:50:20 +03:00
CHANGES.txt vb 2025-10-15 12:53:40 +03:00
codecov.yml Reach 100% coverage by simplifying history rebuild and pragma-ing the regenerate inflight guard 2026-04-26 23:09:28 +03:00
LICENSE Fix linter errors 2025-04-06 10:49:33 +03:00
mkdocs.yml Bring docs in sync with the pydantic-ai refactor 2026-04-25 10:33:46 +03:00
pyproject.toml vb 2026-04-29 21:14:17 +03:00
README.md update readme 2026-04-27 10:42:38 +03:00
uv.lock vb 2026-04-29 21:14:17 +03:00

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.