[GH-ISSUE #22528] feat: Sync chat file uploads to Open Terminal filesystem when terminal is connected #35266

Open
opened 2026-04-25 09:29:44 -05:00 by GiteaMirror · 4 comments
Owner

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

  • I have searched for all existing open AND closed issues and discussions for similar requests. I have found none that is comparable to my request.

Verify Feature Scope

  • I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions.

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_command and read_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/upload API) 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

  • Uploading files exclusively through the Files tab in the sidebar — works, but is non-obvious and a separate flow from the standard chat upload.
  • Using the Pyodide code interpreter instead — handles file uploads well, but lacks a real Linux environment, persistent filesystem, networking, and full package support.
  • Disabling the file_context model 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:python socket event, the frontend fetches the file content via getFileContentById(), and loads it into the Pyodide WASM filesystem. There's no equivalent pipeline for Open Terminal.

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 - [x] I have searched for all existing **open AND closed** issues and discussions for similar requests. I have found none that is comparable to my request. ### Verify Feature Scope - [x] I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions. ### 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_command` and `read_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/upload` API) 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 - Uploading files exclusively through the Files tab in the sidebar — works, but is non-obvious and a separate flow from the standard chat upload. - Using the Pyodide code interpreter instead — handles file uploads well, but lacks a real Linux environment, persistent filesystem, networking, and full package support. - Disabling the `file_context` model 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:python` socket event, the frontend fetches the file content via `getFileContentById()`, and loads it into the Pyodide WASM filesystem. There's no equivalent pipeline for Open Terminal.
Author
Owner

@dhaern commented on GitHub (Mar 13, 2026):

Add an option to make open terminal permanent on or off in model settings...

<!-- gh-comment-id:4051561084 --> @dhaern commented on GitHub (Mar 13, 2026): Add an option to make open terminal permanent on or off in model settings...
Author
Owner

@Classic298 commented on GitHub (Mar 13, 2026):

https://github.com/open-webui/open-webui/pull/22156 <- basically implemented here

<!-- gh-comment-id:4053716795 --> @Classic298 commented on GitHub (Mar 13, 2026): https://github.com/open-webui/open-webui/pull/22156 <- basically implemented here
Author
Owner

@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:

  1. Automatically expose chat attachments in a per-chat terminal folder when a terminal is connected
  2. Add a simple “Send to Terminal” button for attached files
  3. Let the model call a built-in function to expose current chat files to the terminal when needed

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.

<!-- gh-comment-id:4166189322 --> @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: 1. Automatically expose chat attachments in a per-chat terminal folder when a terminal is connected 2. Add a simple **“Send to Terminal”** button for attached files 3. Let the model call a built-in function to expose current chat files to the terminal when needed 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.
Author
Owner

@Classic298 commented on GitHub (Apr 2, 2026):

made a new PR that also allows the AI to upload files from the knowledge base

<!-- gh-comment-id:4177529200 --> @Classic298 commented on GitHub (Apr 2, 2026): made a new PR that also allows the AI to upload files from the knowledge base
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#35266