跳转到内容

一周两个 AI 小工具:工时表 + 墨水屏看板

📍 真实案例

两个小工具并排 PDF 转 docx 的过程,右边一个 e-ink 仪表板

每周日晚上 11 点,洁柔的电脑前都会出现同一个画面——公司的双周工时表没填,周一 9 点要交。

她对着 HR 那份 PDF 一栏一栏抄日期、班次、签退时间,40 多行手动填。每两周一次,每次 30 分钟,一年烧掉 13 小时。

另一边,客厅墙上挂着一块没用上的 10.85 寸黑白电子墨水屏——她两年前买的,本来想做家庭看板,搁置吃灰。

这两个痛点,都是用 Claude Code 解决的:

  • 工具 1:工时表助手 —— 一晚上写完,从此填工时只需要拖一下 PDF。
  • 工具 2:E-ink Dashboard(墨水屏看板) —— 分几段打磨出来,墙上的屏定时刷新天气、股票、新闻、Claude 用量。

读完这一篇你会知道:普通人一周做一个能用的 AI 小工具,完整路径长什么样。

疲惫的人深夜手动填工时表,周围杯子闹钟一堆

公司每两周下发一份 PDF 排班表,包含 14 天每天的:

  • 日期
  • 班次时间(start / end)
  • 实际签到 / 签退
  • 备注

洁柔需要重新整理成 HR 那份「双周工时表 docx 模板」(docx 就是 Word 文件)——格式严格(字段位置 + 字号 + 边距),填错了 HR 打回。

每两周手填 30 分钟,纯体力活,没增长。

目标:她拖一下 PDF 进来,我吐一份已经填好的 docx 出去。

技术栈(先说每样东西是干什么的):

  • Flask:用 Python 写小网站的轻量工具,这里负责接收拖进来的 PDF、把做好的文件递回去
  • python-docx:用 Python 读写 Word 文件的工具,负责往模板里填字
  • PyMuPDF:用 Python 读 PDF 的工具,负责把排班表里的文字一行行取出来

代码量:两百多行 Python,3 个文件:

  • server.py —— Flask 路由(哪个网址交给哪段代码处理),处理上传 + 触发生成
  • parser.py —— PDF 解析,把 14 天班次抽成一条条记录(dict 列表)
  • generator.py —— 填进 biweekly_template.docx,输出新文件

PDF → 解析 → 填模板 → 输出 docx

  • 挑技术栈:Claude 推荐 Flask + python-docx——说「这种一次性内部工具,Flask 比 FastAPI 启动快,python-docx 比 docxtpl 学习成本低」(FastAPI、docxtpl 是同类的另外两个选择)。直接采纳。
  • 写 PDF 解析器(parser.py):我把样本 PDF 截图给它看,让它先告诉我每天的数据怎么定位——它发现每天那一段都以「星期几 + 日期」开头,上下班时间也都是「9:00AM」这种固定写法,就先用 PyMuPDF 把 PDF 里的文字一行行取出来,再用正则表达式(按固定文字规律去匹配的写法)认出每一天和上下班时间。格式固定时这样最省事,代价是格式一变就得跟着改(见下面的后日谈)。
  • 写 docx 模板填充(generator.py):最磨人的一步——python-docx 对模板里「合并单元格」「带格式的段落」处理特别坑。Claude 试错 4 次,每次把它的尝试跑一遍 + 反馈样式差在哪,最后用「先 clear 掉段落里所有 run(Word 里格式相同的一小段文字),再 add_run 重新写入」的方法搞定。
  • 前端拖放上传:public/index.html 里 30 行原生 JavaScript——拖文件进去 → 上传 → 拿 docx 下载链接。不用任何框架。

双周一次的 30 分钟手活 → 30 秒。

  • 一晚上(实际 4 小时)写完
  • 放在家里一台一直开着的小服务器(NAS,家用网络存储)上跑
  • 按每两周省 30 分钟算,一年能省下约 13 小时
  • 后日谈:六月底公司的排班系统改了 PDF 导出格式,解析器直接罢工——真实项目就是这样,上游一变,工具就得跟着修。这也是「自己做的工具」的另一面:坏了没有客服,只有你和你的 AI。

最妙的是——这种工具完全个人化,没有现成的 SaaS(按月付费的在线软件)能替代(每家公司的工时表格式都不一样),只能自己动手写一个。AI 工具让这种「内部专用小工具」从不值得做,变成顺手就做。

工具 2:E-ink Dashboard(墨水屏看板)

Section titled “工具 2:E-ink Dashboard(墨水屏看板)”

10.85 寸黑白 e-ink 屏的 4 列布局,旁边一个 ESP32 副屏

客厅墙上挂着块10.85 寸黑白 e-ink 屏(电子墨水屏),配套 TRMNL 协议:TRMNL 是一家做墨水屏看板的公司,屏幕按它的协议定时向服务器要画面。洁柔本来想用官方服务,但:

  • 想自己设计画面,官方服务要额外付费加购(开发者加购包),不加购只能用现成的插件和模板
  • 没法显示中文新闻 / Claude Code 用量——这是她最关心的
  • 股票数据要付费才能加

屏在墙上挂了半年没接电源——典型「买回来吃灰」剧本。

我们做的(2026 年 3 月到 5 月中旬,分几段做完)

Section titled “我们做的(2026 年 3 月到 5 月中旬,分几段做完)”

这块看板不是一周从零做出来的:后端和桌面副屏在 3、4 月就有了雏形,5 月中旬又集中改了一轮墨水屏的布局。

目标:写一个自建后端,把屏接管过来——4 列布局,数据尽量从免费接口拿。Claude 用量那一列是用 claude.ai 的登录令牌去拉的,具体做法和更稳的替代办法见下文。

技术栈(先用一句话说清每样东西干什么):

  • Node.js + Express:用 JavaScript 写服务器程序的运行环境和常用框架,负责定时取数据、出图
  • @napi-rs/canvas + sharp:在服务器上画图、转换图片格式的两个工具库,负责把 4 列画面画好,再转成纯黑白图(1bpp bitmap:每个像素只有黑、白两种,墨水屏能直接显示)
  • TRMNL BYOS 协议:BYOS 是 Build Your Own Server(自建服务器)的缩写,按这个协议写好接口,墨水屏就会来找你自己的服务器要画面,认它当「家」
  • Gemini API:谷歌的 AI 模型接口,负责给英文新闻写摘要、翻成中文,还生成了 77 张动漫风背景图
  • node-cron:按时间表定时跑任务的工具,负责定时刷新

每一列承载一类信息——洁柔早晨经过看一眼就够:

列内容数据源
1️⃣ 时钟 + 天气DSEG7(模仿电子表数码管的字体)数字时钟、中文日期、本地实时温湿度 / 风、CPU 和内存占用、开机时长Open-Meteo(免费天气接口)+ 系统命令
2️⃣ Claude Code5 小时配额条 + 7 天配额条、tmux(让终端程序在后台一直跑的工具)里活跃的会话数、心愿清单claude.ai 的登录令牌加没有公开文档的用量接口,见下方说明
3️⃣ 股票6 个标 NVDA / AMD / NASDAQ / S&P500 / TSLA / MSFT,涨跌色块标识Yahoo Finance(免费)
4️⃣ 新闻Google News 前 5 条,Gemini 自动摘要 + 翻译成中文Google News 的 RSS 订阅源 + Gemini

架构 → 中间 AI 处理 → 右侧两个屏

副屏:ESP32 彩色 TFT(480x266 RGB565,现已停用)

Section titled “副屏:ESP32 彩色 TFT(480x266 RGB565,现已停用)”

ESP32 是一种便宜、能联网的小芯片板;TFT 是常见的彩色液晶屏;RGB565 是一种省内存的颜色格式。

主屏黑白,副屏当时装在桌面上当伴侣——3 个 tab 切换(天气 / 股票 / 新闻),中文英文双语,点击新闻标题展开 AI 完整摘要。

最特别的是背景——77 张 Gemini 生成的动漫风背景图,按天气和内容分类轮播,每分钟换一张。从「电子伴侣」秒变「会变美的小屏」。

下面按做事的先后,拆成 6 步:

第 1 步:架构设计 → Claude 建议「在服务器上把画面渲染成 1bpp bitmap(纯黑白图),而不是让 ESP32 自己画」,因为 ESP32 算力不够画复杂中文 + 字体。架构方向定了,后面才顺。

第 2 步:Canvas 绘图(在程序里一笔一笔把画面画出来)→ 4 列布局每一列都要手抠像素位置(屏是 1360x480)。Claude 一边写一边让我跑 preview.html 看渲染,像素级反馈调整 20+ 次。

第 3 步:数据接入 → Open-Meteo / Yahoo Finance / Google News 三家 API 一上午全接通。Claude 给的「aggressive caching(激进缓存:拿到的数据先存着,到时间才重新拉)」策略(天气 10 分钟、股票 1 分钟、新闻 30 分钟、画面 60 秒)直接降 80% API 调用。

第 4 步:Gemini 新闻摘要 + 翻译 → 一个 prompt 同时干两件事:「先用英文给我 3 句话摘要,再翻译成简体中文(GB2312 安全字符)」(GB2312 是常用汉字的字符集)。双语切换零成本。

第 5 步:背景图生成 → gen-backgrounds.js 跑 Gemini 图像 API,一次性生成 77 张动漫背景(新闻、股票和五种天气,共 7 类)。Claude 写了 prompt 模板让风格统一。

第 6 步:TRMNL BYOS 协议接管 → 实现 /api/setup + /api/display 两个接口,让设备认我们的服务器。一次刷机,从此墨水屏归我们管。

