mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 11:28:35 -05:00
[GH-ISSUE #22528] feat: Sync chat file uploads to Open Terminal filesystem when terminal is connected #58403
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @fplonka-ft on GitHub (Mar 10, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/22528
Check Existing Issues
Verify Feature Scope
Problem Description
When using the Pyodide code interpreter, files uploaded via the normal chat input automatically appear at
/mnt/uploads/and the model can immediately access them with code. This works seamlessly.When using Open Terminal instead, files uploaded via the normal chat input go into Open WebUI's internal storage (with RAG extraction), but they never appear on the terminal's filesystem. The model gets terminal tools like
execute_commandandread_file, but can't find the uploaded files. Users can work around this by uploading through the Files tab in the sidebar, but there's no indication that the normal upload won't work.This creates a confusing experience — a user connects a terminal, uploads a CSV via the chat input, asks the model to analyze it, and the model can't find the file. With Pyodide it just works; with Open Terminal it silently doesn't.
Desired Solution you'd like
When a terminal is connected, uploaded files could be synced to the terminal's filesystem (via its
/files/uploadAPI) so the model can access them through terminal tools — similar to how Pyodide automatically loads them into/mnt/uploads/.A smaller improvement would be to surface a hint or redirect to the Files tab when a user uploads a file with a terminal connected.
As a related UX note: auto-connecting to the terminal when only one is configured (currently requires clicking the cloud icon on every new chat) would also reduce friction.
Alternatives Considered
file_contextmodel capability to skip RAG injection — files still go to Open WebUI storage, not the terminal filesystem.Additional Context
The Pyodide file sync works because the middleware sends uploaded file references back to the browser via the
execute:pythonsocket event, the frontend fetches the file content viagetFileContentById(), and loads it into the Pyodide WASM filesystem. There's no equivalent pipeline for Open Terminal.@dhaern commented on GitHub (Mar 13, 2026):
Add an option to make open terminal permanent on or off in model settings...
@Classic298 commented on GitHub (Mar 13, 2026):
https://github.com/open-webui/open-webui/pull/22156 <- basically implemented here
@sousekd commented on GitHub (Mar 31, 2026):
First of all: Open Terminal is great, thank you for building it!
But I’d like to support this request with a few concrete use cases :).
Right now, chat attachments and Open Terminal feel disconnected. If I attach an image, a vision model can describe it in chat, but Open Terminal cannot edit that same file unless I upload it again through the terminal file browser. The same happens with documents: RAG can answer questions, but terminal tasks like
grep, exact word counts, conversion, scripting, or batch processing require a second upload.A good solution would be one of these:
The key point is to avoid duplicate uploads of the same file and make the model aware of where those files are available in the terminal.
A related future extension could be optional exposure of Knowledge Base files to Open Terminal as well, so users can combine RAG with terminal-native tools for exact search, counting, conversion, and scripting.
@Classic298 commented on GitHub (Apr 2, 2026):
made a new PR that also allows the AI to upload files from the knowledge base
@Joni1717 commented on GitHub (Apr 28, 2026):
+1