← Back to Projects

July 2026 - Present

Role: Developer

tensorUI

A lightweight, permissive local frontend for LLM APIs, with agent mode and encrypted-at-rest chats and preferences.

Overview

tensorUI is a local web frontend for talking to LLM APIs and turning models into agents. It runs as a Rust binary and opens a browser UI at http://127.0.0.1:3930 by default. The frontend can connect to local services such as Ollama and llama-server, or to cloud providers such as OpenAI, Gemini, and Anthropic. It does not run inference itself; it gives one consistent interface for the endpoints you already use.

Requirements

  • Rust (for building from source)
  • An OpenAI-compatible or Anthropic Messages-compatible API endpoint
  • Python 3.10+ with ddgs for web search from a source checkout
  • A modern web browser

Official release archives include a standalone tensorui-search helper, so a system Python installation is not required for releases.

Configuration

Use Server to add API providers and configure their base URL, token, and API style. tensorUI probes new providers and supports both OpenAI-compatible and Anthropic Messages endpoints. Chat keeps one streaming interface across providers. The Agent toggle enables agent mode for every message, while @web_search and @fetch_url can invoke individual capabilities. Projects and conversations are stored locally by default, and --config PATH selects an alternate configuration file.

UI

The Chat surface is organized around conversations and projects, with agent mode directly in the composer. The Server page manages providers and checks whether their OpenAI-compatible or Anthropic Messages endpoint is available. The UI is loopback-only by default because it has no authentication; non-loopback binds are refused.

Encryption at rest

Encryption at rest is a first-class feature. When enabled from Chat → Preferences → Local Data, tensorUI derives a 256-bit key with Argon2id and encrypts disk-backed chats.json and preferences.json with AES-256-GCM. It stores only the salt, KDF parameters, and a key verifier—never the passphrase or raw key. The session key remains in memory until you lock the session or quit, and forgotten passphrases cannot be recovered. This protection is scoped to offline confidentiality for chats and preferences. Provider API tokens in config.toml, imported skill files, browser localStorage, malware, and memory while the app is unlocked are outside that scope.

tensorUI on GitHub