Loading...
The file tree is not read-only — right-click it. Upload real files, duplicate, rename, move and delete.
Most people only ever click file names in the tree on the left, and never find out that the tree is fully editable by hand. Right-click any file or folder and a menu opens with everything below. You do not have to ask the AI to create a file for you.
Right-clicking plugin.yml. Import File Here is highlighted — it is the entry worth knowing about, and it takes pictures, audio and fonts, not just text. Duplicate and Download appear on files only.
| Entry | What it does |
|---|---|
| **New File** · **New Folder** | On a folder, creates it inside that folder. On a file it does not land next to that file today, so right-click the folder you want it in |
| **Import File Here** | A real upload from your computer, into that folder |
| **Duplicate** | A copy of the file beside it (files only) |
| **Download** | Saves that one file to your computer (files only) |
| **Move to…** | Pick another folder and the file moves there |
| **Rename** | Rename the file or folder |
| **Delete** | Removes it — a folder takes everything inside it |
This is the one worth knowing about. Import File Here is not limited to text: pictures, audio and fonts come in as they are, so you can drop a logo into resources/ without leaving the browser.
The file lands in the folder you right-clicked, keeping its own name.
A .jar is not on the list of files that come in as-is — Import File Here reads it as text, which silently corrupts it. It will sit in your tree looking fine and be useless in a build.
A library belongs under Custom Dependencies in Project Settings → Build instead, which stores the jar properly — see Custom Dependencies. That also keeps a paid plugin out of your source tree.
Above the tree is an Apply ZIP Update button — a small archive icon with no words on it; the name shows when you hover it. Give it a .zip and its contents are unpacked over your project: files that already exist are replaced, new ones are added.
It is the fast way to bring back a copy you edited on your own machine. It is also the easy way to overwrite work, so take a Version History save point first — see that article.
Apply ZIP Update unpacks the zip the same way Import from ZIP does, so a text file bigger than 500 KB is left out whole — never cut short. A message says which: Some files were not applied, with each file and its size, and "Any copy of them already in your project was not changed."
So the full copy in your project stays as it was, and the zip's version of that file is not brought in. A zip it cannot read at all shows Could not apply the ZIP, with the reason.
Deleting a folder deletes everything in it, and the dialog says so before you confirm. If you delete something you needed, do not retype it: Version History has a save point from before the change.
When the AI removes a file for you (or you remove the files an Apply ZIP Update did not contain), the file is taken out of the tree on screen and out of the saved project. If the second step fails, you see "<name> could not be removed from the project — it will come back on reload". It means what it says: the file has left the tree but is still saved, so it reappears the next time the project loads.
Reload the page. If the file is back, delete it yourself: right-click it → Delete.
Everything above puts a file into the project. A file can also ride along with one message — a screenshot of the bug, a config from your old server, a zip of the code you want it to look at. That is the + button at the bottom-left of the chat box.
It opens a sheet called Add to chat with three rows:
The attachments line up above the box with a ✕ each, and the box changes its placeholder to Describe what to do…. A small badge on the + counts what you have attached, plus one while Web search is on, so it can read 1 with nothing attached. Nothing is sent until you press send, and an attachment goes with that one message only.
You can attach at most three things to a message — the two rows in the sheet grey out at three, and a fourth pasted image is ignored.
Pasting counts. An image on your clipboard pastes as an image attachment, and any pasted text of 1.500 characters or more is turned into a .txt attachment instead of landing in the box. That is deliberate — a whole stack trace or a full file goes along as a document — but it means a long paste does not show up as text, so look above the box for it rather than assuming it was lost.
The Web App preview no longer has a Screenshot button (it was removed on 11 August 2026). The one picture hand-off left is Send screenshot to chat on the card that appears when a page comes up blank. It lands here as an ordinary image attachment, and is not sent until you press send.
There is no drag-and-drop in the tree today — Move to… is how a file changes folder.
28 of 37 in Code Studio (IDE) · Last checked 12 September 2026 · Previous: Pushing to GitHub