@tencent-rtc/rtc-sdk-migrator
v1.0.0
Published
Installer for the rtc-sdk-migrator skill: scans an iOS/Android project for Amazon IVS or Agora RTC SDK usage and produces a bilingual migration guide to Tencent Cloud TRTC or AtomicXCore. One-command install for Claude Code / Cursor / CodeBuddy / Codex.
Readme
rtc-sdk-migrator
An RTC SDK migration analysis skill for mobile (iOS / Android) real-time audio/video projects. It scans a project for Amazon IVS or Agora RTC SDK usage and produces a structured migration guide (Chinese or English) for moving to one of two Tencent Cloud RTC targets: Tencent Cloud TRTC (RTC-Engine) or AtomicXCore.
Data privacy & code security
The skill runs against customers' private codebases; privacy and data security are the top priority:
- Fully local scanning: the scan stage (
scan_resolve.py+ the Node tree-sitter scanner) reads only project source code and local SDK artifacts already on disk (~/.gradle/caches,Pods/, SPM caches) — no network access. - Zero code upload: across the entire pipeline there is no path that sends customer code, file contents, or scan results to any external server. Customer code never leaves the local machine.
- Network access is download-only: the only network activity is read-only HTTP requests to official Tencent Cloud documentation and public Maven / CocoaPods mirrors.
- Local caches hold official material, not customer code: the on-disk caches (
.rtc-migration/doc_cache/,.rtc-migration/target_symbols/) store official doc pages and target SDK symbol tables, unrelated to customer code.
Capability boundaries
| Item | Description |
|---|---|
| Supported source vendors | Amazon IVS, Agora (this release supports only these two) |
| Migration targets | Tencent Cloud TRTC (RTC-Engine) or AtomicXCore (the UI-less Store components for Tencent Cloud Live) — both are Tencent Cloud RTC targets, and one must be specified explicitly; the target SDK version defaults to the latest online release when unspecified |
| Supported platforms | iOS (Swift / Objective-C), Android (Kotlin / Java) |
| Output | A migration guide document only — project code is never modified |
| Scan method | tree-sitter semantic engine (Node.js + WASM, zero-install — the Node WASM engine is bundled, no npm install needed), recall by type lineage, no static API name list to maintain |
What it can / cannot do
Legend: 🟡 = migratable with implementation differences (manual adjustment needed); 🔴 = no direct API equivalent (alternative provided).
Core capability coverage (migration chapters are produced only for modules with scan hits):
- Room & authentication: join/leave, scene/role switching, connection-state awareness, full live-room lifecycle
- Audio/video stream control: publish/subscribe, remote stream rendering, local preview, quality monitoring
- One-way live streaming (
trtctarget only):V2TXLivePusherpublishing andV2TXLivePlayerplayback - Devices & effects: camera/microphone control, audio routing, background sound effects and beauty filters
- Event notifications:
trtc(TRTCCloudListener/Delegate) andatomicxcore(State / Event subscriptions) - Custom capture & cross-cutting concerns: custom audio/video sources, build dependencies (Gradle/Podfile), permission declarations, and exception/disconnect handling
Known limitations:
- Source vendor support: currently only Amazon IVS and Agora RTC; IM / Chat and Player companion SDKs are out of scope
- Target scenario constraint:
atomicxcorefocuses on the Live UI-less state layer and has no one-way push/play components - Interaction model: outputs a structured migration analysis document only; customer project source is never modified
Requirements
| Dependency | Requirement | |---|---| | Node.js | 18 or newer (the scanner runtime — the only dependency that must be preinstalled) | | Python | 3.8 or newer (rest of the pipeline; pure stdlib, no pip installs) | | AI coding tool | Any tool that supports custom instructions / context injection (CodeBuddy, Claude Code, Cursor, etc.) |
Project-side prerequisites
Before scanning, package anchors and type inventories are extracted from local SDK artifacts already present in the project, so recall stays aligned with the SDK version the project actually locks. This step never downloads SDKs:
| Platform | Action required beforehand | Local artifact location |
|---|---|---|
| Android | Run Sync Project with Gradle Files in Android Studio (or ./gradlew sync) | .aar / .jar under ~/.gradle/caches |
| iOS | Run pod install (CocoaPods) or resolve SPM | Frameworks under Pods/, or the SPM artifact cache |
If no local SDK artifacts are found, the system fails loudly and prompts you to sync Gradle / run
pod installfirst — it never falls back to a preset symbol table that could be version-misaligned.
Installation
Run the installer from the root of the project to be migrated (requires Node.js ≥ 18, needed only for the installer and the scanner):
# Default: auto-detect installed coding tools (~/.claude, ~/.cursor,
# ~/.codebuddy, ~/.codex) and install for each one detected;
# falls back to claude when none is found
npx -y @tencent-rtc/rtc-sdk-migrator@latest add
# Install for a specific tool only (claude | cursor | codebuddy | codex | all)
npx -y @tencent-rtc/rtc-sdk-migrator@latest add --ide cursor
# Wipe previous installs, then reinstall
npx -y @tencent-rtc/rtc-sdk-migrator@latest add --clean
# Uninstall
npx -y @tencent-rtc/rtc-sdk-migrator@latest removeThe installer copies the skill into the current project's skills directory (idempotent — safe to re-run):
| Tool | Install path |
|---|---|
| Claude Code | <project>/.claude/skills/rtc-sdk-migrator/ |
| Cursor | <project>/.cursor/skills/rtc-sdk-migrator/ |
| CodeBuddy | <project>/.codebuddy/skills/rtc-sdk-migrator/ |
| Codex | <project>/.codex/skills/rtc-sdk-migrator/ |
After installation, restart / reload the window and the tool will automatically discover and load SKILL.md.
Zero-install by design — the scan engine (web-tree-sitter JS binding + exact-version grammar
.wasmfiles) is fully vendored inside the skill: nonpm install, nopip install, no network or intranet access required. The scripts are standalone tools and can also be run manually in a terminal.
Usage
Once installed, simply describe the migration task in natural language; the skill activates on keywords:
Migrate the Android project at /path/to/my-app from Agora to Tencent Cloud TRTC.
Scan the iOS project at /Users/me/projects/ivs-demo and generate a migration
guide from Amazon IVS to AtomicXCore.Trigger keywords: RTC SDK migration, audio/video migration, TRTC migration, AtomicXCore migration, Agora to TRTC, IVS to TRTC, Amazon IVS migration.
Skill inputs
| Input | Description | How it is obtained |
|---|---|---|
| Project code path | Root directory of the project to migrate | You provide it |
| Source vendor + version | Amazon IVS or Agora | Auto-detected by the scan, no confirmation needed |
| Migration target | trtc or atomicxcore | Must be specified explicitly; if unstated, the system asks interactively to confirm the migration direction |
| Target SDK version | Defaults to the latest online release; uses your pinned version if you specify one | Optional |
| Platform | iOS or Android | Auto-detected |
| Output language | zh or en | Auto-detected (inferred from the language of your request) |
Deliverables
Two documents are produced under <project-root>/.rtc-migration/ (the only deliverables):
usage-scan.md— discovery layer, answers "where is the source SDK used"migration-analysis.md— analysis layer, answers "what must change and how"
Tip: consider adding
.rtc-migration/to the project's.gitignoreso generated output does not affect your Git workflow.
Limitations & safety notes
| Item | Description |
|---|---|
| APIs may change | The skill confirms against official docs, but re-review results before applying them |
| No silent skips | Every non-migratable item is listed explicitly in the guide (🔴 + alternative) |
| No half-product delivery | The analysis document must pass the deliverable gate before handover |
| No customer code cached | Scanning is fully local; customer source and scan results are written only to the project-local .rtc-migration/, never to any remote cache |
| No customer code uploaded | Customer code, file contents, and scan results are never sent to any server — see "Data privacy & code security" above |
FAQ
Q1: The scan fails with "SDK artifacts not found / empty type inventory"?
The project has not been synced. On Android, run Sync Project with Gradle Files; on iOS, run pod install; then rescan.
Q2: The scanner complains that Node is missing or below 18? The scanner runs on Node.js (≥ 18). Install or upgrade Node from https://nodejs.org and retry. Nothing else needs installing (the engine and grammars are bundled).
Q3: Can I pin a specific target SDK version instead of the latest?
The default is the latest official release (trtc and atomicxcore each resolve their own latest). To lock a version, state it explicitly when triggering, e.g. "use TRTC x.x.x" or "use AtomicXCore x.x.x".
Q4: Does the skill modify my project code? No. This release produces a migration guide document only; all changes must be applied by you.
Q5: I use Cursor / Claude Code — will it work?
Yes. The scripts do not depend on any specific AI tool, and SKILL.md is a standard Markdown instruction document; configure it per your tool's integration mechanism.
