| Browser | Store | Status |
|---|---|---|
| Edge | Microsoft Edge Add-ons | Live |
| Chrome | Chrome Web Store | In review — load it manually |
| Firefox | Firefox Add-ons | In review — load it manually |
Until the Chrome and Firefox listings are published, load the same build that was submitted — about a minute.
Download the latest release| File | For |
|---|---|
ditto-1.0.0-chrome.zip | Chrome, Edge, Brave, Arc, Opera, Vivaldi |
ditto-1.0.0-firefox.zip | Firefox |
ditto-1.0.0-edge.zip | Identical to the Chrome build |
ditto-1.0.0-sources.zip | Source archive for Firefox review — not installable |
chrome://extensions (or edge://extensions, brave://extensions).manifest.json.Keep the folder where it is. The browser loads the extension from that path every time it starts, so moving or deleting it breaks the install. Chrome will also warn about developer-mode extensions on each start — that's normal for unpacked extensions and stops once the store version is out.
about:debugging#/runtime/this-firefox.Ctrl/Cmd+B, or View → Sidebar → Ditto.Firefox removes temporary add-ons when it restarts, so you'll need to load it again each session until the listing is public. Ditto also lives in the sidebar on Firefox rather than a side panel, asks for site permission the first time you record instead of at install, and has no voice narration — that feature needs a Chromium API Firefox doesn't have.
Needs Node 22 and pnpm 10.
git clone https://github.com/tryskyforge/ditto.git
cd ditto
pnpm install --frozen-lockfile
pnpm zip:all
Zips land in .output/. For an unpacked build you can load without unzipping, use pnpm build or pnpm build:firefox.
chrome:// and about: can't be recorded — browsers don't let extensions run there.| What you see | What it means |
|---|---|
| Manifest file is missing or unreadable | You selected the zip, or a folder one level too high. Pick the folder that directly contains manifest.json. |
| Open a website to start capturing | You're on a browser page, the Web Store, or a local file:// page. Switch to a normal site. |
| The extension vanished after restarting Firefox | Expected for temporary add-ons. Load it again. |
| Empty panel or greyed-out icon | Same as above — you're on a page extensions can't touch. |
Anything else, open an issue.