VS Code 官方推 vscode-pets:2.4M 安裝數背後的 extension 供應鏈風險
VS Code 官方這天推薦 vscode-pets,這個 Anthony Shaw 寫的虛擬寵物 extension 已累積 2,433,175 次安裝、4.1k GitHub stars。但一個被數百萬開發者信任的 extension 就是最高價值的供應鏈攻擊目標。
目錄+
一隻在編輯器裡走來走去的貓
VS Code 官方帳號在 2026-04-23 推了一段影片,介紹的是一個已經存在很多年的 extension:vscode-pets。作者是 Anthony Shaw(tonybaloney),Marketplace publisher id 是 tonybaloney.vscode-pets。你裝上之後,打開 Command Palette 輸入 vscode-pets.start,就會跑出一個「Start pet coding session」的指令,然後一隻像素風格的貓、狗、蛇、橡皮鴨、甚至經典的 Clippy,就會出現在你的編輯器一角走來走去。
這不是什麼 2026 的新玩具。這是一個老牌專案,VS Code 官方只是在這天把它重新推到大家眼前。你可以把它當成官方對社群小工具的一次日常 shoutout,沒必要腦補「VS Code 在暗示什麼趨勢」。
真實的數字
Marketplace 上的公開資料(2026-04 截圖):
- 安裝數:2,433,175(2.43M+)
- GitHub stars:4.1k
- Forks:516
- 最新版本:1.35.0
- 評論數:122 則
在 VS Code 這個生態裡,2.43M 安裝的「非生產力」extension 是非常少見的。Prettier、ESLint 這種工具性 extension 有它們的強剛需,但 vscode-pets 純粹是給你一個在 deadline 之前還能笑一下的小東西。能到這個量級,說明它真的戳到了全球開發者某個共通的情緒需求。
為什麼一隻像素貓能到 2.4M
功能面其實很單純:
- 可以同時養多隻寵物
- 可以幫每隻寵物命名
- 可以換背景(天空、森林、海灘等等)
- 可以對寵物丟球、跟牠玩
- 支援 Crowdin 社群翻譯,多語系
- 動物種類橫跨現代貓狗、蛇、橡皮鴨,到已經退役的 Clippy
它的魅力不在功能堆疊,而在節奏。寫程式的人大部分時間都在盯著單色文字,突然有一個不打擾你、不通知你、不要求你交互的小生物在螢幕邊緣走動,這種「活著但不打擾」的陪伴感,比任何生產力 gamification 都更持久。這也是為什麼 vscode-pets 沒走付費路線、沒加社群功能、沒做 AI 對話,但它比很多做得很努力的生產力 extension 還紅。
順帶一提,這裡不要拿「提升生產力 X%」去包裝它。目前沒有任何公開研究能證明一隻虛擬寵物會讓你多寫幾行 code。它的定位就是情緒性的陪伴工具,夠了。
降溫視角:2.4M 安裝也是 2.4M 個攻擊面
這才是這篇文章真正想寫的部分。
VS Code extension 本質上是跑在你本機的 Node.js 程式,而且不在瀏覽器沙盒裡。它可以讀你的檔案、讀環境變數、發 HTTP 請求、呼叫 child process。一個有 2.43M 安裝的 extension,就是一個有 2.43M 台開發者機器的潛在入口。開發者機器上通常有什麼?GitHub token、AWS credentials、公司私有 repo 的 clone、.env 裡的資料庫密碼、SSH key。
2025 年 Medium 上已經出現過以 vscode-pets 為目標的供應鏈攻擊 PoC 文章,示範「如何 backdoor vscode-pets」這條攻擊路徑。那篇文章的結論不是「vscode-pets 不安全」——tonybaloney 是 verified publisher,Anthony Shaw 本人也是 Python 社群裡長期在做 security work 的人——而是要說明:高安裝量 extension 本身就是攻擊者的高價值目標。
攻擊可以從很多方向進來:
- publisher 帳號被盜,推一版含惡意 payload 的新 release
- maintainer 倦怠後把 repo 轉給「熱心貢獻者」,對方偷偷加東西
- 相依的 npm 套件被 typosquat 或 account takeover
- GitHub Actions 發版流程被污染
這些都不是假設。npm、PyPI、VS Code Marketplace 都發生過。
那該怎麼辦
實務上的 extension 安全建議:
- 只裝 verified publisher 的 extension。VS Code Marketplace 在 publisher 名字旁邊會有藍勾,不要忽略。
- 定期 audit 你的 extension 清單。打開 VS Code 看一下「Installed」分頁,把三個月沒用到的通通 uninstall。每多一個 extension,你的攻擊面就多一份。
- 企業環境要做 allow-list。用
extensions.allowedworkspace setting 或 GPO 限制,不要讓員工在 dev 機器上亂裝。 - 看 release note。vscode-pets 的 CHANGELOG 是公開的,突然跳版本或開始要奇怪權限就該警覺。
- 機敏工作用乾淨環境。接觸生產憑證、簽章金鑰的機器,extension 數量壓到最低,不要跟「日常 coding + 看貓」同一個 profile。
結語:這隻貓不是問題
vscode-pets 本身沒問題。Anthony Shaw 是這個社群裡信譽很好的 maintainer,verified publisher、公開 repo、版本號清楚、CHANGELOG 寫得明白。你今天裝它,九成九不會出事。
但 VS Code 官方推這支影片的這個當下,比起趕快去裝一隻貓,更值得做的事情是:打開你的 VS Code extension 面板,看一下那裡躺著幾個你已經完全忘記當初為什麼裝的 extension。那些才是問題。
那隻像素貓不是你的風險。你的 extension 清單才是。