oterm/docs/features.md
Yiorgis Gozadinos f8c6edc2b5
Add the speak capability
Registers a "speak" capability that reads responses aloud through piper as it
streams, backed by pydantic-ai-tts and installed with the oterm[speak] extra.
The entry appears in the tool selector only when the package is importable, so
a base install pulls neither onnxruntime nor a voice model.

The extra carries a python_version >= '3.11' marker because pydantic-ai-tts
requires 3.11 while oterm supports 3.10; without it the extra cannot resolve.
On 3.10 the package is absent and the capability is simply not registered.

The factory is memoised: capabilities are built once per chat and every Speaks
owns worker threads the factory contract gives no place to close. It also sets
ORT_DISABLE_TELEMETRY before the import, which is where onnxruntime reads it,
leaving an explicit setting alone.

pydantic-ai-tts is MIT but pulls piper-tts, which is GPL-3.0-or-later, into
the environment of anyone installing the extra.
2026-09-01 18:35:43 +03:00

2.3 KiB

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.
  • capabilities — web search, URL fetching, persistent memory, sandboxed file access, and responses spoken aloud in the GLaDOS voice.
  • allows for easy customization of the model's system prompt and parameters.

Using oterm

oterm picks up providers automatically from your environment. If Ollama is running on http://127.0.0.1:11434 it shows up out of the box; for any other hosted provider, set the relevant API key (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.) and it appears in the provider dropdown. For other local runners (vLLM, LM Studio, llama.cpp, …) or hosted OpenAI-compatible endpoints (OpenRouter, LiteLLM, …), add an entry to the openaiCompatible section of config.json. See Providers and API keys and the openaiCompatible config block.

To point Ollama at a non-default host or disable SSL verification, see Environment variables.

To start oterm simply run:

oterm

If you installed oterm using uvx, you can also start it using:

uvx oterm

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.

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

License

This project is licensed under the MIT License.