2007 Nokia 也能用 Claude?Claude S40 的 Java ME、TLS 橋接原理與安裝限制
Claude S40 讓 2007 Nokia 6300 成為 Claude 終端,但模型不在手機上執行。本文拆解 Java ME、Go Server、TLS 橋接與成本。
土耳其開發者 Emir Karşıyakalı 在 2026 年 9 月 27 日於 X 展示一支 2007 年 Nokia 6300:用實體鍵盤輸入問題,幾秒後在 240 × 320 螢幕看到 Claude 回答。貼文短時間累積超過百萬觀看,也讓不少人以為大型 AI 模型真的被「塞進」8 MB 記憶體的舊手機。
實際架構更巧妙,也更合理。Claude 沒有在 Nokia 本機執行。手機上安裝的是約 100 KB 的 Java ME App,訊息先送到使用者自己架設的 Go 伺服器,再由伺服器透過 Anthropic API 呼叫 Claude。模型運算仍在雲端,舊手機扮演輸入與顯示終端。
Java ME 是為早期手機和嵌入式裝置設計的 Java 平台。Go 是用來開發網路服務的程式語言。API 則是讓不同程式透過網路交換請求與結果的介面。
我的判斷是正面,但要把價值放對位置。Claude S40 並非邊緣 AI 效能突破,它是一個很好的相容性工程案例:如何用最小客戶端、自己的伺服器與私有憑證,讓無法連上現代網站的裝置使用現代服務。
Claude S40 是什麼?不是 Anthropic 或 Nokia 官方產品
Claude S40 是 Emir 公開在 GitHub 的 MIT 授權 side project,由 Nokia Series 40 的 Java ME App 和一個小型 Go Server 組成。作者清楚標示,它沒有獲得 Anthropic 或 Nokia 製作、認可或支援。
專案實際測試裝置是 Nokia 6300 RM-217,韌體版本 V06.60。其他支援 CLDC 1.1、MIDP 2.0、240 × 320 螢幕的 Series 40 手機可能可以使用,但官方 README 標示為未測試。
CLDC 和 MIDP 是早期 Java ME 裝置的執行規格,限制了可用 API、記憶體與畫面能力。Claude S40 的手機 JAR 約 100 KB,介面也針對方向鍵、數字鍵和小螢幕重新設計。
Claude 沒有跑在 Nokia 上:真正架構是三段式
整個流程可以拆成三段:
- Nokia 上的 Java ME App 收集鍵盤輸入並顯示回覆。
- 自架 Go Server 接收舊手機連線、保存聊天和管理裝置權限。
- Go Server 透過現代 HTTPS 呼叫 Anthropic Claude API,再把結果切成適合小螢幕的內容。
官方架構寫得很直接:Nokia 以 TLS 1.0 連到 claude-s40-server,Server 再用現代 HTTPS 連到 Claude API,SQLite 則保存聊天。SQLite 是小型資料庫,會和 Server 一起保存對話與釘選狀態。
因此,手機本身不下載模型權重,也不執行大型神經網路。8 MB 記憶體足以執行簡單 UI 與網路客戶端,真正的推論算力和知識仍來自雲端 Claude。

