Skip to article
Integrations / Chrome extension

Chrome extension

An emoji picker for any text field in Chrome, with search on the device.

On this page

An emoji picker for any text field in Chrome. Put the caret in a field, press Ctrl+Shift+Space (⌘⇧Space on macOS), type what you mean and press Enter. Search runs on the device, with the English and Turkish packs inside the extension.

  • “ship it”🚀
  • “jurassic park”🦖
  • “kolay gelsin”💪

Install

Terminal
pnpm install
pnpm --filter emojisense build && pnpm data:build
pnpm --filter @emojisense/chrome-extension build   # → apps/chrome-extension/dist
  1. Open chrome://extensions and switch on Developer mode.
  2. Choose Load unpacked and select apps/chrome-extension/dist.
  3. The settings page opens once. Change the shortcut at chrome://extensions/shortcuts.

Use

KeyAction
ShortcutOpen the picker next to the caret. Press again to close.
Arrow keysMove through the results
EnterInsert the emoji, or copy it where inserting is impossible
Shift+EnterCopy instead of insert
Escape, TabClose. Focus and caret go back to the field.

An empty search box shows recently used emoji. The toolbar button does the same as the shortcut.

Where it inserts

  • Text inputs and text areas: inserted at the caret, and undo works.
  • Rich editors (mail composers, comment boxes, ProseMirror, Lexical, Slate): inserted at the caret through the editor’s own input handling.
  • Google Docs, Slides, canvas apps and password fields: the emoji is copied and a card says “press ⌘V to paste”.
  • chrome:// pages and the Chrome Web Store: Chrome does not allow extensions there.

Permissions and privacy

PermissionWhy
activeTabAccess to the current tab only after the shortcut or a toolbar click. No host permissions, no script on every page.
scriptingPut the picker into that tab
storageSettings and recently used emoji, on this device only
clipboardWriteCopy the emoji where inserting is impossible

Search is offline by default. Search by meaning, on the options page, sends the normalized query to the API address you enter, with a publishable key. Secret keys are refused. Add the extension origin shown on the options page to the key’s allowed origins.