dsh-simple-calc:把算式写在纸上,算完直接显示

前言

做智能体应用时,模型经常会需要算数:单位换算、百分比、汇率、日期间隔。系统自带的计算器要么功能不全,要么要盯着一堆按钮点,没法「想算什么直接写」。dsh-simple-calc 把「写」和「算」放在一起:一行一个算式,用 Enter 换行,结果即时显示,算式历史就是整张纸。

下面介绍这个插件的定位、安装方式和具体用法。本文依据插件 README 与目录页信息整理,代码与行为请以仓库实际版本为准。

这是什么

dsh-simple-calc 是一个 DSH 客户端插件,维护者是 6e6e6e,分类为客户端,目录页显示其 Star 数为 0,版本号 0.2.3,许可证 MIT。它把 fend 计算引擎(1.5.9 的 wasm 构建,见 vendor/fend/)搬进 DSH 侧边栏,支持单位、百分比、货币、进制、大数和日期计算,并附带变量赋值和本地缓存汇率。

它解决的是「边写算式边出结果」的交互问题:不用记函数名,不用在按钮上找符号,写下来的就是算式,结果直接跟在后面。

核心功能

1、一行一个算式,逐行求值。行首按 Backspace 可以把当前行并到上一行,↑/↓ 用于在行间移动。
2、变量赋值。写 x = 5,后面各行直接用 x * 2 得到 10。
3、单位换算。支持 100 km/h to mph、5'10" to cm、100 C to F 这类写法。
4、百分比。20% of 80、200 * 15%;后者显示结果为 30,并标注原值 3000%。
5、货币换算。100 USD to CNY、100 CNY to USD、100 USD + 50 EUR to USD。汇率取自 Frankfurter(ECB 参考汇率),首次打开时更新一次,之后每 12 小时更新并做磁盘缓存,断网时回退。
6、日期计算。如 @2026-11-01、today + 1 months、days until @2027-01-01。日期只支持 @YYYY-MM-DD,暂不支持时区。
7、大数与进制。2^100、0xff + 1,得益于 fend 的任意精度计算。
8、结果与导出。点击结果直接复制,复制后提示「复制成功」;「复制全部」把整张纸导出成 表达式 = 结果 的纯文本。

右上角的 ? 可以打开语法速查;界面带 i18n,插件自带 locale/*.json。

安装与启用

插件以 DSH 插件包的形式发布,安装依据是 Releases 里的 dsh-simple-calc.tgz:在 DSH 插件面板中选择安装本地包,指向下载好的文件即可。

wget https://github.com/6e6e6e/dsh-simple-calc/releases/latest/download/dsh-simple-calc.tgz

这个固定地址永远指向最新版。需要指定版本时,进 Release 页面挑带版本号的那个包。开发调试时也可以直接 clone,然后在插件面板里指向该目录:

git clone https://github.com/6e6e6e/dsh-simple-calc.git

安装后在侧边栏点「极简计算」进入计算页面。

插件的宿主侧入口 index.js 挂两个服务:/api/dsh-simple-calc/fend.wasm 与 /api/dsh-simple-calc/rates,前者提供计算引擎,后者提供汇率数据。cordis.patch.yml 用于客户端 bundle 的补丁配置。运行环境要求 Node.js >= 20。

典型用法

一段连续的日常计算,可以直接写在一个页面里:

x = 5
x * 2
100 km/h to mph
20% of 80
100 USD to CNY
days until @2027-01-01
2^100

每行写完即可看到结果,变量在后续行可用,日期行单独成行、只接受整行表达式。

需要记汇率或单位时的使用方式是:先把常用换算写在纸上,需要复现时点「复制全部」导出文本存档,需要重算时直接重新输入,汇率会自动按 12 小时周期刷新。

开发侧的命令也一并说明,便于对照源码:

npm test        # 37 个用例:日期、求值、格式化、汇率缓存、Host 路由、bundle 冒烟
npm run build   # 从 lib/ 和 vendor/ 生成 client.js

代码改 lib/,client.js 是构建产物,由 scripts/build-client.mjs 把 date/core/fend 内联进去。

适用场景与注意

适合在 DSH 客户端里需要一个顺手算具的人:随手算单位、百分比、汇率、日期,变量可以临时存中间结果。对需要将计算嵌入智能体工作流的开发者来说,这是一个交互层很薄的计算视图,宿主路由 /api/dsh-simple-calc/rates 和 /api/dsh-simple-calc/fend.wasm 是现成的接口。

使用前需要注意几点:

  • 插件以当前 DSH 进程的权限运行,安装前应打开源码和许可证看过,重点留意 index.js 挂的路由与 lib/rates.js 的磁盘缓存行为。
  • 插件 README 明确不支持解方程、微积分和矩阵,理由是为避免引入大量函数符号;也不要期望日期参与普通算术。
  • 日期用法限制:只支持 @YYYY-MM-DD,暂不支持时区;日期行必须整行动作,d = @2026-11-05 这类赋值暂不支持,普通算式也不会把日期当数字。
  • 汇率时效:首次打开更新一次,之后 12 小时刷新并本地缓存,断网时仅能用缓存值。
  • 计算引擎与插件本身均为 MIT 许可,引擎原有许可证见 vendor/fend/LICENSE,插件 LICENSE 标注 Copyright (c) 2026 6e6e6e。

结尾

dsh-simple-calc 的定位很直接:不做科学计算器,不做函数符号集合,而是提供一个「纸上写算式」的页面,把单位、百分比、货币、进制、大数和日期都收进 fend 引擎里。作为 DSH 社区目录中的客户端插件,它适合作为日常算数工具嵌入侧边栏。

目录页:https://www.skillhub.cn/plugins/6e6e6e/dsh-simple-calc

源码:https://github.com/6e6e6e/dsh-simple-calc

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