TencentCloud/TIMSDK: the hub repository for Tencent's Chat SDK
Free Chat SDK (IM SDK) — 1,000 MAU/month free forever with push notifications & no concurrency limits. Build in-app messaging with chat API, UIKit & send message. Supports Android, iOS, Flutter, Web, React Native, uni-app, HarmonyOS & more.
At a glance
- What is it?
- Tencent Cloud's Chat SDK ships a core messaging SDK plus drop-in UIKit components across Android, iOS, Flutter, Web and React Native. This is the routing repository, not the code, and that distinction matters when you sit down to integrate it.
- Who is it for?
- Adopt Tencent Chat SDK if you need cross-platform in-app messaging with prebuilt UI and can accept a hosted Tencent backend; skip it if you need a self-hosted or protocol-level messaging stack. Before writing code, confirm the free plan terms on the pricing page, check that the platform repository listed in the README matches your target, and verify which of the three native release tags applies to your build.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 9 days ago.
- What is it written in?
- Mainly Objective-C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What TencentCloud/TIMSDK actually is, and who it is for
The repository at TencentCloud/TIMSDK is described in its own README as "the central hub repository for Tencent Chat SDK." That sentence is the most important thing to understand before cloning anything. The top level holds directories for Android, iOS, Mac, Windows, Web, Flutter, React Native, HarmonyOS, Electron, Unity, UE5, MiniProgram and uni-app, but the README does not present these as the primary integration path. Instead it routes you outward, to separate repositories such as chat-uikit-android, Chat_UIKit, chat-uikit-react, chat-uikit-vue, TUIKit_Flutter and chat-demo-react-native, each with its own integration guide on trtc.io.
The audience is therefore narrow and specific: product teams that want real-time one-to-one chat, channel chat, offline push notifications and message sending inside an existing app, and that are willing to run on Tencent's hosted messaging infrastructure rather than their own. The README lists use cases including an Official Channel broadcast model, a Discord-style community with servers and threads, an AI chatbot integration, and red packets built on custom messages. Those are consumer-facing messaging scenarios, not internal tooling.
What the repository is not is a self-contained library you vendor into a build. The README's own framing, "choose your platform below to find the dedicated repo and integration guide," tells you the hub is an index. If you came here expecting a single Objective-C or Java artifact to drop into a project, the repository layout will redirect you.
UIKit versus Core SDK: two integration paths with different costs
The README splits the offering in two, and the split is the main architectural decision you make.
UIKit is the prebuilt path. The README claims you can "ship a full-featured chat experience in under 10 minutes" using UIKit components. On the platforms in the routing table, UIKit means a set of ready-made views: conversation lists, message bubbles, input bars, read receipts, typing indicators. You get a working chat surface quickly, and you accept Tencent's visual design as the starting point. The README does not describe how far the UIKit components can be restyled, so if your product has a strong design system, treat that as an open question to resolve in the platform repository before committing.
Core SDK is the other path. You take the messaging layer and build your own UI on top. The README calls it building "your own UI on top of a battle-tested messaging infrastructure." This costs more engineering time but removes the design constraint. The Core SDK repositories are listed separately: chat-uikit-android under ChatSDK, chat-uikit-ios under ChatSDK, TIMSDK/Mac, TIMSDK/Windows, the Flutter package tencent_cloud_chat_sdk on pub.dev, and the npm package @tencentcloud/chat for both React Native and Web (JS).
Note the naming trap. The Android and iOS Core SDKs live inside repositories named chat-uikit-android and chat-uikit-ios, in a ChatSDK subdirectory. The word UIKit in the repository name does not mean the code inside is UIKit-only.
Where the README says to get the SDK for each platform
The README does not contain install commands, dependency manifests or configuration snippets. It is a routing document, and the only installation guidance it gives is a table of repositories, published packages and integration guides. Reproducing a package manifest here would mean inventing one, so this section stays with what the README actually states.
For Flutter, the README points to the pub package tencent_cloud_chat_sdk and to the integration guide at trtc.io/document/46264. For React Native and for Web (JS), it points to the npm package @tencentcloud/chat, with separate guides at trtc.io/document/48865 and trtc.io/document/34309. Android Core SDK code lives in chat-uikit-android under the ChatSDK directory, guided by trtc.io/document/34306. iOS Core SDK code lives in chat-uikit-ios under ChatSDK, guided by trtc.io/document/34307. Mac is TIMSDK/Mac/IMSDK/README_CHAT.md with trtc.io/document/34308, and Windows is TIMSDK/Windows/IMSDK with trtc.io/document/34310.
For the UIKit path, the routing table names chat-uikit-android and TUIKit_Android_Compose for Android, Chat_UIKit and TUIKit_iOS_SwiftUI for iOS, chat-uikit-react and chat-uikit-vue for Web, TUIKit_Flutter for Flutter, and chat-demo-react-native for React Native. Each has its own document link. The README does not state what a first-run setup looks like on any of these, so the sequence of credentials, initialization and login has to come from the linked guide for your platform.
One thing the README does warn about indirectly: it links a "Chat SDK V2 API Upgrade Guide" hosted as a Tencent Docs spreadsheet. That implies the API surface has changed across major versions. Check which version your chosen guide targets before following it.
The free plan, MAU counting, and what the README does not say
The README states the free plan plainly: "1,000 MAU/month, no concurrency limits, push notifications included, free forever." It links to trtc.io/free-chat-api for the terms. That is a genuinely unusual shape for a messaging service, because most hosted chat vendors meter on concurrent connections or peak throughput rather than monthly active users. Tencent's framing removes the concurrency ceiling and moves the meter to a count that grows with your user base.
What the README does not explain is how a monthly active user is defined, whether the count resets on the calendar month, what happens at overage, or what the paid tiers cost. None of that is in the repository. It lives on the pricing page, and the README links there rather than restating it. Treat the free tier as a starting constraint to verify, not a settled number.
The practical consequence: a consumer app with a small, highly engaged user base fits the free tier comfortably, because concurrency is not the limit. A product with a large but lightly active audience also fits, because MAU is what is counted. The plan is less obviously suited to an internal tool with a fixed headcount, where the MAU number is trivially small but the messaging volume is high. That is not a documented restriction, just arithmetic on the stated metric.
Large communities, message types, and the features that are not in the core
The README lists capabilities that go well beyond basic messaging, and it is worth separating what ships in the SDK from what is a separate product surface.
In the core list: text, image, audio and video message types; real-time read receipts, online and offline status, and typing indicators; channel creation, member management and profile customization; conversation management covering unread counts, recent, pinned and deleted chats; and communities up to 1,000,000 members with topic-based sub-channels. That last number is the most concrete scale claim in the document, and it is the one to test against your own load profile if you are building anything community-shaped.
Separately, the README groups cloud-based message search, real-time text translation, Official Channels and message merging under "Advanced Features." The word cloud is doing work there. Search and translation are described as cloud-based, which means they are server-side capabilities rather than local SDK functions. The README does not state whether these are included in the free plan or billed separately. If your product depends on message search or live translation, resolve that before you architect around it.
The repository also carries a version history file, 版本历史.md, and an English update log, update_log_EN.md, at the top level. Those are the places to look for behaviour changes between releases, since the README itself is a routing document and does not track API deltas.
Release cadence, licence, and the maintenance question
The release history is the weakest signal in this repository. The three most recent releases are [email protected] (2024-04-22), [email protected] (2024-04-11) and [email protected] (2024-03-04). All three are tagged as native, and all three fall in a two-month window in early 2024. The repository's last push was on 2026-09-21, so the hub is receiving commits, but the release tags have not moved in a long time. Whether that means the native SDK has stabilized or that releases are published elsewhere is not stated. The Flutter, React Native and Web packages are published on pub.dev and npm, and their version histories are not reflected in this repository's release list.
On licensing: the repository does not declare a licence. The project metadata carries no licence identifier, and the README contains no licence section. That is a real problem for adoption review, because it means you cannot determine from the repository alone what rights you have to the code. The SDK is a commercial product with a free tier, so the terms almost certainly live in a service agreement rather than an open source licence, but the repository does not say so. If your organisation requires a licence file before a dependency is approved, this repository will not satisfy that check, and you will need to get the terms from Tencent directly.
Upgrade cost is also undocumented here. The README links a V2 API upgrade guide, which implies breaking changes have happened before. The README does not describe a deprecation policy, a support window for older major versions, or a rollback path.
When Tencent Chat SDK is the wrong choice
The clearest mismatch is any project that needs to own its messaging data. The README describes a hosted service with a console for managing applications and monitoring usage, a REST API for server-side user management and messaging, and cloud-based search and translation. Nothing in the repository suggests a self-hosted deployment option. If your requirements include data residency you control, or an on-premise message store, this is not the tool, and no amount of UIKit convenience changes that.
A second mismatch is protocol-level work. If you need to speak an open protocol, interoperate with another messaging network, or implement custom end-to-end encryption at the transport layer, a hosted SDK with a fixed client API is the wrong layer. The README does not mention encryption, federation or protocol interop at all.
A third is a project that needs only push notifications. The free plan includes push, but adopting a full chat SDK to get offline push means carrying an entire messaging client and its lifecycle. The README does not describe a push-only mode.
Finally, consider the repository structure as a maintenance cost. You will be tracking at least two repositories, the hub and your platform's dedicated repo, plus a separate documentation site and a console. For a small team, that is more surfaces to watch than a single library would be.
Alternatives and how the approach differs
The README does not name a competitor, so the honest comparison is structural rather than named. Tencent Chat SDK's defining choice is that it bundles the UI. The UIKit path gives you conversation lists, message bubbles and input components as shipped code, and the Core SDK path gives you the messaging layer alone. Most open messaging backends give you the second and leave the first entirely to you.
That bundling is the real difference in approach. A backend-only messaging service asks you to design and build every screen, which is more work but leaves you in full control of the interface and lets you swap the backend later without rewriting the UI. Tencent's UIKit inverts that: you get a working app quickly, and the UI you ship is the one the SDK provides, restyled to whatever degree the components allow. The README does not document that degree.
The second difference is the pricing metric. Metering on monthly active users with no concurrency limit suits products whose peak load is bursty and whose user count is the thing that grows. A concurrency-metered service suits the opposite shape. Which one is cheaper depends entirely on your traffic pattern, and the README gives you only the Tencent side of that equation.
The third is platform breadth. The routing table covers Android in both View and Compose, iOS in both UIKit and SwiftUI, Web in React and Vue, plus Flutter, React Native, HarmonyOS, Electron, Unity, UE5, MiniProgram and uni-app. That is a wider first-party surface than most messaging SDKs publish. Whether all of those are equally current is not something the README states, and the release tags only cover native.
Editorial conclusion
Adopt Tencent Chat SDK if you need cross-platform in-app messaging with prebuilt UI and can accept a hosted Tencent backend; skip it if you need a self-hosted or protocol-level messaging stack. Before writing code, confirm the free plan terms on the pricing page, check that the platform repository listed in the README matches your target, and verify which of the three native release tags applies to your build.
Frequently asked questions
What is the TencentCloud/TIMSDK repository, and is it the code I install?
It is the central hub repository for Tencent Chat SDK, and the README describes it as a routing point rather than the integration target. It directs you to separate platform repositories such as chat-uikit-android, Chat_UIKit and chat-uikit-react, each with its own integration guide. You install from those, or from the published packages tencent_cloud_chat_sdk on pub.dev and @tencentcloud/chat on npm.
How much does Tencent Chat SDK cost for a small app?
The README states there is a free plan of 1,000 MAU per month with no concurrency limits and push notifications included, described as free forever. It links to trtc.io/free-chat-api for the terms rather than restating them. The repository does not define what counts as a monthly active user or what the paid tiers cost.
Which platforms does Tencent Chat SDK support?
The README lists Android (View and Compose), iOS (UIKit and SwiftUI), Mac, Windows, Web (React, Vue and JavaScript), Flutter, React Native, HarmonyOS, Electron, Unity, UE5, MiniProgram and uni-app. The repository layout reflects this with top-level directories for each. The README does not state whether all of these are maintained at the same version.
What licence is TencentCloud/TIMSDK released under?
The repository does not declare a licence. There is no licence identifier in the project metadata and no licence section in the README. Because the SDK is a commercial product with a free tier, the terms are likely in a service agreement, but the repository does not say so and you will need to confirm with Tencent.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/tencentcloud-timsdk)