AB
AiBoss站
project

AIKON - 让 2007 年的诺基亚手机用上 Claude、OpenAI、Gemini 与 Grok 的聊天客户端

AIKON 是一个面向诺基亚 Series 40 与 Symbian S60 功能机的 AI 聊天客户端,由 Java ME 手机端和一个 Go 服务端组成。手机端按会话选择模型,支持网页搜索、阅读模式、语音消息与拍照提问;服务端负责终结 TLS、转发各家模型 API 并保存会话。项目由 emir 维护,MIT 许可,最新版本 v0.18.4。

AIKON 是一个让老式诺基亚功能机接入现代大模型的聊天客户端。它由两部分组成:跑在手机上的 Java ME 应用(CLDC 1.1 / MIDP 2.0),以及一个用 Go 编写的小型服务端。用户在 240x320 的屏幕上按键盘输入问题,选择 Claude、OpenAI、Gemini 或 Grok 中的某个模型,就能拿到回答。项目自述的定位是「今天的 AI,跑在 2007 年的诺基亚上」,适合手里还有 Series 40 或 Symbian S60 手机、愿意自己搭一台服务器的人,也适合对复古设备与协议兼容性感兴趣的开发者。

维护者与状态

项目由 emir 维护,仓库创建于 2026-09-26,最后提交时间为 2026-10-04。最新 release 为 v0.18.4,发布于 2026-10-04。截至 2026-10-05,仓库星标数为 327。许可证为 MIT。

据项目自述,这个项目此前叫 Claude S40,在手机应用 0.10.x / 服务端 0.7.x 之前只对接 Claude;在支持 OpenAI、Gemini 和 Grok 之后改名为 AIKON(Nokia 倒着拼)。仓库也从 emir/claude-s40 迁移到 emir/AIKON,旧地址由 GitHub 重定向,Java 包名与服务端名称仍保留旧名。

主要能力

以下内容来自项目自述,未经本站实测。

手机端

  • 按会话选择模型:先选服务商(Claude、OpenAI、Gemini、Grok),再选服务端提供的具体模型;会话中途可通过 Options > Model 切换,每条回复都标注所用模型。
  • 聊天界面:自己的消息显示为气泡,回复占满宽度,带「今天」「昨天」这样的日期标题,以及按秒计数的输入指示。回复保留段落与列表(圆点、编号、悬挂缩进),未发送的草稿留在输入栏。
  • 网页搜索:用于新闻、天气、汇率等,由服务端调用模型服务商自带的搜索工具完成,不经过手机自带的 2007 年浏览器;来源列在回复下方。
  • 阅读模式(按键 7):单条回复整屏显示、逐页翻阅,只按整行切分,带页码与进度条;改变字号(按键 9)或加载剩余内容时保持当前位置。
  • 长回复分段加载:「0 · Show the rest」从服务端取下一段,不再向模型提问,因此不额外计费。
  • 消息操作:用 1/3 选中消息后按中键,可执行缩短、更简单地解释、翻译、就此提问、在编辑器中打开等操作;这些操作只填充编辑器,按下发送前不会发出任何内容。
  • 历史会话:从服务端读取更早的聊天并继续,可置顶(取消置顶前一直保留)、删除或搜索全部会话;搜索不要求输入土耳其语特殊字母,「sise」也能找到「şişe」;可选在本地保留最近一次会话的离线副本。
  • 保存到手机:把回复存成 .txt 文件(有存储卡则存到卡上),之后在「Saved」中无需联网即可阅读。
  • 日历与待办:说「add to my calendar: dentist tomorrow at 3」,回复中会带上一条现成条目;按中键打开预填表单,只有按下「Save」才会写入手机自带的日历或待办。任意消息都可触发。
  • 语音消息:按 Dictate 后最多说 30 秒,服务端转成文字并在编辑器中打开,发送前可检查修改。
  • 照片提问:用摄像头拍一张或从手机中选一张,然后提问(「这是什么?」「翻译这个标牌」「读一下这个标签」);同一会话中的追问仍能看到这张图。
  • 给 AI 的备注:在设置里写「I'm Emir, I live in Istanbul, keep it short」,会随每条消息一起发送。
  • 流量统计:显示今天与累计的请求数和大致 KB 数。
  • 20 条快捷提示:搜索网页、天气、翻译、回复消息、加入日历、总结、润色文字等。
  • 简洁提示:信息与错误默认只显示一行,用 1/3 选中后按中键查看解释;设置界面把说明放在 Options > Info 下。
  • 首次设置向导:填写服务器地址、测试连接、用 6 位数字码配对,语言跟随手机;如果构建时已指定服务器,则直接跳到配对。
  • 键盘优先:所有界面都能用键盘操作(E63 这类 QWERTY 机型用字母键上印的数字),Shortcuts 界面列出全部按键;出错后一键重试,且不会重复计费。
  • 八种语言:英语、土耳其语、西班牙语、葡萄牙语、法语、德语、俄语、印尼语。应用按手机语言启动(其他语言回落到英语),可在 Settings > Language 中修改;回复语言跟随用户书写语言,与菜单语言无关。
  • 外观:除文本输入外的所有界面都由应用自绘,包括平滑边缘的线性图标、双行列表、即时保存的开关、全屏显示;支持浅色、深色或自动(傍晚转深色)主题、三档字号、启动动画与音效、回复提示音、振动与背光。

