Skip to content

RADIREX666/Pigeon

 
 

Repository files navigation

Pigeon

Pigeon

Read Telegram public channels on your Mac — even when Telegram is blocked. No Telegram account, no VPN, no setup beyond installing the app.

Pigeon main window — sidebar of channels on the left, an open Persian-language channel on the right


Why it works in Iran

What the firewall sees: Normal HTTPS connections to GitHub and Google — nothing that looks like Telegram.


Install

Grab the latest Pigeon-X.Y.Z.dmg from the Releases page, drag the app to /Applications, and you're done. Requires macOS 26 (Tahoe).

The DMG is ad-hoc signed, so on first launch macOS will refuse with "can't be opened, developer cannot be verified". Clear the quarantine attribute once and it's done:

xattr -cr /Applications/Pigeon.app

Or right-click the app in Finder → OpenOpen anyway.

Build from source

brew install xcodegen
git clone https://github.com/MaroMushii/Pigeon.git
cd Pigeon/mac
xcodegen generate
open Pigeon.xcodeproj

Then hit ⌘R in Xcode. Requires Xcode 26.


Updates

Pigeon checks for updates automatically in the background. When a new version is available you'll see a prompt.

The app cannot install updates silently because it is not signed with an Apple Developer certificate — signing would require handing Apple identifying information, which conflicts with the privacy goals of this project. One manual install step per update is the deliberate trade-off.


Using it

  • Add a channel: ⌘N, then paste a username (durov), an @handle, or any t.me URL. The sheet also lists a few popular channels you can add with one click.
  • Read posts: click a channel in the sidebar. Posts load in the main pane with text, images, video posters, view counts, and reactions. Each post is marked read once it scrolls into view.
  • Auto-refresh: Pigeon polls in the background. Mirror-backed channels refresh every 5 minutes, on-demand channels every 2 minutes. ⌘R forces an immediate refresh.
  • Unread badge: the dock icon shows the total number of unread posts across all channels. Channel rows in the sidebar carry their own count.
  • Open a post: right-click → Open on telegram.org to view it in your browser. Telegram's preview pages are public — no login required.

There is no settings screen, no account, no sync.


Privacy

  • No Telegram account. Pigeon reads the same public preview pages Telegram shows at t.me/s/<channel> — scraped externally so your device never has to.
  • No analytics, no telemetry, no remote logging.
  • Your channel list stays on your Mac, in ~/Library/Containers/dev.MaroMushii.Pigeon.
  • Network traffic is HTTPS-only, to GitHub and Google.
  • No Apple Developer certificate. Signing the app would require submitting identifying information to Apple. Pigeon is ad-hoc signed specifically to avoid that.

Credits

Inspired by ircfspace/teleMirror — Pigeon borrowed the Google Translate proxy idea and the Telegram widget DOM selectors as starting points, and rebuilt everything else as a native macOS app.

Licensed under the WTFPL — do what the fuck you want.

About

Native macOS reader for public Telegram channels. Built to keep working on heavily filtered networks.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HTML 51.1%
  • Swift 25.2%
  • Python 18.8%
  • TypeScript 2.9%
  • Shell 1.6%
  • Just 0.4%