Browser extension
The Elido browser extension brings shortening into the tab you are already on. Open the popup, paste a URL, get a short link on your clipboard. Or right-click any link and shorten it inline. The extension icon shows a live click count on your most recent link.
Built on Manifest V3, packaged with wxt , tested on Chrome / Edge / Brave / Arc / Firefox.
What it does
- Paste-to-shorten popup. Click the extension icon → paste URL → the short link lands on your clipboard with one keystroke.
- Context menu. Right-click any link or selected URL anywhere on the page; the “Shorten with Elido” entry registers a short link and copies it.
- Click-count badge. The toolbar icon shows the live click count on the most recently created link, polled every 60 seconds.
- OAuth2 PKCE. No long-lived API tokens stored in the extension;
authentication runs through Ory Hydra with a refresh token in
chrome.storage.local(per device, never roams across the sync container). - Full i18n. Popup and options pages localized to ten languages (en, ua, ru, de, fr, es, pt, it, pl, ja) — Chrome auto-picks based on the user’s browser locale.
- Self-hosted-friendly. The API origin is configurable in the
options page. Point it at your self-hosted
api-coreand the extension routes traffic there.
Install (today)
The extension source lives in apps/extension/ of the
elidoapp/elido monorepo.
Production store builds are pending Chrome Web Store / Firefox
Add-ons review (the listing copy and screenshots are queued — see
ADR-0028
for the architecture). Until those land, install the dev build
locally:
git clone https://github.com/elidoapp/elido.git
cd elido
pnpm install
pnpm --filter @elido/extension build:chrome # or build:firefoxpnpm --filter @elido/extension build:chrome writes a Manifest V3
bundle to apps/extension/.output/chrome-mv3/.
Chromium browsers (Chrome / Edge / Brave / Arc)
- Open
chrome://extensions. - Toggle Developer mode on (top-right).
- Click Load unpacked.
- Select
apps/extension/.output/chrome-mv3/.
Firefox
- Run
pnpm --filter @elido/extension build:firefox. - Open
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on.
- Pick
apps/extension/.output/firefox-mv2/manifest.json.
Firefox unloads temporary add-ons on browser restart — for
day-to-day use, sign the build with web-ext or wait for the AMO
listing.
First-run setup
On first open the extension shows the options page. Choose one of:
- Workspace API token — paste an
ek_…key from Dashboard → API keys . Easiest path; the token sits inchrome.storage.syncso it follows the user’s Chrome sync container. - OAuth2 PKCE — click Sign in with Elido. A browser popup
opens against
https://hydra.elido.app, the user signs in with Kratos, and the extension stores a refresh token (inchrome.storage.local) plus a short-lived access token in memory. Recommended for shared / managed devices — no long-lived secret on disk.
Configuration
The options page exposes:
| Setting | Default | Notes |
|---|---|---|
| API origin | https://api.elido.app | Point at your self-hosted api-core for self-hosted Elido. |
| Default workspace | First in your account | Used when the popup or context menu shortens. |
| Default redirect domain | First active domain | Per-workspace setting; populated from /v1/workspaces/{id}/domains. |
| Click-count poll interval | 60s | Lower bound is 30s to stay polite to api-core. |
Privacy posture
The extension fires zero telemetry, embeds no third-party scripts,
and the only network call it makes is to the API origin you
configure. The token / refresh-token storage layout is documented
in the Trust Center under “Browser extension — data
scope”. Manifest permissions are scoped to the minimum the popup
flows need (activeTab, contextMenus, storage, notifications,
clipboardWrite, offscreen for service-worker clipboard writes,
and identity for the OAuth2 redirect URL).
Roadmap
The MV3 surface is feature-complete; the queued items are distribution-side, not feature-side:
- Chrome Web Store + Firefox AMO listings.
- Edge Add-ons listing (mirrors the Chrome bundle).
- Auto-update channel signed by an Elido-controlled key.
Follow the changelog for the store-listing release.
Source
- Code:
apps/extension/ - Architecture rationale: ADR-0028
- Build target: Manifest V3, packaged with wxt