LiteLLM Chat is a native Ubuntu Touch chat client for users who run or have access to an OpenAI-compatible LiteLLM proxy.

To be able to use this you need to run your own LiteLLM proxy either in the cloud or on your own hardware. See: https://docs.litellm.ai/docs/


Chat with your LiteLLM models
- Configure the LiteLLM base URL, bearer/API token, and optional Sticky Instruction in Settings.
- Model discovery uses the OpenAI-compatible /v1/models endpoint.
- Starting a new chat always asks which model to use.
- Each chat keeps its selected model for the life of that conversation.
- Messages use the OpenAI-compatible /v1/chat/completions endpoint.
- Sticky Instruction is captured when the first user message of a new conversation is sent and is inserted as a hidden system message before the visible chat context. It is not shown as a chat bubble. Existing conversations keep the instruction they started with.
- A waiting request does not lock navigation: you can return to Chats, start another chat, change settings, or use clipboard controls while it runs.
- Different chats can have requests pending at the same time; the current chat exposes a Cancel button while it is waiting.
- The message composer is raised above the Ubuntu Touch on-screen keyboard so entered text stays visible.
- Dedicated Copy buttons place any user or assistant message on the system clipboard.
- User and assistant message bubbles use small rounded corners.
- A dedicated Paste button inserts system clipboard text into the chat composer.
- The initial fallback list includes the chat-capable models supplied for litellm.powercraft.nl development.
- Embedding-only model IDs such as nomic-embed-text are not offered as chat models.

Local history
- Chat history is stored only in this application's private local data unless you export a backup.
- Existing chats can be reopened from the main screen.
- Every chat has a delete button.
- All local chats can also be deleted from the hamburger menu.

Backup and phone migration
- Backup and restore is available from the hamburger menu.
- Configuration, Sticky Instruction, and local chat history are exported/imported as UTF-8 JSON through Ubuntu Touch Content Hub.
- Credentials/secrets are excluded by default. Sticky Instruction is normal configuration and is included in backups.
- Include credentials/secrets is optional and off by default.
- If enabled, the LiteLLM API token is written to the JSON in plaintext. Protect or delete that file after migration.
- Restoring a backup without secrets clears the current token so it must be entered again on the restored phone.

Persistent settings
- The LiteLLM URL, API token, Sticky Instruction, and theme setting are persisted immediately when changed.
- Saving does not depend on application shutdown, destructors, close events, or Component.onDestruction.
- Native settings writes use QSettings::setValue(...) followed immediately by QSettings::sync().
- Configuration is stored under the writable package-ID-specific application configuration directory for litellmchat.barrydegraaff.
- The API token remains available after the app is killed without a clean shutdown, provided the settings operation returned successfully.
- A restart-persistence regression test is included in the source and uses the production settings store.

Ubuntu Touch integration
- Native Qt/QML application for Ubuntu Touch 24.04 on arm64.
- Square logo without pre-rounded corners so Ubuntu Touch/OpenStore can apply the user's selected corner treatment.
- Purple gradient background with a simple white chat/robot symbol.
- Light mode and dark mode.
- Hamburger menu at the top right.
- About dialog includes version 0.1.5.
- AppArmor requests only networking and Content Hub exchange permissions needed for API access and JSON backup/restore.

Privacy
- no advertising
- no analytics
- no tracking
- no telemetry
- no developer-operated intermediary service in the app
- network communication only with the LiteLLM URL configured by the user
- chat history stored in the application's private local data
- API token stored in the application's confined settings
- API token excluded from JSON backup unless explicitly enabled

Current 0.1.5 scope
- Text chat only.
- Non-streaming chat completions.
- No image upload yet, even if a selected vision-language model supports images.
- No embeddings UI yet.
- No tool/function calling UI yet.
- No agent-control UI beyond selecting an exposed model ID.

LiteLLM Chat is not affiliated with or endorsed by the LiteLLM project or the providers of models exposed by a configured proxy.

This app was vibe coded using an AI. The source code is published for inspection and improvement.

LiteLLM Chat is released under MIT No Attribution, SPDX identifier MIT-0.

MIT No Attribution

Copyright 2026 Barry de Graaff

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
