Public
Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Mithka

A cross-platform (iOS + Android) Telegram client built with Flutter on top of TDLib via FFI, with a dense, mobile-native messaging interface.

Disclaimer

Mithka is an independent, unofficial project. It is not affiliated with, endorsed by, or connected to Telegram in any way. "Telegram" is a trademark of its respective owner.

The app talks to Telegram's network through TDLib using your own Telegram API credentials. Use it at your own risk and in accordance with Telegram's Terms of Service and API Terms.

TestFlight

iOS beta builds are available on TestFlight: https://testflight.apple.com/join/tVC8WkbW

The name

A play on small units of mass, by way of the penguin:

  • The penguin mascot is a pengram — 🐧 + gram, read as penta-gram5 g.
  • One mithqāl (مثقال), a traditional Islamic unit of mass, is ≈ 4.6875 g.

So Mithka (from mithqāl) is the featherweight just under the (Tele)gram penguin on the scale.

What it is

Mithka connects to real Telegram (your account, your chats) through TDLib and presents it with a custom interface: chat list, conversations with live state, reactions and stickers (including animated .tgs/.webm), voice notes, polls and checklists, location sharing, contacts, profiles, moments-style stories, settings, and a 1:1 call UI.

Architecture

  • Flutter UI (lib/), state via provider + ChangeNotifier.
  • TDLib linked through Dart FFI (lib/tdlib/); the native libtdjson binary is downloaded/built per platform (see below) and is not committed.
  • All theming is adaptive (light / dark); UI components are Cupertino/custom — no Material dialogs, snackbars, or switches.

Building

You need your own Telegram API credentials (api_id / api_hash) from https://my.telegram.org. They are read from a git-ignored lib/config/secrets.dart:

class Secrets {
  static const int apiId = 123456;
  static const String apiHash = 'your_api_hash';
  static bool get isConfigured => apiId != 0 && apiHash.isNotEmpty;
}

The TDLib native library is prepared with helper scripts (output is git-ignored). CI downloads the latest prebuilt Android and iOS artifacts from iebb/mithka-tdjson. The Android source-build script is kept for local fallback/debug builds.

# Android local fallback (per ABI) — produces android/app/src/main/jniLibs/<abi>/libtdjson.so
scripts/build-tdjson-android.sh arm64-v8a

# iOS — downloads ios/tdjson/tdjson.xcframework consumed by the Runner
scripts/build-tdjson-ios.sh

Then run:

flutter pub get
flutter run            # on a connected device / simulator

Release signing (Android)

Release builds are signed with the project's upload key when android/key.properties (and the referenced keystore) are present; otherwise a debug signature is used. Neither the keystore nor key.properties is committed.

CI

GitHub Actions runs format + analyze + tests on the release branch (see .github/workflows/). secrets.dart is generated on the runner from the TELEGRAM_API_ID / TELEGRAM_API_HASH repository secrets.

License & credits

TDLib is © Telegram, used under its own license. This repository contains only original, independently-written code; it ships no third-party app's proprietary assets or trademarks.

Star History

Star History Chart

关于 About

A Telegram client, but déjà vu

语言 Languages

Dart95.3%
Kotlin1.5%
Shell1.3%
Python0.9%
Swift0.8%
Ruby0.2%
Objective-C0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
205
Total Commits
峰值: 123次/周
Less
More

核心贡献者 Contributors