Main features
- Chat with instruct, character and notebook modes
- Image input plus text, PDF and Word attachments
- Message editing and conversation branching
- Backends for llama.cpp, ExLlamaV3, Transformers and TensorRT-LLM
- OpenAI- and Anthropic-compatible API with tool calling
- Built-in web search, page fetching and custom Python tools
- MCP server support
- LoRA fine-tuning and diffusers image generation
- Portable builds for CUDA, Vulkan, ROCm and CPU
What TextGen does
TextGen is the project long known as text-generation-webui, by oobabooga. The repository has moved to oobabooga/textgen, and the old address redirects there. It is a local app for working with language models. You can chat in instruct mode, as you would with ChatGPT, talk to custom characters, or write free-form text in a notebook tab. Messages can be edited and regenerated, and you can move between versions or branch a conversation at any point. You can attach images for vision models, as well as text files, PDFs and .docx documents.
It goes further than most chat apps. It can fine-tune LoRA adapters on your own chat or text data, generate images with diffusers models in a separate tab, and add text-to-speech, voice input and translation through extensions.
Models and providers
TextGen runs local models only. The documentation describes no connection to OpenAI, Anthropic or other hosted providers. The portable builds use GGUF models through llama.cpp (or ik_llama.cpp). The full install adds Transformers, ExLlamaV3 and TensorRT-LLM, and you can switch backends and models without restarting. To use a model, you put the file or folder in user_data/models.
With --api, TextGen also serves OpenAI- and Anthropic-compatible endpoints with tool calling, so other apps can use it as a local model server. In the chat, models that support tools can search the web through DuckDuckGo, fetch pages and do math. Each tool is a single Python file you can copy or write. Local MCP servers are supported too, configured in the same JSON format that Claude Desktop and LM Studio use.
Privacy and data
The README states that the app works fully offline, with no telemetry, no external resources and no remote update requests. The Electron desktop window does have a manual “Check for updates” button. Chat histories are stored as JSON files under user_data/logs, next to the app. Two features do send data out, and you have to turn each on yourself: the web search tool sends your queries to DuckDuckGo, and the --share and --public-api flags create public URLs through Gradio and Cloudflare.
Running TextGen
The quickest route is a portable build for Linux, Windows or macOS: download it, unzip it and double-click it, and a desktop window opens. There are portable variants for CUDA, Vulkan, ROCm and CPU-only, each with all dependencies included. These builds run GGUF models.
The full install adds the other backends, training, image generation and extensions. It needs about 10 GB of disk space and installs PyTorch, either through one-click scripts (which set up a Conda environment) or by hand. The documented GPU targets are NVIDIA on Linux, WSL and Windows, AMD with ROCm on Linux, Apple Silicon and Intel Macs, and CPU-only. There are Docker Compose files for NVIDIA, AMD, Intel and CPU.
TextGen is built for a single user. By default it listens only on 127.0.0.1. --listen opens it to your network and --gradio-auth adds username and password login. A --multi-user mode exists, but it does not save chat histories and is described as suitable only for small trusted teams. There are no roles or single sign-on.
Hosted version
TextGen has no hosted version.
Limitations
TextGen cannot use hosted models, so the quality of its answers depends on the models your hardware can run. The interface exposes a large number of settings and modes, which suits enthusiasts more than casual users. Multi-user support is minimal. The full install is a large Python environment, and only the portable builds are simple to set up.
Who it suits
TextGen suits enthusiasts and tinkerers who want everything on their own machine: a choice of inference backends, character chat, web search, LoRA training and image generation in one offline app, with a clear no-telemetry stance. Teams that need shared accounts should look at server-based tools such as LocalAI.
Technical details
Built with
- Python
- Gradio
- Electron
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.