Skip to content

Repository files navigation

logo

Tessera

All-in-one LLM client. Make a multimodal AI yourself.

Your own multimodal AI assistant — powered by the models you choose, running on every device you own.

Stars Forks Issues Flutter Dart GitHub release (latest by date) License

Features • Documentation • Quick Start • Screenshots • License

English | 中文文档


Tessera (τέσσερα, Greek for "four") is a cross-platform AI chat client built with Flutter. It unifies multiple LLM providers under one interface and seamlessly routes multimodal tasks — vision, audio, image generation, speech — to the right models. An experimental long-term memory system extracts, retrieves, compresses, and forgets like a human mind.


Features

  • 🤖 Multi-Provider LLM Access — OpenAI, Anthropic, Google AI, Ollama. Each provider keeps its own API key, base URL, and model config.
  • 🔄 Streaming Conversations — Token-by-token responses with full Markdown rendering and syntax-highlighted code blocks.
  • 🧠 Capability Adapter System — Automatically routes vision, audio, image generation, and TTS tasks to specialized sub-models via function-calling.
  • 💾 Intelligent Prompt Caching — Three-block system prompt with SHA256 delta caching; only changed blocks are re-sent.
  • 🧠 Long-Term Memory — SimHash-based semantic search, DBSCAN clustering with LLM compression, exponential-decay forgetting, and rolling conversation summaries.
  • 🧩 Extensible Plugin System — Sandboxed Lua 5.3 runtime (NaivG/luax). Write a script, register tools and skills — no rebuild needed.
  • 🔍 Discover System — Tag and capability indexing: the LLM sees a compact skill catalog and calls discover to get lightweight summaries; ToolCallValidator returns the full schema when arguments are wrong.
  • 🛠️ Workspace Tools — Sandboxed local file tools (workspace_read/write/edit/patch/mkdir/delete/...) with line-range reads, stale-read enforcement, and a per-write user-approval dialog.
  • 🤝 Sub-Agents — SubAgentManager launches multiple sub-tasks in parallel streaming fashion, each with its own session card, system-prompt variant, and live delta aggregation.
  • 📏 Context Window Manager — Client-side token budget enforcement with CJK-aware estimation, an 80% usage threshold, and LLM-driven summarization of the oldest messages.
  • 🎤 Voice Interaction — Speech-to-text input and text-to-speech output.
  • 📚 Conversation Management — SQLite persistent storage, create/rename/delete, media library, Agent / Plan / Default conversation modes.
  • 🎨 User Experience — Material 3 design, light/dark theme, desktop window management, streaming Markdown with code highlighting, token-usage indicator in the input area.
  • 🌐 Localization — Fully localized in English and Chinese, extensible via Flutter l10n.

See Documentation for deep-dive architecture, tech stack, project structure, and subsystem references.


Quick Start

Prerequisites

  • Flutter SDK 3.11+
  • Platform-specific build tools (Xcode, Android Studio, Visual Studio, etc.)

Install & Run

git clone https://github.com/NaivG/tessera.git
cd tessera
flutter pub get
flutter run

Desktop builds auto-configure the window: minimum 400×600, default 480×720, centered.

Configure APIs & Models

  1. Launch the app and navigate to Settings
  2. Add an LLM provider (OpenAI / Anthropic / Google / Ollama)
  3. Enter your API key and optional base URL
  4. Configure models for the provider
  5. Select your main chat model and specialized models per capability
  6. Return to the main page and start a conversation

Documentation

Deep-dive architecture, tech stack, project structure, and subsystem references are in docs/en/:

  • Plugin System — Lua sandbox, manifest schema, bridge API, distribution format, authoring guide
  • Memory System — SimHash indexing, extraction pipeline, retrieval scoring, DBSCAN + LLM compression, exponential-decay forgetting
  • LLM Provider Abstraction — Unified LlmProvider interface, streaming protocol, structured output with JsonExtractor
  • Capability Adapter — Multimodal routing architecture, model selection slots, function-call bridging
  • Workspace Tools — Sandboxed local file tools with line-range reads, stale-read enforcement, and write approval
  • Discover System — Compact skill catalog, the discover tool, and ToolCallValidator (fail-with-schema)
  • Sub-Agents — SubAgentManager parallel streaming sub-tasks and the sub_agent tool
  • Context Window Manager — Client-side token budget, 80% threshold, LLM-driven summarization

Screenshots

(Coming soon — screenshots of chat, settings, model selection, memory viewer, and media library)


License

Copyright (C) 2026 NaivG and contributors.

This project is licensed under the GNU Affero General Public License v3.0 — see the LICENSE file for details.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

About

All-in-one LLM client. Make a multimodal AI yourself. / 一站式 LLM 客户端。打造你自己的多模态 AI。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages