Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Emoji and GIFs in SMS

The SMS composer has two extra buttons next to the picture button — an emoji picker and a GIF picker — in both the New SMS box and the reply box inside a conversation. Emoji — opens a searchable panel (with a "Recent" row of your go-to emoji); tap one and it drops into your message right where the cursor is. GIF — opens GIF search powered by Klipy (a free GIF service used by apps like WhatsApp and Discord); trending GIFs show when you open it, type to search, tap one to attach it.

What it is

The SMS composer has two extra buttons next to the picture button — an emoji picker and a GIF picker — in both the New SMS box and the reply box inside a conversation.

  • Emoji — opens a searchable panel (with a "Recent" row of your go-to emoji); tap one and it drops into your message right where the cursor is.
  • GIF — opens GIF search powered by Klipy (a free GIF service used by apps like WhatsApp and Discord); trending GIFs show when you open it, type to search, tap one to attach it. The GIF sends as a picture message from your own number, animated wherever the recipient's phone/carrier shows animation.

Sending GIFs needs the Pushbullet provider. A GIF goes out as a picture (MMS), so it works only on Pushbullet; the native (self-hosted phone) provider is text-only for now. Emoji work on either provider.

Where to find it

In the SMS panel — the New SMS box or any conversation's reply box — the emoji and GIF buttons sit next to the picture button.

How it behaves

How to use it

In the SMS panel — New SMS (pencil) or a conversation's reply box:

  1. Click the smiley button to add emoji, or the GIF button to search GIFs.
  2. For a GIF, tap the one you want — it attaches as the picture for your next text (you can still add words). A thumbnail preview appears; remove it with the × if you change your mind.
  3. Press Send. The GIF goes out attached to your text, just like sending a photo.

Works on desktop and mobile.

Do I need to set anything up?

For GIFs, yes — GIF search needs a free Klipy key. Grab one from klipy.com and paste it in Settings → SMS → "GIF search key (Klipy)". Emoji need no setup. Until a key is added, tapping GIF shows a short "GIF search isn't set up yet" note.

Cost / heads-up

GIF search itself is free. A GIF you send is a picture message, so it counts against your Pushbullet texting allowance the same as any MMS, and animation depends on the recipient's phone/carrier (some show a still frame). Sending a GIF you receive is not supported — Pushbullet's bridge can't receive picture messages at all.

For agents

Under the hood (for agents)

  • One shared SmsComposerExtraTools (emoji + GIF buttons) drops into the MessageBarToolZone of both SMS compose surfaces.
  • Emoji = a curated ~400-emoji zero-dependency dataset + a localStorage "Recent" row; selecting one calls the composer's insertAtCursor.
  • GIF search + the GIF byte fetch run in Main (klipy-service.ts) so the key never crosses IPC. The chosen GIF is fetched into a bounded data:image/gif URL and staged un-downscaled (stageRawDataUrl) so its animation survives the existing MMS send path.
  • The GIF download is SSRF-gated: https + a Klipy-media-host allow-list before any fetch, content-type: image/gif required, and a byte cap under the send gate.
  • Full invariants: .claude/memory/contracts/sms-emoji-gif-picker-contract.md (the GIF-as-picture send path is .claude/memory/contracts/sms-mms-pictures-contract.md).

Related

Sending pictures in SMS is the sibling capability in the same composer, and scheduling a text is the third control that sits beside them.

Last verified 2026-09-23