securebin is a Google Chrome extension for interfacing securely with PasteBin.
Users can encrypt plaintext and have it stored onto PasteBin, where they can copy the link and key to send it to another user for decryption. Encryption happens locally in your browser with the Web Crypto API (AES-GCM by default) — the plaintext never leaves your machine.
securebin works out of the box; add your own PasteBin API key in Settings to post under your account.
To learn more about our project and the design decisions check out the Wiki page.
| Pastebin client | Secure mode |
|---|---|
![]() |
![]() |
| Post code or notes straight to Pastebin — formats, expiry, and visibility included. | Encrypt locally with AES-GCM first; only ciphertext ever reaches Pastebin. |
Version 2 is a complete rewrite of the extension using modern web technologies:
- Framework: React 19 with TypeScript
- Styling: Tailwind CSS v4 and Radix UI primitives for a modern, beautiful, and accessible UI
- State Management: Zustand
- Routing: React Router v7
- Bundler: Vite with
@crxjs/vite-pluginfor optimized extension builds and HMR (Hot Module Replacement)
You can grab a prebuilt version of this extension under the releases tab or build it yourself:
$ npm install
$ npm run build
Then load the generated dist folder via chrome://extensions → Developer mode → Load unpacked.
npm run dev starts the Vite development server with Hot Module Replacement; load the generated dist folder in Chrome the same way.
Optionally bundle a default Pastebin API key into the build (used when the person installing the extension hasn't configured their own key). The key is injected at build time from a gitignored env file and never committed:
cp .env.example .env.local
# then set VITE_DEFAULT_PASTEBIN_API_KEY in .env.localBuilds without .env.local work normally — posting to Pastebin is simply disabled until a key is entered under Settings → API Key.
npm run dev: Start the Vite development server with HMR.npm run build: Build the extension for production intodist/.npm run test: Run unit tests using Vitest.npm run test:watch: Run tests in watch mode.npm run preview: Preview the production build.

