Android

Every Mercurygram-specific option in the Android client: what it does, where it lives, and its default.

Options live under Settings → Mercurygram, unless a section says otherwise. They are off by default unless the Default column says otherwise, and apply to the current account only. The ones marked all accounts are device-wide, which the app also tells you in place. Options marked pre-release are not in the current stable build yet; they ship in the 5-dotted pre-release builds and land in the next stable.

Hidden accounts

The Hidden Accounts row appears at the top of the Mercurygram settings once an app passcode or stealth mode makes hiding possible. A hidden account is kept out of account switchers, settings and notifications until you type its own 4-digit unlock code, which must be unique and must not match the app passcode. At least one account has to stay visible.

The unlock code controls in-app access only. It is not encryption: chat data, media and credentials stay readable to anyone with full device access.

OptionWhat it doesDefault
Stealth modeHides hidden accounts without turning on the regular app passcode. Type a hidden account's code in the chat search field to open it for the session.Off
Only show settings when using a hidden accountKeeps the Hidden Accounts screen itself out of sight unless you are signed into a hidden account.Off
Change unlock code / Remove hidden accountLong-press an account in the list. Removing it makes the account visible again everywhere.n/a

General

OptionWhat it doesDefault
Show "Message Details"Adds a Message Details entry to the message long-press menu, including Export as JSON.Off
Hide keyboard on chat scrollDrops the keyboard as soon as the message list starts scrolling.Off
Hide "All Chats" tabRemoves the All folder tab. Long press the title bar to show it temporarily.Off
Default launch folderThe chat list opens on the folder you pick, on the first tab build after launch. Local to this device.All Chats
Hide storiesRemoves the stories bar from the chat list entirely.Off
Hide Premium promoHides the Telegram Premium, Business and gifting rows in Settings and the Premium banners in the chat list. Unlocks nothing and does not touch sponsored messages.Off
Use system font (all accounts)Uses the device system typefaces instead of the bundled Roboto.Off
Show character counterCounts the characters in the message you are typing, for groups where a bot enforces a length limit. Hidden while Telegram shows its own remaining-characters counter.Off
Delete for everyone by defaultPre-ticks "Delete for everyone" (and "Also delete for…" in private chats) in the delete dialog. You can still untick it.Off
Save deleted & edited messagesMessages the other side deleted, your own included, stay in the chat, grayed out and non-replyable, and can be removed with the usual Delete; messages you delete yourself are not kept; edited messages keep their earlier versions under Edit history in the message menu. Stored separately from the Telegram cache. Self-destructing messages and secret chats are never saved.Off
Clear saved message historyWipes everything the option above recorded. Shown only while it is on.n/a

Custom emoji pack

A sub-screen under General. Renders emoji from your own pack instead of the built-in Noto set; any emoji the pack is missing falls back to the built-in one. The pack stays on your device and is never shared.

OptionWhat it doesDefault
Use custom emoji pack (all accounts)Switches emoji rendering to the imported pack.Off
Import pack from fileTakes a .zip of emoji images, or an official Telegram APK to extract emoji from.n/a
Remove packDeletes the imported pack and goes back to the built-in set.n/a

Media

OptionWhat it doesDefault
Use rear camera for video messagesRound video messages start on the rear camera.Off
Disable Live Photos by defaultSends only the still frame of a Google Motion Photo. Tapping the motion icon in the attach panel still enables it for one selection.Off
Disable proximity sensor (all accounts)Keeps the screen on when the phone is near your face during calls and voice message playback, for phones whose sensor misfires. Raise-to-listen and the switch to the ear speaker stop working.Off

Privacy

