Oterm
A terminal LLM chat client that connects to local runners such as Ollama and hosted providers such as OpenAI, with saved chats and MCP tools.

Oterm is a terminal chat client for people who want to use local LLMs or hosted models without a browser interface. It keeps separate conversations and their settings so you can return to ongoing work.
- Local and hosted models: Chat through Ollama or OpenAI-compatible runners such as vLLM, LM Studio and llama.cpp, or use providers including OpenAI, Anthropic, Google and Mistral.
- Saved conversations: Keep multiple chats with their own system prompts and model parameters, reuse earlier prompts, regenerate replies and export conversations as Markdown.
- Tools and memory: Give models access to shell commands, web search, URL fetching and persistent memory, with extensions through Python plugins and MCP servers; file access is limited to the directory where you start the app.
- Context tracking: See how much of the model's context window a chat uses and summarize long conversations to fit; for local servers, the display reflects the context window the server actually uses.
- Images and speech: Include images in prompts and view images returned by models inline; optional speech support reads responses aloud in a GLaDOS voice.
Oterm runs on Linux, macOS, Windows and FreeBSD and is open source under the MIT license. It stores chat sessions and their customizations locally in SQLite. Local inference uses a separate model runner; hosted providers require API keys and receive the requests sent to them. Optional speech support uses piper-tts, which is licensed under GPL-3.0.