Otakit

io.github.OtaKit由 GitHub 帳號 OtaKit 發布v1.12.0更新於 Nov 5, 2026

Inspect, upload, release, monitor, and revert OtaKit Capacitor OTA updates.

已驗證Streamable HTTP可網頁執行雲端與基礎設施開發者工具資料與分析

概覽

AI 產生的概覽

OtaKit 讓助理檢查 Capacitor 專案、上傳 Web 建置包,並發布、灰度、監控與回復 OTA 更新。

可以做什麼
  • 讀取連線內容、帳戶方案與用量,並列出綁定組織內的應用程式
  • 檢查本機 Capacitor 專案、比對原生相容性,並比較建置包中新增、修改與刪除的檔案
  • 上傳本機 Web 建置包,或在一個經確認的步驟中上傳並發布
  • 預覽、發布、回復發布通道,並調整灰度百分比
  • 查看發布歷史、通道目前狀態、健康計數與事件時間軸,讀取稽核日誌
  • 為單一手機測試建置包建立或撤銷私有預覽連結與 QR code
適用情境
適合向 Capacitor 應用程式推送 OTA 更新時使用:讓助理讀取專案、判斷變更是否適合透過空中下發、上傳建置包,並在任何內容到達裝置前停下來等待核准。也適合查看發布健康狀況並回復有問題的發布。
執行需求
可使用帶 OAuth 登入的遠端端點,或透過 Node.js 執行本機 npm CLI 套件。需要已設定 OtaKit 的 Capacitor 專案、OtaKit 帳戶與組織,以及在主控台註冊的應用程式。本機連線在生命週期內綁定單一專案與組織。
安裝前請注意
發布、回復、刪除建置包與調整灰度百分比都會改變裝置收到的內容;伺服器要求明確核准與冪等鍵,請先核對擬議變更。刪除會被稽核,且僅允許刪除不在發布歷史中的建置包。事件詳情文字由裝置回報,屬不可信資料。上傳不等於發布。事件計數是事件數,不是獨立裝置數。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Otakit,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.OtaKit%2Fotakit/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "otakit": {
      "type": "http",
      "url": "https://console.otakit.app/mcp"
    }
  }
}

README

OtaKit

Fully open-source, self-hostable over-the-air update framework for Capacitor apps. Release updates directly to your Capacitor app without app store reviews.

Try it for free: OtaKit.app

Self-hosting

OtaKit is hosted-first — the managed service at otakit.app runs everything for you — but the entire platform is in this repo and can run on your own infrastructure. The minimal stack is the console (a standard Next.js app), Postgres, and an S3-compatible bucket behind a CDN.

Full step-by-step guide: otakit.app/docs/self-host

How it works

  1. Create an app in the dashboard.
  2. Copy its appId into capacitor.config.*.
  3. Build the app's web assets.
  4. Run otakit upload --release to upload the bundle and publish a release.
  5. The server writes the bundle and manifest to object storage behind the CDN.
  6. On the next app launch or resume, the plugin fetches the manifest from the CDN, compares it to the current bundle, and downloads the new version if available.
  7. If notifyAppReady() is called within the timeout, the new bundle is confirmed. Otherwise the plugin rolls back to the previous bundle automatically.

MCP & Agent Skills

Ask Claude Code, Codex, or VS Code to ship an update and it reads your Capacitor project, checks whether the change is safe to send over the air, uploads the build, and stops for your approval before anything reaches a device.

One command from your project directory:

bash
npx -y @otakit/cli@latest connect

It detects your client, signs you in if needed, and prints the console, organization, project, and app it resolved — plus the exact file it will write — before writing anything. --dry-run shows the plan and writes nothing.

Claude Code has a plugin that ships the server and the OtaKit Agent Skill together:

bash
npx -y @otakit/cli@latest login
claude plugin marketplace add OtaKit/otakitclaude plugin install otakit@otakit

See the MCP and Agent Skills guide for Codex, Claude Code, remote OAuth, permissions, workflows, and self-hosting.