OptionWhat it doesDefault
Reduce network tracking (all accounts)Rotates the session key every hour instead of once a day, so a passive observer has a harder time correlating your device across IP changes. Background network activity rises slightly, and the first key after a fresh login is still observable once. If the server rejects the shorter lifetime, that account falls back to the standard 24h key and the screen says which.Off
Tor (all accounts)Opens the Tor screen, which is also reachable from Settings → Data and Storage → Proxy Settings and from the login screen, so an account can be logged in over Tor. Routes Telegram protocol traffic (MTProto) through an embedded Tor daemon, defeating the passive auth_key_id correlation that links your account to your real IP. Media downloads and other HTTP traffic stay direct. Tor stops when the app is idle and restarts on demand. Calls may suffer, and Telegram still sees the Tor exit. Needs the companion Tor plugin, which the app offers to install. While Tor is on it owns the connection: adding, picking or deleting a regular proxy is refused with a hint instead of quietly taking over, and the proxy you had before is restored when you turn Tor off.Off
↳ Anti-censorship (all accounts)Direct connection where Tor is not blocked, Snowflake where it is (domain-fronted, no setup), or obfs4 bridges with lines from @GetBridgesBot.Direct connection
↳ Stop Tor after idle (all accounts)Never, 1 minute, 5 minutes, 15 minutes or 1 hour.5 minutes
Disable global searchSearch stops looking up public usernames, channels and messages across Telegram, and only covers your own chats and contacts.Off
Disable AI text editorHides the AI button in the message and caption editors, which sends your draft to Telegram's AI service.Off
Disable AI summariesHides the AI Summary button, which sends the message text to Telegram's AI service.Off
Open links in browserLink taps open the page in your browser instead of Instant View, which is rendered by Telegram's servers. The explicit Instant View button still works.Off
Disable link previewsStops the app fetching web page previews while composing, in every chat, so Telegram's servers never load the links you type or paste.Off
Strip tracking parametersRemoves click-tracking parameters (utm_*, fbclid, gclid, igsh and about seventy more) from links you open, links you paste into the message field, links you copy out of the app, and links shared into Mercurygram from another app. Site-specific ones go too, where they are only tracking on their own site: si on YouTube and Spotify, s/t on X, the share ids on TikTok and Instagram's stkn, ref/pd_rd_* on Amazon, ved on Google Search. Parameters that carry real meaning are kept, such as Instagram's img_index. The rest of the address is untouched.Off
Keep drafts on this deviceUnsent drafts are never uploaded to Telegram, so they stop appearing on your other devices. Clearing a draft still syncs, so a draft stored before you turned this on can be removed from the server.Off
Confirm Telegram linksAsks before opening t.me and tg:// links and shows the address first, against links that quietly join a channel or open a bot.Off
Start new chats as secretThe compose button creates an end-to-end encrypted secret chat instead of a regular one. Secret chats live only on this device. Existing chats and other ways of opening a chat are unaffected.Off

Translation

A sub-screen under Privacy. Applies to all accounts.

OptionWhat it doesDefault
Translation engineTelegram cloud sends the text to Telegram (which forwards to Google). Alternative HTTP routes it through a public Mozhi privacy proxy. Offline hands each translation to a separate FOSS app over a bound service, so the message never leaves the device; formatting may be lost, since the engine returns plain text. Default defers to Telegram's own setting.Default (Telegram cloud)
Install Offline Translator from F-DroidOpens the listing for dev.davidv.translator, the reference offline provider. Open it once afterwards to download your language pairs.n/a
Auto-fallback on failureIf the offline translator returns nothing (no model, language not detected, service unreachable), fall back to the Alternative HTTP path. The Telegram cloud is never used as a fallback once you picked the offline engine.On
Engine (Alternative HTTP)DuckDuckGo, Google (via Mozhi) or Yandex.DuckDuckGo
Instance (Alternative HTTP)Rotate across the default Mozhi instances, pin one of them, or enter a custom https:// URL. The instance operator can log what it translates.Auto (rotate across defaults)

Voice transcription

A sub-screen under Privacy. Transcribes voice and round video messages on the device with whisper.cpp: the audio never leaves your phone and it works without Telegram Premium. The models are open source (MIT) and are downloaded or imported separately, not bundled.

OptionWhat it doesDefault
Transcribe on device (all accounts)Uses the local model instead of Telegram's premium-gated transcription request. Needs a model installed.Off
Model (all accounts)Tiny (smaller, faster), Base (larger, more accurate) or Small (most accurate, slower).Tiny
Download model / Import model from file / Delete modelFetch a model over the network, or import one you already have. Tapping the row while a download runs stops it and discards the partial file.n/a
LanguageAutomatic lets the model detect the spoken language; Device language or a specific language pins it, which helps because the smaller models often mis-detect short messages.Device language
Skip silence (voice detection) (all accounts)Detects speech and skips the silent parts, so the model cannot invent words during silence. Uses a small extra model downloaded alongside the main one.On

Updates

Hidden on F-Droid and Google Play builds, which update through their store. Applies to all accounts.

OptionWhat it doesDefault
Disable in-app updaterStops the startup check for new releases on GitHub. Manual checks still work.Off
Accept pre-release updatesReceives the 5-dotted development snapshots taken between stable releases (such as 12.6.4.4.42). They may crash or carry half-finished features; turning the option back off offers you the matching 4-dotted stable as an update, rolling the install back. Installing a pre-release any other way switches the option on by itself, so it always shows the channel you are on.Off
Check for updates nowRuns the check immediately and shows when it last ran.n/a

Notifications

Push runs over UnifiedPush instead of Firebase, via the aesgcm-proxy gateway. Applies to all accounts.

