自動化更新 Claude Projects 知識庫:完整設定指南
透過 Playwright、Claude in Chrome、或 Claude Cowork 自動上傳/更新 Claude Projects 的知識檔案
背景:為什麼需要這個?
Claude Projects 目前沒有提供 API 來直接上傳或管理知識庫檔案。唯一的方式是透過 claude.ai 的網頁介面手動操作。但對於像 Tenten 這樣需要頻繁更新多個 Project(ALUXE、JOY COLORi、KGI Life 等)的團隊來說,手動操作不切實際。
解決方案:用瀏覽器自動化來模擬人類操作。
方案總覽
| 方案 | 難度 | 適合場景 | 需要的東西 |
|---|---|---|---|
| A. Playwright 腳本 | 排程自動化、CI/CD 整合 | Node.js + 已登入的 Chrome session | |
| B. 遠端 Chrome + Claude in Chrome | 已有跑 Claude 帳號的伺服器 | Mac Mini / 任何有 Chrome 的伺服器 | |
| C. Claude Cowork + Plugin | 桌面操作、低頻率更新 | Claude Desktop App(macOS / Windows) | |
| D. Cowork 排程任務 | 定時自動執行 | Claude Desktop App + Paid Plan |
方案 A:Playwright 自動化腳本
這是什麼?
用 Playwright(微軟的瀏覽器自動化框架)寫腳本,模擬登入 claude.ai → 進入 Project → 上傳檔案。可以在任何伺服器上跑,配合 cron 或 n8n 做排程。
第一步:安裝環境
# 在你的伺服器上(Mac Mini、VPS、或本機)
mkdir claude-project-uploader && cd claude-project-uploader
npm init -y
npm install playwright
npx playwright install chromium
第二步:手動登入一次,儲存 Session
這是最關鍵的步驟——你需要先手動登入 claude.ai,讓 Playwright 記住你的登入狀態。
# 啟動互動式瀏覽器,手動登入 claude.ai
npx playwright codegen --save-storage=claude-auth.json https://claude.ai
這會打開一個 Chromium 視窗:
- 正常登入你的 Claude 帳號(Google OAuth 或 Email)
- 確認你已經進入 claude.ai 主畫面
- 關閉視窗
此時 claude-auth.json 已儲存你的完整 session(cookies + localStorage)。
注意:Session 會過期。建議每 1-2 週重新跑一次這個步驟,或在腳本中加入「偵測登入頁面 → 重新認證」的邏輯。
第三步:建立上傳腳本
// upload-to-claude-project.js
const { chromium } = require('playwright');
const path = require('path');
async function uploadToProject({
projectUrl, // 例如 https://claude.ai/project/abc123
filePaths, // 要上傳的檔案路徑陣列
authFile = 'claude-auth.json',
deleteOld = false, // 是否先刪除舊檔案
oldFileName = null // 要刪除的舊檔案名稱
}) {
const browser = await chromium.launch({
headless: true, // 伺服器上用 headless,本機除錯改 false
});
const context = await browser.newContext({
storageState: authFile
});
const page = await context.newPage();
try {
// 1. 前往 Project 頁面
console.log(`正在前往 Project: ${projectUrl}`);
await page.goto(projectUrl, { waitUntil: 'networkidle' });
await page.waitForTimeout(3000);
// 2. 檢查是否需要重新登入
if (page.url().includes('/login')) {
throw new Error('Session 過期,請重新執行 codegen 登入');
}
// 3. 如果需要,先刪除舊檔案
if (deleteOld && oldFileName) {
console.log(`正在刪除舊檔案: ${oldFileName}`);
// 找到檔案名稱元素並點擊刪除
const fileItem = page.locator(`text="${oldFileName}"`).first();
if (await fileItem.isVisible()) {
await fileItem.hover();
// 點擊檔案旁邊的「...」選單
const menuButton = fileItem.locator('..').locator('button').last();
await menuButton.click();
await page.click('text=Delete');
await page.click('text=Confirm'); // 確認刪除
await page.waitForTimeout(2000);
console.log(`已刪除: ${oldFileName}`);
}
}
// 4. 上傳新檔案
console.log('正在上傳檔案...');
// 點擊「Add content」按鈕
await page.click('button:has-text("Add content")');
await page.waitForTimeout(1000);
// 選擇「Upload files」
await page.click('text=Upload files');
await page.waitForTimeout(1000);
// 處理檔案上傳對話框
const fileInput = page.locator('input[type="file"]');
await fileInput.setInputFiles(filePaths);
// 等待上傳完成
await page.waitForTimeout(5000);
console.log('✅ 上傳完成!');
// 5. 儲存更新後的 session
await context.storageState({ path: authFile });
console.log('Session 已更新');
} catch (error) {
console.error('❌ 錯誤:', error.message);
// 截圖以便除錯
await page.screenshot({ path: 'error-screenshot.png' });
} finally {
await browser.close();
}
}
// 使用範例
uploadToProject({
projectUrl: 'https://claude.ai/project/YOUR_PROJECT_ID',
filePaths: [
'/path/to/updated-system-prompt.md',
'/path/to/knowledge-base.md'
],
deleteOld: true,
oldFileName: 'system-prompt-v3.md'
});
第四步:配合 n8n 排程
在 n8n 中建立 Workflow:
觸發器(Cron / Webhook)
↓
Code Node: 產生新的知識檔案(呼叫 AI API)
↓
Write File Node: 儲存到 /tmp/updated-knowledge.md
↓
Execute Command Node:
node /opt/scripts/upload-to-claude-project.js \
--project "https://claude.ai/project/XXX" \
--file "/tmp/updated-knowledge.md"
方案 B:遠端 Chrome + Claude in Chrome
這是什麼?
如果你已經有一台伺服器(例如 Mac Mini M4)跑著你的 Claude 帳號,且安裝了 Claude in Chrome 擴充功能——你可以利用這台機器作為「瀏覽器自動化中繼站」。
架構圖
你的工作機 / n8n Mac Mini(遠端伺服器)
┌──────────────────┐ ┌─────────────────────────────┐
│ 觸發器 │── HTTP ──→ │ Chrome(已登入 Claude) │
│ - n8n webhook │ │ + Claude in Chrome Extension │
│ - cron job │ │ + Remote Debugging Port 9222 │
│ - OpenClaw │ │ │
└──────────────────┘ └─────────────────────────────┘
第一步:在遠端伺服器上啟動 Chrome(帶 Remote Debugging)
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/chrome-claude-profile" \
--no-first-run &
# Linux
google-chrome \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/chrome-claude-profile" \
--no-first-run &
重要:用
--user-data-dir指定專用的 Chrome Profile,這樣你的 Claude 登入狀態會一直保持。
第二步:確認 Chrome 可遠端連線
# 在遠端伺服器上測試
curl http://localhost:9222/json/version
# 從你的工作機測試(確保防火牆有開 9222)
curl http://YOUR_SERVER_IP:9222/json/version
第三步:從任何機器連線操控
// remote-upload.js
const { chromium } = require('playwright');
async function remoteUpload() {
// 連接到遠端 Chrome 實例
const browser = await chromium.connectOverCDP(
'http://YOUR_MAC_MINI_IP:9222'
);
// 取得已有的 context(已登入的 session)
const contexts = browser.contexts();
const page = await contexts[0].newPage();
// 接下來跟方案 A 一樣操作
await page.goto('https://claude.ai/project/YOUR_PROJECT_ID');
// ... 上傳邏輯 ...
await page.close();
// 注意:不要 browser.close(),這會關掉遠端的 Chrome
}
第四步:用 Claude in Chrome 直接操作
另一個更簡單的方式——直接在遠端機器的 Claude in Chrome 擴充功能裡貼上指令:
前往我的 Claude Project:https://claude.ai/project/xxxxx
執行以下步驟:
1. 進入 Project Knowledge 區域
2. 刪除名為「system-prompt-v3.md」的舊檔案
3. 點擊「Add content」→「Upload files」
4. 從我的桌面上傳「system-prompt-v4.md」
5. 確認上傳完成後回報
Claude in Chrome 會利用已經登入的 Chrome session 來執行這些操作。
方案 C:Claude Cowork Plugin
這是什麼?
Claude Cowork 是 Anthropic 在 2026 年初推出的桌面 Agent 工具。它可以直接存取你電腦上的檔案、搭配 Claude in Chrome 操作瀏覽器。你可以建立一個自訂 Plugin 來自動化 Claude Projects 的檔案更新。
重要前提
- 需要 Claude Desktop App(macOS 或 Windows)
- 需要付費方案(Pro $20/月 以上)
- Cowork 目前尚不支援直接操作 Projects(官方表示尚未整合)
- 但可以透過 Claude in Chrome connector 來操作 claude.ai 網頁介面
第一步:啟用 Cowork
- 下載/更新 Claude Desktop App:claude.com/download
- 打開 App → 點擊上方的「Cowork」分頁
- 在 Settings → Cowork 中設定 Global Instructions
第二步:啟用 Claude in Chrome Connector
- 在 Chrome 安裝 Claude in Chrome 擴充功能
- 在 Claude Desktop → Settings → Connectors 中啟用「Claude in Chrome」
- 這讓 Cowork 可以操控你的瀏覽器
第三步:建立自訂 Plugin
在你的電腦上建立以下資料夾結構:
claude-project-updater/
├── .claude-plugin/
│ └── plugin.json
├── commands/
│ └── update-project.md
└── skills/
└── project-upload.md
.claude-plugin/plugin.json(Plugin 設定檔):
{
"name": "claude-project-updater",
"description": "自動更新 Claude Projects 知識庫檔案",
"version": "1.0.0",
"author": "Tenten"
}
commands/update-project.md(Slash 指令):
---
description: 更新指定 Claude Project 的知識庫檔案
arguments:
- name: project_name
description: "Project 名稱(例如:ALUXE、JOY-COLORi、KGI-Life)"
required: true
- name: file_path
description: "要上傳的檔案路徑"
required: true
- name: old_file_name
description: "要替換的舊檔案名稱(可選)"
required: false
---
# 更新 Claude Project 知識庫
你需要透過 Claude in Chrome 來完成以下任務:
## Project URL 對照表
- ALUXE: https://claude.ai/project/[ALUXE_PROJECT_ID]
- JOY-COLORi: https://claude.ai/project/[JOYCOLORI_PROJECT_ID]
- KGI-Life: https://claude.ai/project/[KGI_PROJECT_ID]
- Neteon: https://claude.ai/project/[NETEON_PROJECT_ID]
- SD-Health: https://claude.ai/project/[SDHEALTH_PROJECT_ID]
## 執行步驟
1. 根據 `$ARGUMENTS.project_name` 找到對應的 Project URL
2. 使用 Claude in Chrome 瀏覽器工具前往該 URL
3. 等待頁面載入完成
4. 如果提供了 `$ARGUMENTS.old_file_name`:
a. 在 Project Knowledge 區域找到該檔案
b. 點擊檔案旁的選單 → 刪除
c. 確認刪除
5. 點擊「Add content」→「Upload files」
6. 上傳 `$ARGUMENTS.file_path` 指定的檔案
7. 等待上傳完成
8. 回報結果:成功/失敗 + 截圖
## 錯誤處理
- 如果頁面導向登入頁 → 提醒使用者需要先登入
- 如果找不到舊檔案 → 跳過刪除步驟,直接上傳
- 如果上傳失敗 → 截圖並回報錯誤訊息
skills/project-upload.md(自動觸發的技能):
---
description: 當使用者提到更新 Claude Project 或上傳知識庫時自動啟用
globs:
- "**/*system-prompt*"
- "**/*knowledge*"
- "**/*project-update*"
---
# Claude Project 知識庫管理技能
當偵測到使用者想要更新 Claude Project 的知識庫檔案時,使用此技能。
## 核心原則
- 永遠先確認目標 Project 名稱
- 上傳前先備份舊檔案(複製到本地 backup 資料夾)
- 使用 Claude in Chrome 來操作 claude.ai 網頁
- 操作完成後截圖確認
## 支援的檔案格式
- .md(Markdown)
- .txt(純文字)
- .pdf(PDF 文件)
- .csv(資料檔)
## 注意事項
- Claude Projects 沒有「取代」功能,必須先刪除再上傳
- 單次最多上傳 5 個檔案
- 檔案大小限制請參考 claude.ai 的規定
第四步:安裝 Plugin
在 Cowork 中安裝你的自訂 Plugin:
- 打開 Claude Desktop → 切換到 Cowork 模式
- 點擊左側欄的「Customize」
- 點擊「Browse plugins」→「Upload custom plugin」
- 選擇
claude-project-updater/資料夾 - 安裝完成
第五步:使用
在 Cowork 中輸入:
/update-project ALUXE ~/Documents/aluxe-system-prompt-v4.md system-prompt-v3.md
或用自然語言:
幫我把桌面上的「aluxe-knowledge-2026-03.md」上傳到 ALUXE 的 Claude Project,
替換掉舊的「aluxe-knowledge-2026-02.md」
方案 D:Cowork 排程任務(Scheduled Tasks)
這是什麼?
Cowork 最近推出了排程任務功能。你可以設定一個任務,讓 Claude 每天/每週自動執行——例如自動檢查某個資料夾是否有新的知識檔案,有的話就自動上傳到 Claude Projects。
設定方式
- 在 Cowork 中開始一個新任務
- 輸入
/schedule - Claude 會問你幾個問題:
- 任務描述:「檢查 ~/claude-projects-sync/ 資料夾,如果有新的 .md 檔案,使用 Claude in Chrome 上傳到對應的 Claude Project」
- 執行頻率:Daily / Weekly / 自訂
- 執行時間:例如每天早上 9:00
排程任務範例 Prompt
我想設定一個每日排程任務:
1. 掃描 ~/claude-projects-sync/ 資料夾
2. 資料夾結構如下:
- ~/claude-projects-sync/aluxe/ → ALUXE Project
- ~/claude-projects-sync/joycolori/ → JOY COLORi Project
- ~/claude-projects-sync/kgi-life/ → KGI Life Project
3. 如果某個子資料夾中有 .md 或 .txt 檔案:
a. 用 Claude in Chrome 前往對應的 Claude Project
b. 刪除 Project 中同名的舊檔案
c. 上傳新檔案
d. 上傳成功後,將檔案移到 ~/claude-projects-sync/uploaded/ 備份
4. 產生一份簡短的更新報告,存到 ~/claude-projects-sync/logs/
執行頻率:每個工作日早上 9:00
限制:排程任務只在 Claude Desktop App 開啟且電腦未休眠時才會執行。
實務建議
Session 管理(最重要的問題)
不管用哪個方案,最大的挑戰是 claude.ai 的 session 會過期。建議:
- Playwright 方案:在腳本中加入 session 過期偵測,發現過期時發 Slack/Telegram 通知你手動重新登入
- 遠端 Chrome 方案:Chrome Profile 的 session 通常比 cookie 檔更持久,只要不手動登出就會一直有效
- Cowork 方案:Cowork 使用你的 Claude Desktop App 登入狀態,只要 App 保持登入就沒問題
建議的整合架構(for Tenten)
n8n / OpenClaw 觸發
↓
產生更新的知識檔案
(例如:更新後的 ALUXE 商品資料、KGI 最新 FAQ)
↓
儲存到 ~/claude-projects-sync/{project-name}/
↓
┌─ 方案 A:Playwright 腳本自動上傳(推薦用於伺服器)
│
├─ 方案 C/D:Cowork 排程任務自動偵測並上傳(推薦用於桌面)
│
└─ 方案 B:遠端 Chrome CDP 連線上傳(推薦用於已有伺服器的情境)
哪個方案最適合你?
| 你的情境 | 推薦方案 |
|---|---|
| Mac Mini M4 伺服器已跑 Chrome + Claude 帳號 | 方案 B(遠端 Chrome + CDP) |
| 想要最簡單、不寫程式碼 | 方案 C + D(Cowork Plugin + 排程) |
| 需要跟 n8n / CI/CD 整合 | 方案 A(Playwright 腳本) |
| 低頻率、手動觸發就好 | 方案 C(Cowork 手動指令) |
| 全自動、無人值守 | 方案 A + B 組合 |
快速上手(最快 10 分鐘搞定)
如果你只是想最快開始用,推薦這個路徑:
- 打開 Claude Desktop App → 切換到 Cowork
- 確保已啟用 Claude in Chrome connector
- 直接在 Cowork 中輸入:
幫我把這個檔案上傳到我的 Claude Project。
Project URL: https://claude.ai/project/YOUR_ID
檔案位置: ~/Desktop/updated-knowledge.md
要替換的舊檔案: knowledge-v2.md
請用 Claude in Chrome 瀏覽器工具來操作 claude.ai 網頁完成這件事。
就這麼簡單。Cowork 會透過 Chrome 擴充功能幫你完成整個操作。
附錄:完整 Playwright 腳本(含錯誤處理)
如果你要走方案 A 的完整版本,我可以在下一輪對話中提供包含以下功能的完整腳本:
- Session 過期自動偵測
- Slack/Telegram 通知
- 多 Project 批次上傳
- 上傳前/後截圖記錄
- n8n webhook 整合
- retry 機制
需要的話請告訴我!