{"full_name":"oobabooga/textgen","owner":"oobabooga","name":"textgen","url":"https://github.com/oobabooga/textgen","description":"Open-source desktop app for local LLMs. Text, vision, tool-calling, OpenAI/Anthropic-compatible API. 100% private.","homepage":"","topics":[],"language":"Python","license":"AGPL-3.0","avatar":"https://avatars.githubusercontent.com/u/112222186?u=ca0cae708ff7765997dfe20177855bfc5c0eb5a7&v=4","created_at":"2022-12-21T04:17:37Z","pushed_at":"2026-08-17T17:38:16Z","metrics":{"stars":47730,"forks":5975,"watchers":348,"issues":4203,"prs":2153,"releases":113,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":1158},"growth":{"day":{"stars":-3,"forks":-1,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[47733,47730],"forks":[5976,5975],"watchers":[348,348],"issues_open":[null,null],"prs_open":[null,null]},"boards":{},"same_owner":[],"issues":[{"number":5778,"title":"AttributeError: 'LlamaLikeModel' object has no attribute 'layers'","comments":43,"created_at":"2024-03-31T17:44:36Z"},{"number":7179,"title":"GPT-OSS support","comments":25,"created_at":"2025-08-05T17:31:14Z"},{"number":1269,"title":"Chat with multiple characters at the same time","comments":25,"created_at":"2023-04-16T10:31:56Z"},{"number":5705,"title":" UserWarning: 1Torch was not compiled with flash attention.","comments":24,"created_at":"2024-03-15T17:54:57Z"},{"number":3760,"title":"Mac/Metal thread","comments":21,"created_at":"2023-08-30T16:52:12Z"},{"number":1686,"title":"UserWarning: MPS: no support for int64 repeats mask, casting it to int32 on MacOS 13.3","comments":21,"created_at":"2023-04-30T14:43:01Z"},{"number":5796,"title":"{{user}} is not escaped in the Chat tab","comments":20,"created_at":"2024-04-02T22:40:02Z"},{"number":443,"title":"Improve memory management","comments":20,"created_at":"2023-03-19T17:16:31Z"}],"discussions":[{"number":7662,"title":"Grunz: hosted abliterated open models, for the ones too big to run locally","comments":0,"category":"Show and tell","created_at":"2026-09-25T19:10:54Z"},{"number":7661,"title":"TEXTGEN 5.0 Custom Build","comments":0,"category":"Show and tell","created_at":"2026-09-24T10:36:42Z"},{"number":7651,"title":"gemma4 12b unified multimodale structure dockerfile pour build rtx5060 ti 16go","comments":1,"category":"Show and tell","created_at":"2026-08-27T14:54:29Z"},{"number":7637,"title":"Feature Request: Persistent Model-Specific System Prompt Mapping","comments":1,"category":"Ideas","created_at":"2026-08-08T00:22:43Z"},{"number":7634,"title":"No updates in more than 2 months.  Is textgen still alive?","comments":14,"category":"General","created_at":"2026-08-02T02:11:37Z"},{"number":7604,"title":"ccline — use your local/cloud LLM directly from the zsh shell prompt","comments":0,"category":"General","created_at":"2026-06-10T14:27:20Z"},{"number":7602,"title":"Install more model loaders/backend/inference engine","comments":1,"category":"Q&A","created_at":"2026-06-07T15:14:11Z"},{"number":7566,"title":"OG OC","comments":0,"category":"General","created_at":"2026-05-16T04:44:01Z"}],"latest_release":{"name":"v4.9","tag":"v4.9","published_at":"2026-05-20T19:02:34Z","body":"## Changes\r\n\r\n- **MTP speculative decoding support**: Add `draft-mtp` as a new `--spec-type` option. Auto-enabled when loading MTP GGUFs (e.g. Qwen 3.6 MoE MTP builds).\r\n- **Web search improvements**:\r\n  - Add snippet support to the `web_search` tool: results now include a short text excerpt that often answers the query directly, eliminating the need for a follow-up `fetch_webpage` call (#7548).\r\n  - Drop link URLs from `fetch_webpage` output (links now appear as plain text instead of `[text](url)` markdown), significantly reducing tokens used per page.\r\n  - Prettier rendering of `web_search` results in the chat, with a spinner during the call.\r\n  - Add an info message to the \"Activate web search\" checkbox.\r\n- Show live generation speed (tokens/s) and context size while generating (#7563).\r\n- DGX Spark support: Add Linux aarch64 portable builds.\r\n- Electron\r\n  - Add \"Check for updates\" button in the Session tab.\r\n  - Add a folder picker for the models directory.\r\n  - Add right-click context menu for copying text.\r\n  - Add a spellcheck toggle in the Session tab (#7550).\r\n  - Store app data in `user_data/cache/electron` instead of the OS default location.\r\n  - Disable DNS-over-HTTPS probes.\r\n- One-click installer: Track the latest release tag instead of bleeding-edge `main`.\r\n- Auto-detect and auto-select sibling mmproj files when loading a model (#7564).\r\n- Detect `mmproj-*.gguf` files in the main models folder: They appear in the mmproj dropdown and are hidden from the regular model dropdown.\r\n- Project icon: Add an icon, courtesy of [LMLocalizer on Reddit](https://www.reddit.com/r/Oobabooga/comments/1tffhcu/comment/omcwa31/).\r\n- Treat negative `--ctx-size` values as auto (0).\r\n- UI\r\n  - Add drag-and-drop file upload support to the chat input (Gradio fork).\r\n  - Reorganize the right sidebar with Mode/Character/Chat style on top.\r\n  - Hide reasoning and tools controls in chat mode (only shown in instruct / chat-instruct).\r\n  - Fade in new messages, fix scroll-up jump on send.\r\n  - Rename \"Send dummy message/reply\" to \"Insert user/assistant message\".\r\n  - Polish character dropdown in chat tab.\r\n  - Tighten spacing between dropdowns and refresh buttons.\r\n  - Improve the looks of the Session tab.\r\n\r\n## Security\r\n\r\n- Restrict CORS to localhost by default to prevent drive-by API access. `--listen` and `--public-api` opt into network exposure.\r\n- Sanitize character name in `load_character` to prevent path traversal.\r\n- fix: prevent path traversal in load_template_by_name (#7562). Thanks, @Allen930311.\r\n- UI: Improve web search security by rejecting non-HTTP links.\r\n\r\n## Bug fixes\r\n\r\n- Fix llama-server not being killed when the parent process exits on Windows, e.g. when closing the console window or killing python.exe (#7574).\r\n- Fix streaming output leaking across chats when switching mid-stream (#7555).\r\n- Fix continue-mode regressions across template families.\r\n- Fix incorrect prompts generated with continue mode. Thanks, @MeemeeLab.\r\n- Fix thinking channel being lost across tool-call turns (#7578).\r\n- Fix API model load silently dropping hyphenated arg keys (#7577).\r\n- Fix chat deletion failing when `user_data/logs` is a symlink (#7579).\r\n- Fix token count not being set in non-streaming mode.\r\n- Keep web search blocks closed when the user closes them mid-stream.\r\n- fix(win): set PYTHONUTF8 for non-ASCII locale Windows compatibility (#7560). Thanks, @jerry78424.\r\n- Set TORCH_VERSION to 2.9.0 to match xformers 0.0.33's torch pin (#7581). Thanks, @AJ-Gazin.\r\n\r\n## Dependency updates\r\n\r\n- Update llama.cpp to https://github.com/ggml-org/llama.cpp/commit/e947228222147356bc7e64154d3439e142481632\r\n- Update ik_llama.cpp to https://github.com/ikawrakow/ik_llama.cpp/commit/40254a51daf485b2b644bcb82a84278d95745ee5\r\n- Update ExLlamaV3 to 0.0.34\r\n\r\n## Portable builds\r\n\r\nTextGen is now a desktop app for local LLMs. Download, unzip, double-click.\r\n\r\n> [!NOTE]\r\n> **NVIDIA GPU:** If `nvidia-smi` reports CUDA Version >= 13.1, use the **cuda13.1** bui"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}