OptionWhat it doesDefault
Disable UnifiedPushStops push notifications: the distributor subscription is dropped and both device tokens are revoked on Telegram's side. Applied immediately, no restart. Background delivery then depends on Telegram's own connection, so enable Background Connection or Keep-Alive Service under Settings → Notifications and Sounds if messages are still wanted while the app is closed.Off
UnifiedPush DistributorPicks the installed distributor app that receives pushes. Long press for recent notification and decryption statistics.Not set
↳ Google FCM (built in)Entry in the same menu for devices with Play Services and no distributor app installed. Delivers through Firebase Cloud Messaging without bundling any Google library or Firebase project: Play Services is asked for a plain WebPush endpoint, and the gateway signs the pushes it cannot sign itself. Payloads stay end-to-end encrypted, but Google learns that a notification reached the device, so the entry is never selected automatically and warns before it is. The one exception is a Google Play install with no distributor app: there it is the default, and installing any distributor app turns the default off again.Not set (Google FCM on Google Play)
Gateway URLThe URL prefix of the UnifiedPush gateway.https://p2p.belloworld.it/
↳ VAPID public keyShown only while Google FCM (built in) is the selected distributor. Firebase accepts a push only if it is signed with the key of the gateway it comes from, so this is the VAPID public key of the gateway set above, and its /fcm/ route follows that same Gateway URL. Change both together to run the built-in entry through a self-hosted gateway; leave both alone to use Mercurygram's. Editing either one re-registers with the distributor straight away.Mercurygram gateway

The default ntfy.sh server has very low rate limits and blocks the gateway, so the app warns and switches away from it. A self-hosted ntfy server or another distributor works fine.

Elsewhere in the app

OptionWhereWhat it does
OpenStreetMap map previewsSettings → Privacy and Security → Map preview providerRenders map previews on the device with MapLibre and OpenStreetMap instead of Google. Always offered, whatever the server suggests.
Stickers / GIFs / Games / Inline BotsGroup permissions, and the per-member restriction editorSplits Telegram's single "Stickers & GIFs" permission into four independent toggles.
Disable Secure FlagsDebug menu (long press the version number)Allows screenshots and recents previews in screens that normally block them.
Remove Ads & Proxy SponsorDebug menuDrops sponsored messages and the proxy sponsor channel.
Do Not Translate, Translate Entire ChatsSettings → LanguageBoth rows are listed without Premium. The switch turns the in-chat "Translate to X" bar off for the account; manual translation stays available.
Keep-Alive Service, Background ConnectionSettings → Notifications and SoundsBoth switches now write where the app reads them, so they work on every account, not only the first, and Background Connection is applied to all logged-in accounts at once. Android requires an ongoing notification while the keep-alive service runs; tapping it opens its notification channel, where it can be silenced or hidden.
Mercurygram folderSettings → Folders, on the create and edit screensA switch that keeps the folder off Telegram's folder API, so it counts against neither the folder limit nor the chats-per-folder limit; once the server limit is hit, "Create new folder" opens with it on. Flipping it on an existing folder that is not shared moves the folder to Mercurygram (deleted from Telegram) or back to Telegram, chats and pins included. Mercurygram folders carry a "Mercurygram" tag in the folder list and are synced between your Mercurygram apps through one JSON document in Saved Messages, so Telegram learns nothing it did not already know.
TorSettings → Data and Storage → Proxy Settings, and the proxy button on the login screenThe same Tor screen as under Settings → Mercurygram, placed where connection settings live so it can be turned on before logging in.
Search operatorsThe in-chat search fieldTyped filters next to the search text: from:username, before:/after:/date: (YYYY-MM-DD, today, yesterday) and type: (photo, video, voice, round, music, gif, file, link, contact, geo, poll, mention, pinned). Filtering runs on Telegram's servers through the same search API fields the official apps' filter UIs use, so no extra data leaves the device; a token that does not parse is searched for literally.

Always on

Some of the fork is not a toggle. These behaviours are always active.

Privacy and networking

Premium gates removed

Interface

Media

Fixes carried ahead of upstream

The fork also carries upstream bug fixes: the Android 16 heads-up notification bug, a custom notification sound on a contact or a chat that the Sound screen reset to Default whenever it could not match the stored tone, the notification permission prompt coming back on every launch after it was accepted, a set of crash and memory-leak fixes, secret-chat delete-for-everyone propagation, IPv6 and multi-address proxy connectivity, several performance fixes for large accounts, and a batch of photo picking and editing fixes (a crop that could silently send the uncropped original, a caption lost when send was pressed or moved onto the wrong photo when the selection was reordered, rotating in the crop editor discarding the crop, and images pasted from Gboard skipping the editor), an album whose remaining photos overlapped after part of it was deleted, and two live location fixes: sharing without Play Services never left the stale position a GPS fix was meant to replace and did not survive a reboot, and a location shared "until stopped" was shown as already expired in the chat banner and on the map.