每天经过客厅就能扫一眼:

  • 今天几点 + 天气(出门要不要带伞)
  • Claude 用量(还能用多久,要不要省着点)
  • 持仓涨跌(不用打开 app)
  • 5 条头条新闻摘要(中文,1 秒读完)

ESP32 副屏当时放在工作桌上(现已停用)——抬头看 30 秒,信息密度跟手机一样高,但不用解锁手机(避免摸到手机就刷 5 分钟的诱惑)。

一周日历,周末规划下周做啥

两个项目放一起,一周节奏大致长这样(示意,不是当时的真实日程):

时间做的事
第 1 天晚工时表助手 v1 - 4 小时写完上线
第 2 天享受工时表的省力,顺便规划下个工具
第 3 天E-ink Dashboard 起步——挑技术栈、装依赖
第 4 天E-ink Canvas 渲染 4 列骨架
第 5 天E-ink 三个数据源接通
第 6 天E-ink 新闻 + 背景图
第 7 天E-ink TRMNL 协议接管 + 上墙

两个工具,真正动手写代码的时间加起来不到 20 小时。生活里的麻烦每天少一点。

  1. Claude Code 平均干 80% 的代码——你做产品判断 + push 节奏 + 反馈打磨,代码细节它写。
  2. 痛点要小而真——工时表 30 分钟、墙上屏吃灰——都是日常摸到的具体麻烦,不是「我想做一个全功能 ERP」。
  3. 接受 90% 完成——工时表助手没做用户登录、没做错误页;E-ink Dashboard 没做手机适配(mobile responsive)。「只对自己一个人能用」,省掉 50% 的工作量。

❌ 坑 1:把「个人小工具」做成「商业产品」

Section titled “❌ 坑 1:把「个人小工具」做成「商业产品」”

「我做个工时表助手吧,顺便加多用户注册 / 付款 / 权限管理…」

踩坑:你变成在写一个 SaaS,3 周完不成。个人小工具的核心价值是「快上线」——做着做着变 SaaS 就停滞了。

修正:严格「只我一个人用」,把所有「让别人能用」的功能砍掉——验证、注册、付款、多语言、移动端… 全部 No。

「某个框架出新版本了,我试试」「我用 Rust 重写一下」

踩坑:新技术学习成本远远超过工具节省的时间——你做的是「省一周时间的工具」,但学新框架就花了一个月。

修正:用你已经熟的栈。Python 熟就 Flask,Node 熟就 Express,别为了一个 4 小时的工具学一周框架。

「我做完了,放着挺好看的。」

踩坑:你做完 1 周后忘记打开——所有「省时间」的承诺都没兑现。

修正:强制把工具放到日常路径上。工时表助手就在浏览器收藏夹首位,E-ink Dashboard 就在客厅必经之路。摩擦成本是 0,使用率才是 100%。

今天就动手,列 5 个你每周至少做 1 次的麻烦事:

  • 每月对账整理发票
  • 每周写工作总结
  • 每天看几个数据源(股票 / 项目 ETA / 健身数据)
  • 每月整理子女的照片 + 备份
  • 每周排家庭周菜单
  • …

每个至少 30 分钟手活的,都是 AI 工具的候选。

别从最大的开始——挑「30 分钟手活、目标清晰、不需要外部账户」的最小痛点先做。第一个项目跑通,你才会信「这事真的快」。

完整你的需求 → 让 Claude 推荐技术栈 → 接受它的推荐(它比你考虑更全) → 跑通最小版本 → 迭代。全程不用自己写代码,只做产品判断。

做完后强制塞进日常路径——浏览器收藏首位、桌面快捷方式、墙上看板、手机主屏。摩擦小,使用频率自然高。

最后一个反直觉的事——「一周一个工具」如果坚持一年,会发生什么?

  • 52 周 × 1 工具 = 52 个个性化小工具
  • 哪怕一年只坚持做出 20 个、每个每周只省 15 分钟,每周也能省出 5 小时
  • 你的工作流变成完全为你自己定制

这才是 AI 时代真正改变普通人生活的方式——不是某个 SaaS 替你做所有事,是你做 52 个只为自己服务的小工具。

普通人最被低估的时代红利——「定制为我」从昂贵奢侈品,变成日常消费品。

看到这里你已经过完「真实案例」的前 3 篇:

这些案例的核心信息:AI 工具不会替你思考,但会替你做「已知怎么做但费时间」的事。

剩下的——只看你愿不愿意动手。

→ MoldPage:把「找工作的痛」做成产品的两周 —— 从小工具到真产品

→ niuxue.org 自身:8 小时搭出来的教程站 —— 案例板块终篇

进阶玩法都已上线,挑感兴趣的看:

  • Claude Code 进阶——VS Code 插件、桌面 App、Hooks、MCP、Subagents、Worktrees
  • 自动化与协作——Routines、Remote Control、Channels、Agent Teams、Safe Autonomy