anomalyco / anomalyco/opencode

[FEATURE]: file upload, download and delete in the file manager

Open
#39,878 1 comment 1 reaction 1 assignee View on GitHub

@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 like fs.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 (the files group now exposes upload/delete).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.