Skip to content

Spixz/easy_upload

Repository files navigation

🧠 EasyUpload

"Stop struggling with file uploads"

Watch the demo


🚀 What it does

EasyUpload is a conversational Chrome extension that automatically prepares your files before uploading them.
It can convert, compress, and edit your media directly in the browser — no external tools or websites required.
Everything runs locally, powered by Chrome’s built-in AI model.
No files are ever sent to external servers.

✨ Features

⚙️ How it works

The assistant receives the user’s request in natural language (for example: “convert my image to PDF and reduce its size”).
It first determines whether the request is an editing request.
If that’s the case, the model decomposes the goal into multiple subtasks and assigns each one to a specific tool.

Example:

user request: "My image isn’t the right size and it’s too large",
model output: [
  { "tool_name": "ui_image_editor", "i_want": "open an interface to crop or resize the image" },
  { "tool_name": "imagemagick", "i_want": "compress the image to reduce its file size" }
]

For each subtask, the system searches for the most relevant command in a local database dedicated to that tool.
The search is performed by MiniSearch and is based on the similarity between the i_want intent and the predefined intent description of each command.

Example extract from the ImageMagick command database:

[
  {
    "command": "-adaptive-sharpen geometry",
    "intent": "I want to make the image sharper by emphasizing edges without boosting smooth regions."
  },
  {
    "command": "input -quality 80 -strip -background white -flatten output",
    "intent": "I want to compress the image to make its file size smaller without changing its format."
  }
]

The four most probable commands are selected, and the model is asked to choose the one that best matches the user’s goal (i_want).

The offscreen document receives the i_want instruction along with information about the selected command and a real-world usage example. It uses that example to generate the final command, which is then executed in the offscreen context.

The resulting file is stored locally so that it can be reused by another tool, or reinjected directly into the page’s upload form.

🧩 Installation

🟢 Install the release version

  1. Unzip the ZIP file inside the release folder of the repository.
  2. Open chrome://extensions/ in your browser.
  3. Enable Developer mode (top right corner).
  4. Click Load Unpacked, and select the extracted folder inside the release directory.
  5. Make sure you have Chrome’s local AI model installed — you can find instructions here:
    👉 Install Chrome's built-in AI model

🧑‍💻 Install the development version

  1. Install dependencies:
   pnpm install
   pnpm run dev
  1. Same as step 2, 3 and 4 but select the dist folder.

Tests for the requirements extraction

pnpm vitest run youtube
pnpm vitest run -t "test big_prompt_shorter youtube thumbnail"

About

Chrome extension that edits your files before upload

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published