Anton Shakirov

I released Stash — a browser extension for collecting references from Instagram and TikTok

Open a post, press the button in the corner — and the photo, the clip or its soundtrack goes to your downloads folder.

I collect references all the time: composition, light, editing, the way an object is shot. I used to forward the link to myself, and a week later I could not find it among a hundred other messages. Stash came out of that annoyance.

The file name is built from the author, the date and the post code, so a month later the one you want turns up straight away, without opening each file in turn.

How it works:

  1. One frame per press. In a carousel, scroll to the slide you want and press: exactly that one leaves. Three slides out of seven means three presses.
  2. Audio on its own. There is a second button with a musical note. The sound is extracted from the clip itself and comes out exactly as long as the clip.
  3. Your own folders. Files land in Saved Reels, Saved Photos and Saved Audio by default, and the names are yours to change in the settings. A slash means nesting.
  4. No duplicates. Saving the same frame twice is noticed and reported. If you want the copy anyway, press a second time in a row.

There is deliberately no button in the feed or on the profile grid. What sits under the cursor there is a thumbnail, and the file would come out worse than the original, so open the post first.

What Stash does not do. It makes no requests to the platforms of its own: the extension reads the data the page has already received to show you the post, and when that data is absent it says so instead of going to fetch it. Nothing is sent anywhere — the file travels from the platform straight to your disk. There is no batch downloading of profiles or whole collections, no download queue and no analytics. This is a tool for collecting references rather than a machine for hoovering up other people's work.

Rights to whatever you save belong to the people who posted it, and this extension grants none. Looking at something and drawing on it is one thing; reuploading it or using it in your own material is another.

Installing in Chrome

This part is harder, and not through any fault of mine. Chrome does not allow installing extensions from outside its own store, and that store does not publish extensions of this kind. So the install is manual, in four steps:

  1. Download the archive — the stash-chrome-x.y.z.zip file from the latest release — and unzip it.
  2. Open chrome://extensions.
  3. Turn on Developer mode with the toggle in the top-right corner.
  4. Press Load unpacked and pick the unzipped folder.

Reload any tabs you already had open afterwards: the extension does not reach them.

Updating is manual too. Unpacked Chrome extensions never update themselves — the browser has no mechanism for it. The extension will notice when a new version is out and say so, but downloading and swapping the folder is on you. In Firefox all of this happens without you.

The code is fully open under the

Installing in Firefox

Download and install — one click, and it updates itself from there. The package is signed by Mozilla, so there is no store and no developer mode. Firefox 140 or newer is required.

MIT licence. If something does not work or you have an idea, write to me and I will look.

Download the extension