项目

每一个都从 0 到 1 独立完成 —— 设计、前后端、客户端到部署运维。下面是它们的故事与技术细节。

zsh-web

浏览器里的多机多会话共享终端

开源

一个轻量、可自托管的终端中枢。Hub 跑在你的服务器 / NAS 上,负责 Web UI、登录与字节转发,自身从不开 shell;每台电脑跑一个 Agent,主动向 Hub 拨号注册,按需在本地开启 zsh。手机、平板、另一台笔记本可同时连到同一个会话,看到完全相同的画面。

  • 多机多会话:一个网页管理每台机器上的每个 zsh 会话
  • 字节级同步:多端实时一致,新连入者立即看到当前屏幕(滚屏缓存)
  • NAT 友好:Agent 主动外拨,只需 Hub 可达,无需逐机开放端口
  • 两层鉴权:浏览器走 OIDC SSO(如 Synology),机器用一次性配对令牌
  • 原生 iOS 客户端:基于 SwiftTerm 的 SwiftUI App
Node.jsWebSocketnode-ptyDockerSwiftUISwiftTermOIDC
Web · iOS · 自托管

合记

家庭协作记账 · 本地优先

已上架

一款「本地优先」的家庭协作记账工具。完整记账功能无需注册登录、离线即可使用,数据默认存在你的设备本地;需要时再登录,解锁家庭共享与多设备同步。前端从 Capacitor 重写为 Flutter 原生渲染,从根本上解决键盘、动画、导出等兼容性问题。

  • 打开即用:首次进入直接记账,自动初始化常用收支分类
  • 3 秒记一笔:金额 / 分类 / 账户一屏完成,单手可操作
  • 多账户统一管理:现金、银行卡、微信、支付宝分别记账
  • 预算与统计:月度预算、收支趋势、分类占比图表
  • 家庭共享 + AI 记账 + 截图 / Siri 一句话快速记账
  • 记账宠物:顺手养成专属宠物,越记越有动力
FlutterDartNode.jsExpressMySQLPM2
iOS · Android

TextLayer

会标注说话人的本地 EPUB 阅读器

未上架

本地 EPUB 阅读器,核心特性是自动标注每句对话的说话人,解决长篇对话「看不出谁在说话」的痛点。100% 本地、无账号、无服务器:书由用户自己导入,说话人标注用用户自己的大模型 API Key 在本机生成,直连用户填写的端点,一切不出设备。

  • 说话人标注:阅读时行首渲染头像 + 名字 + 色条,同一角色跨卷颜色稳定
  • 纯本地隐私:书与标注都在本机处理,不上传正文、不经任何中间服务器
  • 用你自己的 LLM:兼容 Anthropic / OpenAI 端点,逐窗口判定对话归属
  • 行哈希对齐:归一化 + LCS 对齐,补丁与正文逐字对齐、错贴为 0
  • 拿不准会标「? 存疑」;阅读设置 / 进度 / 书库可导出 JSON 自行备份
FlutterDartEPUB本机 LLM (Anthropic / OpenAI)
iOS · Android暂未公开