A streamlined, decluttered, and customizable Telegram Android client, forked from the Inugram patchset and built on top of official Telegram source code.
FAgram is a fork of the Inugram patchset for Telegram for Android, designed for users who want a refined messaging experience focused on usability, clean aesthetics, and essential quality-of-life enhancements without unnecessary bloat.
- Decluttered Interface: Streamlined UI without intrusive promotions, stories, or unwanted distractions.
- Quality-of-Life Enhancements: Rich message menus, per-account passcodes, customizable account ordering, enhanced media handling, and Last.fm Now Playing integration.
- Visual & UI Customization: Material You (Monet) dynamic theming, classic UI options for tab bars and headers, custom icon packs, and granular layout controls.
- Privacy & Security: Built-in Paranoia Mode (hidden chats with camouflage options), per-account lock codes, and URL tracking parameter stripper.
- Full Control: Nearly every feature and tweak can be toggled in
Settings → FAgramto tailor the app to your preferences.
See FEATURES.md for a comprehensive list of additions, tweaks, and bugfixes.
Unlike traditional Android forks, FAgram is maintained as a modular patchset layered over stock Telegram:
- Separation of Concerns: Fork-specific logic lives cleanly in
src/kotlinandsrc/res, while stock Telegram code stays inworktree/with minimal hook patches. - Streamlined Rebasing: Upstream Telegram updates can be rebased efficiently with reduced merge conflicts.
- Auditability & Modularity: Each patch is self-contained, reviewable, and can be enabled or disabled independently.
The patchset is managed using Stacked Git (StGit) with automated helper scripts in scripts/.
src/kotlin: Custom Kotlin codebase (helpers, models, settings UI)src/res: Custom assets, drawables, and localized string resourcespatches/: Exported StGit patchset applied onto stock Telegramseries: Ordered list of patches to applyupstream-commit: Pinned upstream Telegram Android commitworktree/: Local Telegram source checkout (gitignored)
| Category | Description |
|---|---|
bugfix |
Fixes upstream bugs present in the official Telegram codebase |
feature |
Adds new capabilities, quality-of-life improvements, and UI customizations |
debloat |
Disables or hides unwanted stock behavior behind user-controlled toggles |
hooks |
Lightweight stock extension points allowing custom Kotlin code to attach |
misc |
Build configuration, branding, and infrastructure support |
- Node.js 20+ and
pnpm - Android SDK & NDK
gitandstg(Stacked Git)
pnpm install
pnpm run setupThis clones the pinned upstream Telegram commit into worktree/, initializes StGit, and applies the FAgram patchset. You can then open worktree/ directly in Android Studio.
stg new <group>__<name> -m "Descriptive commit message"
# Make changes in worktree/...
stg refresh
pnpm run export# Option 1: Edit in-place
stg refresh -p <group>__<name>
pnpm run export
# Option 2: Float patch to the top of the stack
stg float <group>__<name>
# Make changes in worktree/...
stg refresh
pnpm run exportpnpm run lint-patches
pnpm run lint-patches -- --check- Inugram by alina sireneva — original patchset architecture and base implementation
- Telegram for Android — official base application
- Features and inspiration ported from open-source projects including Nekogram, NagramX, materialgram, and Catogram
- Artwork by Chobles (
src/res/drawable/icplaceholder.jpg) - Icon packs: Tabler Icons, Solar Icons (480 Design), and VKUI Icons (VK)
- URL cleaning filter rules by AdGuard
This project is licensed under the MIT License.