Terminal client

RadiChat

A small Linux terminal client for streamed, multi-turn chat with local and remote OpenAI-compatible endpoints.

Product

What it currently does

RadiChat is a small terminal client for chatting with OpenAI-compatible endpoints on Linux. You point it at an endpoint, type a message, and the reply streams into the terminal.

The current release handles streamed, multi-turn chat. Conversation history stays in memory for the life of the process. Nothing is written to disk: no transcript, no session file, no database.

Context is managed deterministically. RadiChat charges content bytes plus a fixed allowance per message, holds back a generation reserve, and drops the oldest complete user/assistant pairs when a request would exceed the configured budget. The system prompt and the current message are never trimmed. It works with small local windows such as 8k.

Local endpoints need no credentials or environment setup. For a compatible remote endpoint, the JSON config names an environment variable that holds a bearer token. The token is never stored in the config file. If that variable is missing or unusable, RadiChat stops before contacting the network.

RadiChat supports a narrow streaming subset of the OpenAI-compatible Chat Completions API: server-sent events carrying content deltas, LF or CRLF framing, and no tools, functions or multiple choices.

Failure is strict by design. Redirects are refused, requests are never retried, environment proxies are ignored so the destination cannot change silently, and HTTPS uses system roots with TLS 1.2 or newer. There is no insecure mode, no custom CA option, no endpoint discovery and no hidden fallback.

That narrowness is the point. RadiChat is not an agent runtime, an automation harness, a model server, a RAG system, an MCP client, or a full-screen TUI. The client side stays boring: one binary, one JSON file, one in-memory conversation, and clear errors.

Proof

What it looks like

Terminal session showing RadiChat answering a question, keeping multi-turn context so a follow-up about adding three gives seven, then clearing the conversation and reporting no earlier context after /clear, and exiting with /quit.
Local session: streamed chat, multi-turn context, then /clear.
Terminal session showing RadiChat reaching an authenticated endpoint with the credential supplied through an environment variable and not displayed anywhere on screen.
Authenticated endpoint: credential stays in the environment, not the config file.

Facts

Platform and status

  • For Developers and model users who already have an OpenAI-compatible endpoint and want a transparent terminal client.
  • Platform Linux (single Go executable)
  • Public posture Open source
  • License MIT
  • Release RadiChat v0.1.0

Inspect the repository

Built with Radi

Provenance

Radi materially participated in building RadiChat: product direction, implementation and verification of a deliberately boring terminal chat client.