anomalyco / anomalyco/opencode
[FEATURE]: file upload, download and delete in the file manager
@Brendonovich is already working on this.
Since Jul 31, 2026.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
Description
Feature request: file upload, download and delete in the file manager
- I have checked existing issues and feature requests and this is not a duplicate.
Problem
The web app's file browser currently only supports reading, listing and finding files. There is no way to add a file to a project from the browser, download a file to the local machine, or remove a file from the tree. Users have to resort to the terminal or an external editor.
Proposed solution
Add upload, download and delete actions across the file manager surfaces:
- Upload a file to the project directory from the session header, the file browser empty state, and the file manager panel (button picker + drag & drop).
- Download any file from the file tree, the search-results list, and the file manager panel.
- Delete a file or directory with an inline confirmation dialog.
Server/API
New endpoints in the server.fs group:
GET /api/fs/download/*— streams a file as an attachment (raw bytes, so it is excluded from the generated client likefs.read).POST /api/fs/upload?path=...&location[directory]=...— base64 payload, returns 204.POST /api/fs/delete?path=...&location[directory]=...— returns 204.
Path containment is enforced on the server for all three operations (including symlink resolution for write/remove).
Client
The vendored SDK does not expose these operations yet, so the app calls the endpoints directly through a shared helper (packages/app/src/utils/file-transfer.ts), with Basic auth for remote servers and i18n labels for all supported locales.
Notes
- New i18n keys
session.files.*added and translated in all 18 locales. - Generated client files updated via
bun run generate(thefilesgroup now exposesupload/delete).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.