服务端

  • 单个 Go 二进制或 Docker 镜像:对手机使用 TLS 1.0 与自建私有 CA 签发的证书,对模型服务商使用现代 HTTPS;Claude 走官方 SDK,OpenAI 与 xAI Grok 走 Responses API,Google Gemini 走普通 HTTPS,统一在 MODELS 设置中列出,并有 DEFAULT_MODEL。
  • 通过配对为每台设备发放访问令牌,支持按天的请求、token、网页搜索、语音消息与照片限额,付费调用不自动重试。
  • 可选的语音转文字(OpenAI),镜像内含精简版 ffmpeg 以处理手机的 AMR 录音。
  • 用 SQLite 保存会话(保留 30 天,置顶的保留到取消置顶),支持搜索,管理 API 只绑定在本机。

使用入口

仓库地址:https://github.com/emir/AIKON。官网:https://aikonchat.com/。

据项目说明,获取与部署的大致流程是:先克隆仓库,然后准备一台有公网 IPv4 和 TCP 443 的 Docker 主机;用 server/scripts/pki.sh 生成私有 CA 与服务端证书;用 server/deploy/push.sh 部署(初始为测试模式,不产生 API 费用);在 app/app.local.properties 中写入网关地址后用 make -C app 构建手机端,再把 app/dist/AIKON.jad/.jar 安装到手机;把根证书装到手机上并核对指纹;随后由手机上的设置向导完成连接测试与配对,在服务端用 server/deploy/admin.sh 批准配对码;最后用 server/deploy/set-key.sh 写入 Claude 的密钥(也可加 openai、gemini 或 xai),再以正式模式重新部署。

git clone https://github.com/emir/AIKON.git
cd aikon

开发方面,项目自述需要 Go 1.26+、JDK 11+、带 Pillow 的 Python 3、Docker(用于部署)以及 OpenSSL 或 LibreSSL;make test 会执行服务端的 go vet 与 go test -race,以及手机端的构建、打包检查与可复现性校验。

许可与限制

许可证为 MIT。

据项目自述,已知限制与边界包括:手机端是 CLDC 1.1 / MIDP 2.0 的 MIDlet,JAR 约 220 KB;已在诺基亚 6300(RM-217,固件 V06.60)和诺基亚 E63(Symbian S60 3rd Edition FP1,320x240,QWERTY,通过 WLAN)上测试过,其他 Series 40 机型(CLDC 1.1 / MIDP 2.0,240x320)可能可用但未经验证。2007 年的手机无法使用现代 HTTPS:诺基亚 6300 只支持 TLS 1.0 与 RSA 密钥交换,不发送 SNI,根证书库大约停留在 2008 年,公共云(包括 Cloudflare)会拒绝这种握手,因此必须由自建服务端用私有根 CA 签发的证书来终结 TLS,并把该根 CA 一次性装到手机上。API 密钥只保存在自己的服务器上,手机通过配对获得可按设备吊销的访问令牌;会话在服务端保存 30 天,置顶的保留到取消置顶或删除。项目自述为独立副项目,未获得 Anthropic、OpenAI、Google、xAI 或诺基亚的制作、认可或支持。