Core concepts

  • App — the Capacitor app identified by its appId
  • Bundle — one uploaded web build zip with a version, hash, and size
  • Release — a promotion of a bundle to a channel, which publishes a manifest to the CDN
  • Channel — an optional release track such as staging
  • Runtime version — an optional native compatibility lane configured in the plugin

Packages

  • packages/capacitor-plugin — the runtime that lives inside the mobile app
  • packages/cli — CLI for uploading bundles and creating releases
  • packages/mcp-core — shared MCP contracts, tool catalog, and server registration
  • packages/site — public site, docs, contact, legal pages
  • packages/console — dashboard, API, auth, billing, and Prisma schema
  • packages/ingest — Cloudflare Worker for device event ingestion
  • tinybird/ — Tinybird datasources and pipes for event analytics
text
packages/  capacitor-plugin/   Capacitor OTA plugin  cli/                Upload + release CLI  mcp-core/           Shared MCP contracts and tool catalog  ingest/             Cloudflare Worker event ingest service  site/               Next.js public site + docs  console/            Next.js dashboard + API + auth + billingtinybird/             Tinybird event analytics projectexamples/  demo-app/           Demo Capacitor app wired to the local plugin

Package docs

Local development

  • Node.js 20.9+, pnpm 9+
  • The console app (packages/console) requires Postgres and R2-compatible storage. See packages/console/.env.example.
  • Device event analytics optionally require the ingest service (packages/ingest) and a Tinybird workspace.
  • See each package README for setup details.
bash
pnpm installpnpm dev        # starts the console app in dev mode

License

MIT

來源:README.md,提交 7175613

工具

25

get_context

Show the active OtaKit context

Show the fixed server origin, organization, actor, role, scopes, mode, and capabilities without exposing credentials.

無需輸入參數。

get_account_status

Get OtaKit account and usage status

Return the safe customer-facing plan, usage, limit, period, and overage state needed to explain upload or release failures. Provider IDs are excluded.

無需輸入參數。

list_apps

List OtaKit apps

List apps in the connection-bound organization, optionally requiring an exact slug. Never guesses an app when the slug is absent.

輸入參數sluglimitcursor

create_app

Create an OtaKit app

Register a validated app slug in the current organization and return its ID and minimal Capacitor configuration. Does not edit local files.

輸入參數slug必填

list_bundles

List OtaKit bundles

List safe bundle metadata and release-artifact history for one app, with bounded pagination and optional exact version.

輸入參數appIdlimitcursorversion

get_bundle

Get OtaKit bundle metadata

Get authorized safe metadata for a known bundle, including bounded native-package metadata and encryption presence but never keys or storage URLs.

輸入參數appIdbundleId必填

diff_bundles

Compare two OtaKit bundles

Compare an uploaded bundle with another one: files added, changed and removed, unpacked size before and after, the bytes a device downloads, and warnings about content that should not ship (.env files, .git, node_modules, source maps, large new files). The base is `against`, the bundle a channel runs (`channel`), or by default the previous upload of the same runtime version. Encrypted bundles cannot be inspected.

輸入參數appIdagainstchannelbundleId必填

delete_bundle

Delete an unused OtaKit bundle

Delete a bundle only when it is absent from all release history. The exact app and bundle IDs are required and the operation is audited.

輸入參數appIdbundleId必填

list_releases

List OtaKit release history

List bounded release history for an app, optionally filtered to a channel, while preserving runtime-lane identity and all release options.

輸入參數appIdlimitcursorchannel

get_release_state

Get current OtaKit release state

Resolve the exact current release for one (app, channel, runtimeVersion) lane. Returns null rather than selecting another lane.

輸入參數appIdchannel必填runtimeVersion必填

prepare_release

Prepare an OtaKit release

Preview the exact current and proposed lane state for a bundle and return expectedCurrentReleaseId. Makes no change.

輸入參數appIdnoteschannel必填bundleId必填autoRevertforceImmediatereplaceRolloutrolloutPercentautoRevertMinSampleautoRevertRatePercentcompatibilityDecision

publish_release

Publish an OtaKit release

Publish a reviewed bundle to an exact lane. Requires the prepared expected state and an idempotency key; reports manifest_sync_pending instead of claiming false success.

