Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notro

Notro

Custom emoji and big files on Discord — without Nitro, and without touching the Discord client.

Latest release Downloads Windows 10 or 11 MIT

English | 한국어 | 日本語 | 中文 | Español


Two things Discord charges for, solved from outside the app:

  • Your image is 14 MB and the free limit is 10 MB. Notro notices the moment you copy it, shrinks it, and puts it back on your clipboard. You just press Ctrl+V.
  • You want to use custom emoji anywhere. Press Ctrl+Shift+E, pick one, and it lands in the message box.

Nothing is patched, injected, or logged into. Notro is a tray app that prepares your clipboard and presses Ctrl+V for you — the same kind of input automation as the Windows emoji panel (Win+.). It never modifies the Discord client and never sees your account or token. The honest trade-off: recipients see your emoji as image attachments, not as native inline emoji.

Notro's picker: typing filters a personal library of custom Discord emoji live, and the arrow keys move through the grid

Real UI, real library — search filters as you type, arrow keys move, Enter pastes.

⬇ Download NotroSetup.exe
No admin rights. Installs to your user folder. Uninstall from Settings → Apps.


The picker

Ctrl+Shift+E anywhere opens a dark popup at your cursor with Emoji / Stickers / GIFs tabs.

They come out the size real emoji are. Discord draws an attachment at its native pixel size, so a library holding a 20×20 GIF next to a 1080×1080 PNG would paste one as a speck and the other as a full picture. Notro normalizes the longest edge just before pasting — 48 px for emoji (the size of a jumbo custom emoji), 160 px for stickers, original for GIFs. Your library files are never modified; only the copy on the clipboard is resized.

Getting emoji in — paste a "Copy Link" URL, or the <:name:id> text you get by copying an emoji straight out of a message; drag and drop image files; point Notro at a watched folder; or just drop a folder into %APPDATA%\Notro\assets and it becomes a collection with no registration step at all.

Finding them again — search by name or keyword, including Korean initial consonants (ㅁㅋ finds 미쿠). Favorites and a recently-used row stay at the top.

Without the mouse — arrow keys move through the grid, Enter pastes, Esc closes. After the hotkey your hands never leave the keyboard.

More picker behaviour
  • Right-click an item to rename it, edit its keywords, move it to another collection, paste it as a link (for items added by URL), or remove it.
  • Adding an image you already have in that tab and collection is refused, not silently duplicated.
  • Animated APNG stickers are converted to GIF when registered, because Discord doesn't animate uploaded APNGs.
  • The clipboard button saves the current clipboard image straight into a Captures collection. Picker settings can do that automatically for every new clipboard image — off by default.
  • The window can be resized and remembers its size, per monitor DPI.
  • Items over the upload limit: still images are compressed automatically, oversized GIFs are sent as-is with a warning.
  • Optional auto-send presses Enter for you after pasting — off by default.

Automatic compression

Notro watches the clipboard. When a new image appears it computes the PNG size Discord would actually produce, and if that fits the limit it does nothing at all. Over the limit, it re-encodes to WebP, then JPEG, lowering quality and finally resolution until it fits under ~9.5 MB, and puts the result back as a file so Ctrl+V uploads it as an attachment.

Your original files on disk are never touched — only the clipboard is replaced.

The limit is switchable from the tray for 10 / 50 / 500 MB (free, Nitro Basic, Nitro).

Video clips

Copy a game clip that's too big and Notro asks first, showing exactly what to expect:

52MB · 1:12 · 1080p60  →  about 9.5MB · 480p30

You can trim it (start – end) and drop the audio in that same window, and the estimate updates as you type. This matters more than any encoder setting: a 30-second 1080p60 capture has to fall back to 1080p30 as a whole clip, but trimmed to the seven seconds you actually wanted, it stays at 1080p60.

ffmpeg is never bundled. It's fetched on demand (~30 MB, SHA-256 verified) the first time you compress a video, or taken from your PATH if you already have it. If a clip can't fit even at 360p, Notro says so instead of producing a mosaic.

Install

Download NotroSetup.exe and run it. No admin rights; it installs to %LOCALAPPDATA%\Programs\Notro.

⚠️ The build is not code-signed yet, so SmartScreen will say the publisher is unknown — click More info → Run anyway. Every release ships a NotroSetup.exe.sha256 so you can verify exactly what you downloaded, and you can build it yourself from source. See SECURITY.md and the code signing policy.

Windows 10 users: the picker needs the Microsoft Edge WebView2 runtime (Windows 11 has it built in). The installer fetches it if it's missing. Without it the picker is disabled and compression still works.

Where did it go?

Notro has no main window — it runs in the tray, next to the clock. Windows 11 hides new tray icons by default, so if you don't see it, click the ^ arrow and drag the Notro icon onto the taskbar.

Notro's first-run welcome window

Right-click the tray icon for everything else: the picker hotkey, pause/resume, recent activity, upload limit, language, output folder, and run-at-startup (off by default).

Privacy

Notro watches your clipboard, so it's fair to ask what it does with it.

  • Nothing you copy is ever transmitted. No telemetry, no analytics, no crash reporting, no account.
  • Nothing you copy is stored unless you ask. Automatic capture saving is off by default.
  • It contacts exactly four endpoints, all documented: GitHub (update check and the installer, SHA-256 verified), cdn.discordapp.com (only when you add an emoji by link), and PyPI (only the first time you compress a video, to get ffmpeg, also SHA-256 verified).
  • Uninstalling keeps your library at %APPDATA%\Notro on purpose, so reinstalling doesn't lose your emoji.

Every file location and endpoint is listed in SECURITY.md.

Languages

English, 한국어, 日本語, 中文(简体), Español — auto-detected from Windows, switchable from the tray at any time.

Run from source, build, and configure
pip install -r requirements.txt
pythonw notro.py           # run
build.bat                  # build dist\Notro.exe

Requires Python 3.10+ on Windows.

Compression behaviour lives in notro_app/config.py and notro_app/compress.py:

Setting Default Description
LIMIT_MB 10 Upload limit — or pick 10/50/500 from the tray menu
SAFETY 0.95 Safety margin (targets ~9.5 MB)
WEBP_QUALITIES 90–50 WebP quality steps
MIN_SCALE 0.4 Lower bound for downscaling

Tests:

pip install -r requirements-dev.txt
pytest

License

MIT. Bundled third-party components and their licenses — including pystray, which is LGPL-3.0 — are listed in THIRD-PARTY-NOTICES.md.

Notro is an unofficial tool — not affiliated with, endorsed by, or sponsored by Discord Inc. "Discord" is a trademark of Discord Inc.

About

Windows tray app for Discord free users: auto-compresses oversized clipboard images + an emoji/sticker/GIF picker that fills the Nitro gap — no client mods

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages