- 共兩個事件:
command_executed與command_failed - 每個事件三個屬性:
command、success、version - 可用環境變數、CLI 旗標或永久同意指令退出
- Extension.js 會取樣並限額,確保使用量遠在 PostHog(開源分析工具)的免費額度內
Extension.js 收集什麼
每次 CLI 執行最多送出其中一個事件:| 事件 | 取樣 | 屬性 |
|---|---|---|
command_executed | 20%(可調整,見下) | command、success: true、version |
command_failed | 100%(Extension.js 一定回報失敗) | command、success: false、version |
os(darwin/linux/win32)、arch、node_major、is_ci。其他都沒有。
流量控制
三個獨立的控制機制,限制離開機器的資料量:- 取樣: Extension.js 預設以 20% 對
command_executed取樣。可用EXTENSION_TELEMETRY_SAMPLE_RATE(0.0–1.0)覆寫。失敗事件永不取樣。 - 每次執行上限: 每個 CLI 程序最多 3 個事件。可用
EXTENSION_TELEMETRY_MAX_EVENTS覆寫。 - 去抖動(重複抑制): 60 秒內重複的
(event, command, success)元組會被 Extension.js 丟棄。可用EXTENSION_TELEMETRY_DEBOUNCE_MS覆寫。
Extension.js 永不收集什麼
Extension.js 的遙測約定明確排除以下內容:- 原始碼、manifest 內容、HTML 輸出或
package.json內容 - 儲存庫名稱、Git 遠端、GitHub 組織/使用者名稱、分支名稱、commit SHA 或預覽 URL
- 相依套件清單、權限清單,或自由格式的專案識別字串
- 環境變數值、檔案系統路徑或本機 URL
- 堆疊追蹤、錯誤訊息或自由文字的錯誤名稱
- IP 位址(Extension.js 在每個 payload 上將
$ip設為null)
退出方式
三種停用遙測的方法,依優先順序列出:$XDG_CONFIG_HOME/extensionjs/telemetry/consent(或平台對應位置)。
預設行為
遙測採 opt-out。在首次未套用上述任何覆寫的執行中,Extension.js 會印出一行說明如何停用的通知,並紀錄enabled 同意標記,讓通知不再重複出現。
持續整合(CI)環境遵循相同規則。在 CI 環境設定 EXTENSION_TELEMETRY=0,即可全面停用遙測。
本地稽核紀錄
Extension.js 會把每個它考慮送出的事件(不論是否真的送出)附加到同意檔旁邊的events.jsonl。你可以隨時檢視,也可以放心刪除。
最佳實務
- 政策要求不送遙測時,在 CI 中使用
EXTENSION_TELEMETRY_DISABLED=1。 - 把隱私回歸視為產品回歸對待。
- 閱讀儲存庫層級的合約以取得確切的事件清單。
下一步
- 在 全域旗標 檢視
--no-telemetry與環境變數覆寫。 - 透過 build 與 dev 進行發佈與自動化流程。
- 閱讀儲存庫層級的
TELEMETRY.md合約以取得確切的事件清單。