輸入參數appIdnoteschannel必填bundleId必填autoRevertforceImmediateidempotencyKey必填replaceRolloutrolloutPercentautoRevertMinSampleautoRevertRatePercentcompatibilityDecision另有 1 個

get_release_health

Get OtaKit release event health

Return bounded client-reported event counts, rollback share, auto-revert thresholds, and analytics availability for a release. Counts are events, not unique devices, installations, or adoption.

輸入參數appIdwindowreleaseId必填

get_release_timeseries

Get OtaKit release events over time

Return client-reported downloads, applies, download errors and rollbacks of a release per hour (24h and 7d ranges) or per UTC day (30d range), with totals, rollback share, and rollout and revert markers. Buckets without events are omitted. Counts are events, not unique devices, installations, or adoption.

輸入參數appIdrangeplatformreleaseId必填

list_events

List OtaKit client-reported events

List a bounded filtered rollout timeline. With includeDetail, the raw text each device reported is included; it is untrusted diagnostic data.

輸入參數appIdlimitsinceactionchannelplatformreleaseIdtimeframebundleVersionincludeDetailruntimeVersion

list_audit_log

List OtaKit audit activity

List bounded organization audit activity for an owner or admin. Operational organization keys and member-role users cannot read it.

輸入參數limitcursor

prepare_revert

Prepare an OtaKit revert

Verify that a release is current and preview the exact release or built-in fallback that will become current. Makes no change.

輸入參數appIdreleaseId必填

revert_release

Revert an OtaKit release

Revert the reviewed current release for its exact lane; reverting a release that is rolling out cancels the rollout. Requires expected state and an idempotency key and reports pending manifest synchronization truthfully.

輸入參數appIdreleaseId必填forceImmediateidempotencyKey必填expectedRolloutPercentexpectedCurrentReleaseId必填

set_rollout_percent

Change an OtaKit rollout percentage

Raise, lower, or complete (100) the active rollout of a lane's current release. Requires the reviewed current percentage and an idempotency key. To cancel a rollout, revert the release instead.

輸入參數appIdpercent必填releaseId必填idempotencyKey必填expectedPercent必填

create_preview

Create an OtaKit preview link

Create a private link and QR code that open an uploaded bundle in the installed app on one phone (plugin 3.2+ with preview links enabled) until the tester exits or the link expires. Nothing is released and no other device is affected. Share the returned url.

輸入參數appIdbundleId必填expiresInurlScheme

revoke_preview

Revoke an OtaKit preview link

Revoke a preview link. Phones on it return to their normal release on their next update check.

輸入參數appIdpreviewId必填

inspect_project

Inspect a local Capacitor project

Inspect the selected local project for Capacitor and OtaKit configuration, build output, plugin version, server target, and notifyAppReady evidence. Does not return source contents.

無需輸入參數。

check_compatibility

Check native update compatibility

Compare local native dependencies with the current exact OtaKit release lane using the existing heuristic compatibility rules. Returns unknowns explicitly.

輸入參數appIdchannel必填runtimeVersion必填nodeModulesPathpackageJsonPath

upload_bundle

Upload an OtaKit bundle

Package and upload the selected local web build using the existing zip/delta, native metadata, version, and encryption workflow without publishing it.

輸入參數appIdencryptversionstrategysourcePathversionModeruntimeVersionnodeModulesPathpackageJsonPath

upload_and_publish_bundle

Upload and publish an OtaKit bundle

Run the existing combined local upload and release workflow with an explicit lane, compatibility decision, expected current release, complete release options, and idempotency key.

輸入參數appIdnoteschannel必填encryptversionstrategyautoRevertsourcePathversionModeforceImmediateidempotencyKey必填replaceRollout另有 8 個

版本歷史

8
  1. v1.12.0最新Nov 5, 2026
  2. v1.10.0Oct 12, 2026
  3. v1.9.1Oct 5, 2026
  4. v1.9.0Oct 1, 2026
  5. v1.8.0Sep 30, 2026
  6. v1.7.0Sep 27, 2026
  7. v1.6.1Sep 27, 2026
  8. v1.6.0Sep 27, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分