Local folders
Bind a Space to any folder. The terminal opens there, git treats it as the repo, and agents use it as their working directory.
Melon is a Chromium browser built around Spaces. Each one keeps a project's tabs, terminal, editor, git and AI agents together, opened in the right folder.
Resumable, chunked uploads with one line of code. Retries, checksums and progress included.
Start building› Worked for 14s Searched · Read · Edited
Searched maxBodySize
Read src/limits.ts
Edited src/limits.ts+2 −1
The body limit was 100 MB, so anything larger was rejected before upload. I raised it to 2 GB and send files in 8 MB chunks, so large uploads stream instead of buffering.
! Run npm test -- upload?
atlas main % npm test -- upload
✓ resumes after a dropped chunk (41 ms)
✓ rejects a bad checksum (12 ms)
✓ streams files over 2 GB (380 ms)
Tests 3 passed (3)
atlas main % git commit -am "Stream large uploads in 8 MB chunks"
[main 4f2a9c1] 2 files changed, 14 insertions(+), 3 deletions(-)
atlas main %
Point a Space at a folder or a server and Melon keeps that project together: its tabs, its tools, its logins. Switch projects from the sidebar and everything switches with you.
1export const limits = {
2 maxBodySize: 2_147_483_648,
3 chunkSize: 8 * MB,
4 retries: 5,
5};
6
7export function plan(size: number) {
8 return Math.ceil(size / limits.chunkSize);
9}
10
11export async function send(file: File) {
12 for (let i = 0; i < plan(file.size); i++) {
13 await putChunk(file, i);
14 }
15}
atlas main % npm test -- upload
✓ resumes after a dropped chunk (41 ms)
✓ rejects a bad checksum (12 ms)
✓ streams files over 2 GB (380 ms)
Tests 3 passed (3)
atlas main % git commit -am "Stream large uploads in 8 MB chunks"
[main 4f2a9c1] 2 files changed, 14 insertions(+), 3 deletions(-)
atlas main %
Bind a Space to any folder. The terminal opens there, git treats it as the repo, and agents use it as their working directory.
Pick a host from your SSH config. Terminal, files, git, search and language servers run on the server through the same tools.
Each Space keeps its own cookies, logins and site data, so client work and personal accounts never mix.
Pages and tools side by side, stacked or nested, with drag‑to‑split and resizable panes. Layouts are saved.
Pick a style, Flat or Glass, in dark or light, then a colour. Flat can blend in a second colour and add grain; Glass lets the desktop show through. The window changes as you choose. Try it here.
Every Space comes with tools that open like any other tab, already pointed at the project. Put the terminal next to the docs, or the editor beside your local preview.
atlas main % npm test -- upload
✓ resumes after a dropped chunk (41 ms)
✓ rejects a bad checksum (12 ms)
✓ streams files over 2 GB (380 ms)
Tests 3 passed (3)
atlas main % git commit -am "Stream large uploads in 8 MB chunks"
[main 4f2a9c1] 2 files changed, 14 insertions(+), 3 deletions(-)
atlas main %
GPU‑rendered, with clickable file paths, find and saved scrollback.
Monaco, the editor inside VS Code, with real language servers.
An explorer with git badges, quick search and drag‑and‑drop.
Stage, commit, diff, branch, worktrees and pull requests.
Claude and Codex, in a tab, in the project folder.
Markdown with backlinks, next to the work it is about.
Ripgrep and fuzzy find across the whole project.
Regions, full pages and screen recordings, annotated.
Open an agent from a Space and it starts in that project. No cd, no pasted paths, no guessing which repo it is touching.
› Worked for 14s Searched · Read · Edited
Searched maxBodySize
Read src/limits.ts
Edited src/limits.ts+2 −1
The body limit was 100 MB, so anything larger was rejected before upload. I raised it to 2 GB and send files in 8 MB chunks, so large uploads stream instead of buffering.
! Run npm test -- upload?
› Worked for 9s Read · Edited
Read docs/upload.md
Edited docs/upload.md+6 −2
The guide now says uploads stream in 8 MB chunks and resume from the last good chunk. I also replaced the old 100 MB limit in the FAQ.
Uploads stream in 8 MB chunks. If the connection drops, the next request resumes from the last chunk the server verified, so a 2 GB file never starts over.
chunkSize Bytes per request. Default 8 MB.retries Attempts per chunk before the job fails. Default 5.checksum Verified on the server for every chunk. Default sha256.Resumable, chunked uploads with one line of code. Retries, checksums and progress included.
Start buildingResumable, chunked uploads with one line of code. Retries, checksums and progress included.
Start buildingstreams files over 2 GB380 ms
resumes after a dropped chunk4.1 s
Melon is genuine Chromium, de‑Googled, inside a native window. Sites behave the way they do in Chrome, and so do your extensions.
Install Manifest V3 extensions from the Chrome Web Store, with popups, side panels, shortcuts and auto‑update.
WebGPU, WebRTC, screen sharing, installable web apps and DRM video, straight from Chromium.
Docked or in its own window, with Inspect in every context menu, extension popups included.
Chromium's own password manager and address and card autofill, with native save prompts.
Import bookmarks, history and passwords from Chrome, Arc, Brave, Edge and Safari.
The sidebar, tabs and menus are native, not web pages, so the frame stays fast and light.
Sign in with your email and a one‑time code. Spaces, folders and tabs follow you; close a tab here and it closes there. It keeps working offline and catches up later.
Melon is open source. The browser, its Chromium patches and its tools are on GitHub: audit it, build it yourself, or send a pull request. The repository is written for coding agents too: point Claude or Codex at AGENTS.md and it knows how Melon is built, how the pieces fit, and how to add your own tools and features.