為什麼不能直接連 Claude?2007 年 TLS 擋住了
Nokia 6300 只支援 TLS 1.0、RSA key exchange,不會送出 SNI,而且手機內建的 root certificate store 大約停在 2008 年。TLS 是用來加密網路連線的協定。SNI 則讓伺服器知道使用者要連哪個網域,現代多網域 HTTPS 服務普遍依賴它。
現在的公開雲端與 API 通常拒絕 TLS 1.0 連線,Cloudflare 等平台也無法和這支手機完成握手。Claude S40 沒有降低 Claude API 的安全標準,而是加上一個自己控制的相容層。
使用者建立 private CA,也就是自己的憑證授權中心,再把 root certificate 手動安裝到 Nokia。Go Server 直接接受舊手機可用的 TLS 1.0 連線,另一側再用現代 HTTPS 呼叫 Anthropic。
這種設計讓過時加密只存在於手機到自架 Server 的一段。它仍有風險,因此 Server 必須由使用者控制,憑證指紋要人工比對,不能把 TLS 1.0 endpoint 當成一般公開服務使用。
100 KB 手機 App 能做什麼?
Claude S40 不只是單一聊天框。README 列出多項針對功能手機設計的操作:
- 對話泡泡、時間、輸入中秒數與段落清單排版。
- 長回答分段載入,按 0 取得下一段,不會再次呼叫 Claude。
- 閱讀模式可逐頁顯示完整行,並調整三種字體大小。
- 20 個快速 Prompt,包含搜尋、天氣、翻譯、摘要與改寫。
- 對訊息執行縮短、簡化、翻譯或追問,先放入編輯器,按 Send 才送出。
- 儲存回覆為文字檔,之後可離線閱讀。
- 產生行事曆或待辦表單,只有使用者按下 Save 才寫入手機。
- 英文與土耳其文介面、亮暗主題、背光與震動。
新聞、天氣和匯率並不是由 2007 年瀏覽器搜尋。Claude 在 Server 端使用 web search,回覆下方列出來源,再傳回手機。這也會增加 API 輸入 token 和搜尋費用。
作者 30 秒 X 影片展示在 Nokia 6300 以實體鍵盤提問並讀取 Claude 回答。 影片來源:Emir Karşıyakalı 官方 X。
小螢幕與九宮格鍵盤,反而迫使互動更清楚
240 × 320 螢幕無法照搬智慧型手機聊天介面。Claude S40 用分頁閱讀、懸掛縮排、整行換頁和數字鍵捷徑解決空間限制。作者還針對 128 × 160 到 320 × 240 的畫面檢查文字排版。
長回答不會一次塞滿手機記憶體。Server 把內容分段,使用者按 0 再抓下一段,且不重新請求 Claude。這避免重複付費,也讓低速網路只傳送當下需要的內容。
行事曆功能也採取安全的兩步驟。Claude 回覆可以附上一個預填的事件,但真正寫入手機前,使用者必須打開表單並確認 Save。這比讓模型直接修改本機資料更適合高不確定環境。

