> ## Documentation Index
> Fetch the complete documentation index at: https://docs.extensy.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Download

> Export your generated extension as a ZIP, understand what each file does, and prepare to load it in Chrome.

Once generation is complete, Extensy packages your extension into a ready-to-use ZIP. Here's how to get it and what's inside.

## Download the ZIP

When generation finishes, click **Download ZIP** in the Extensy dashboard. Save the file anywhere on your computer, then extract it into a regular folder.

> [!NOTE]
>
> A typical Extensy-generated ZIP is under 50 KB — it contains only the essential code and assets your extension needs, nothing more.

## Folder structure

After extracting, you'll see a structure like this:

```text theme={null}
your-extension/
├── manifest.json       ← Extension config, permissions, entry points
├── popup.html          ← Popup UI markup
├── popup.css           ← Popup styling
├── popup.js            ← Popup logic and interactions
├── content.js          ← Script injected into web pages
├── background.js       ← Service worker, handles background events
└── icons/
    ├── icon16.png
    ├── icon48.png
    └── icon128.png
```

> [!NOTE]
>
> Not every extension includes all these files. Extensy only generates what your prompt requires. A popup-only tool will have no `content.js`. An extension with no background events will have no `background.js`.

## What each file does

> **manifest.json**
>
> The core configuration file Chrome reads to understand your extension. It defines the extension's name, version, and description; which permissions and host permissions it needs; and which files serve as the popup, content script, background service worker, and icons.
>
> Edit this file if you need to change the extension's name, version number, or add/remove permissions.

> **popup.html, popup.css, popup.js**
>
> These three files together define the small window that appears when you click the extension icon in the toolbar.
>
> * `popup.html` — the markup and layout
> * `popup.css` — fonts, colors, spacing, and animations
> * `popup.js` — event handlers, Chrome API calls, and any logic triggered by UI interactions
>
> Edit these files to change how the popup looks or behaves.

> **content.js**
>
> This script is injected directly into the web pages you visit. If your extension highlights text, hides elements, modifies the DOM, or reads page content, that logic lives here.
>
> Edit this file to change how the extension interacts with a specific website or its elements.

> **background.js**
>
> The Manifest V3 service worker. It runs in the background and listens for events — the extension being installed, a tab being updated, a message from the popup, or an alarm firing.
>
> Edit this file if you need to add persistent background logic or inter-component messaging.

> **icons/**
>
> Contains your extension's branding images in three sizes: 16×16 px (toolbar), 48×48 px (extensions management page), and 128×128 px (Chrome Web Store). Extensy generates placeholder icons automatically. Replace them with your own PNG files at the same dimensions and filenames.

## What to do next

> **[Load in browser](https://docs.extensy.dev/using-extensy/loading-in-browser.md)**
>
> Step-by-step guide to loading your unzipped extension in Chrome using Developer Mode.

> **[Edit & iterate](https://docs.extensy.dev/using-extensy/editing-and-iterating.md)**
>
> How to modify the downloaded files and reload the extension after changes.

> [!WARNING]
>
> If you edit files manually and then regenerate in Extensy, the new download will overwrite your changes. Keep a backup of any manually edited files before generating a new version.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.