Changelog¶
All notable changes to kube-q are documented here.
[1.4.0] — 2026-04-14¶
Added — Web UI (Docker)¶
- Browser terminal — full kube-q REPL accessible in any browser via xterm.js + WebSocket → node-pty →
kq; no client-side logic duplicated, all commands and streaming stay in the Python process web/server.mjs— production single-port server: Next.js HTTP + PTY WebSocket (/pty-ws) on one port; spawns akqprocess per connectionweb/pty-server.mjs— dev standalone PTY WebSocket server on port 3001; run alongsidenext devvianpm run devDockerfile— multi-stage build: Node builder compiles Next.js, runtime stage installskube-qfrom PyPI + copies built app; env vars injected at runtime (KUBE_Q_URL,KUBE_Q_API_KEY)- iframe / basePath support —
NEXT_PUBLIC_BASE_PATHenv var relocates the Next.js app to a sub-path;Content-Security-Policy: frame-ancestors *andX-Frame-Options: ALLOWALLheaders allow embedding in any parent page - Download conversation button — toolbar "⬇ Download" button exports the xterm scrollback buffer as a
.mdfile directly to the browser - Custom branding —
KUBE_Q_LOGOsets a custom ASCII banner logo;KUBE_Q_TAGLINEsets a custom copyright / tagline line; both configurable via.envor environment variable
Added — Session Search & Branching¶
kq --search <query>//search <query>— FTS5 full-text search across all session history with highlighted match snippets; supports FTS5 boolean syntax (pods AND NOT staging); old databases backfilled during migration/branch— fork the current conversation at the current message count into a new independent session; original is preserved;/brancheslists all forks;/title <text>renames a session- SQLite schema v3 —
messages_ftsFTS5 virtual table with insert/delete triggers,parent_session_idandbranch_pointcolumns; branches are ordinary sessions so search finds them automatically
Added — Token & Cost Tracking¶
- Token footer — every response shows
(1.2s · 460 tokens)when the server emits ausageblock; servers that omitusagebehave exactly as before /tokens//cost— Rich panel with per-session prompt/completion/total counts, request count, and estimated dollar cost; rates overridable viaKUBE_Q_COST_PER_1K_PROMPT/KUBE_Q_COST_PER_1K_COMPLETIONkq --listtokens column — session listing shows total token count per session; SQLite schema auto-migrates from v1
Added¶
- Configurable display names —
--user-name/--agent-nameCLI flags,KUBE_Q_USER_NAME/KUBE_Q_AGENT_NAMEenv vars - Friendly HTTP 401 error handling — clear actionable message instead of raw JSON
.envfile support — all settings configurable viaKUBE_Q_*env vars;~/.kube-q/.envand./.envloaded automatically- Removed YAML config file (
pyyamldependency removed) - Renamed config directory to
~/.kube-q/
[1.0.0] — 2026-04-10¶
Added¶
- Interactive REPL with streaming SSE responses
- Human-in-the-Loop (HITL) approve/deny flow
- Persistent conversation history and user ID
- Namespace context switching (
/ns) - Conversation save to markdown (
/save) - Built-in demo scenarios (deploy, debug, hitl, security, scale)
- Single-query mode (
--query) - Health check with retry on startup
- Multi-line copy-paste support via
prompt_toolkit - Rich syntax highlighting for YAML/JSON code blocks
- File attachment support via
@filenamein messages --api-key/KUBE_Q_API_KEYauthentication--ca-certfor corporate proxies / self-signed certificates--output plainflag for pipe-friendly output- Live token streaming
- Typo suggestions for unknown slash commands