安裝需要什麼?不是下載一個 JAR 就完成
官方 quick start 要求一台有公開 IPv4 與 TCP 443 的 Docker 主機,作者估計每月 4 到 6 美元的 VPS 足夠。VPS 是租用的虛擬伺服器,可以在網路上持續執行 Go Server。
安裝大致包含七個步驟:建立 private CA 和 Server certificate、部署測試模式 Server、編譯 Java ME App、把 root CA 安裝到手機、用六位數配對碼核准裝置、設定 Claude API key,最後切換離開 mock 模式。
編譯環境需要 Go 1.26 以上、JDK 11 以上、Python 3、Pillow、Docker 與 OpenSSL 或 LibreSSL。這個專案雖然展示的是舊手機,部署工作仍需要現代開發環境與基本網路管理能力。
| 元件 | 執行位置 | 主要責任 |
|---|---|---|
| Java ME App | Nokia 6300 | 鍵盤輸入、畫面、離線儲存與本機行事曆確認 |
| Go Server | 自架 VPS | TLS 橋接、配對、限制、聊天儲存與 Anthropic API 呼叫 |
| SQLite | VPS volume | 保存聊天、搜尋與釘選狀態 |
| Claude | Anthropic 雲端 | 模型推論與可選 web search |
安全與隱私:API key 不在手機,但記憶卡仍要保護
Claude API key 只保存在 Server,不會下發到手機。手機透過配對取得每台裝置獨立、可撤銷的 access token。Access token 是證明裝置獲准使用服務的短字串或憑證。
Server 會保存聊天 30 天,超過期限才移除。釘選對話保留到取消釘選或刪除。手機只有在開啟「Keep last chat on phone」時保存最後一段對話,使用者另存的文字與行事曆則留在手機。
Server address、access code 與給 Claude 的個人 notes 會備份到記憶卡,方便重新安裝 App 後不用再次配對。如果記憶卡遺失或離開控制,官方建議撤銷裝置或在 Settings 執行 Reset setup。
專案表示 logs 不包含 message text,notes 會隨每次訊息送給 Claude但不記錄。實際部署時仍要保護 VPS、SQLite volume、備份與管理者帳號,因為聊天資料和裝置 token 都集中在自己的 Server。
API 與 web search 都要付費,舊手機不代表免費
每一則訊息都會使用部署者自己的 Anthropic API key 計費。若回答使用 web search,還會有搜尋費用,搜尋結果也計入 input tokens。
Server 支援每台裝置的每日 request、output token 與 web-search limits,也不會自動重試付費呼叫。這能避免不穩定網路造成同一請求重複扣款。官方仍建議在 Claude Console 設定 spending limit。
使用者按 0 載入同一回答剩餘部分不會再次詢問 Claude,這只是從 Server 取回已生成內容。介面上相似的操作,背後是否產生新 API call,會直接影響成本。
這算邊緣 AI 或模型移植嗎?不算
Edge AI 是在手機、感測器或本地電腦直接執行模型。Claude S40 沒有在 Nokia 執行 Claude 模型,因此不屬於 on-device inference,也不是把 Claude 模型移植到 Java ME。
比較準確的描述是「非官方 Claude client + protocol bridge」。這和早期電子郵件終端或薄型客戶端類似:裝置處理輸入輸出,遠端 Server 處理複雜工作。
這不會降低專案的工程價值。相反地,它揭示了讓舊裝置接上現代服務的真正難題,主要落在 TLS、憑證、字元、網路成本、狀態保存與小螢幕互動,而非 CPU。
這個實驗能帶來什麼啟示?
第一,AI 產品的前端可以很小。只要輸入、回覆與狀態切分得當,複雜模型不一定需要複雜裝置介面。這對低成本終端、工業面板與低頻寬環境很有參考價值。
第二,相容層能延長硬體用途,但會帶來新的安全邊界。舊 TLS 不能直接暴露在公開多租戶服務,必須用專用 Server、private CA、可撤銷 token 和費用限制補強。
第三,最好的 Agent 動作不一定是全自動。Claude S40 讓模型預填行事曆,但保留人工 Save。對付款、訊息、刪除和本機資料變更,同樣應採用先建議、再確認的設計。
Claude S40 常見問題
Claude 模型真的跑在 Nokia 6300 裡嗎?
沒有。Nokia 執行約 100 KB 的 Java ME client,模型推論透過自架 Go Server 呼叫 Anthropic Claude API。
需要 Anthropic 訂閱嗎?
專案使用 Claude API key,按 API 和 web search 用量計費,與一般聊天訂閱不是同一種使用方式。
為什麼一定要自己的 Server?
Nokia 6300 只支援 TLS 1.0、舊 RSA 握手、沒有 SNI,也缺少現代 root certificate。自架 Server 負責接受舊連線,再安全連到現代 API。
其他 Nokia 手機能用嗎?
可能支援符合 CLDC 1.1、MIDP 2.0 與相近螢幕條件的 Series 40 手機,但作者只實測 Nokia 6300 RM-217,其他型號仍屬未驗證。
這是 Anthropic 或 Nokia 官方 App 嗎?
不是。專案明確標示為非官方 side project,未獲 Anthropic 或 Nokia 製作、認可或支援。
結語:有趣的不是舊手機跑模型,而是它沒有跑模型
Claude S40 最值得寫的地方,不是把大型模型壓進 8 MB 記憶體,而是精確拆分每一層責任。Nokia 處理鍵盤與小螢幕,Go Server 處理 TLS、權限、狀態和成本,Anthropic 雲端負責推論。
這個三段式架構讓 2007 年功能手機能使用 web search、長回答、翻譯與行事曆建議,同時保留裝置配對、費用上限和人工確認。代價是必須管理 VPS、private CA、舊 TLS endpoint、聊天資料與 API 帳單。
把它稱為「在 Nokia 上執行 Claude」會誤導讀者。稱為「讓 Nokia 成為 Claude 終端」更準確,也更能看出這個作品真正精彩的工程判斷。