跳到正文

开发者工具 · 由一个人构建

四个工具,数据都留在你自己的机器上

FirLab 是 sunerpy 的工具集合。 目前四个:PT 站点的订阅与统计自动化、确定性的代码知识图谱、编码 Agent 的用量归档,以及面向编辑器与终端的语音输入。全部自部署,索引、归档和凭据都落在你运行它的那台机器上。

01

pt-tools

PT 站点订阅、搜索与统计自动化 · Go

把 PT 站点上手工重复的那几件事接过去:解析 RSS 订阅并把符合条件的种子推给下载器、跨站点批量搜索、把各站的上传下载分享率与魔力值汇总成一张表、按做种时长或分享率清理已完成的种子。免费期结束时自动暂停,H&R 保护和磁盘水位都是硬约束。全部自部署,站点 Cookie 和统计数据只存在你自己那台机器上。

RSS 订阅
定时解析订阅源并推送给下载器。未启用过滤规则时只下载免费种子;关键词、通配符与正则三种过滤规则用于扩展到非免费内容。
搜索与推送
跨站点搜索种子,可批量下载、批量推送到下载器,或直接把 .torrent 存到本地。
统计
汇总各站点的上传量、下载量、分享率、魔力值与等级进度,并可渲染成一张数据卡片图片。
下载器管理
支持多个下载器实例,每个实例可单独配置保存目录与添加后的启动策略。
自动清理
按做种时长、分享率或无活动时间清理种子,带 H&R 保护与磁盘剩余空间下限;免费期结束时自动暂停,未完成的种子可选自动删除。
远程管理
Web 管理界面,以及 QQ(OneBot / NapCat)与 Telegram 两条已端到端验证的 ChatOps 通道,13 条内置指令。
部署
Go 1.25+ 单二进制,MIT 许可。提供 Docker 镜像,支持 Linux 与 Windows。

运行

# Docker

$ docker pull sunerpy/pt-tools

# 或从发布页取对应平台的二进制

$ pt-tools --help
持续发布中
版本
v0.46.0
发布于
2026-08-10
02

CodeGraph

确定性代码知识图谱 · CLI + MCP

tree-sitter 把仓库解析成项目级的符号、调用与依赖索引,再针对它回答结构性问题:谁调用了这个函数、它能到达什么、改动它会牵连到哪里。二进制里没有任何模型 —— 没有 embedding,没有向量,没有 LLM —— 所以同一个问题在任何机器上都返回同样的字节。正是这一点让它敢交给 Agent 用,也敢放进 CI 里做 diff。

语言支持
解析 38 种语言;其中 29 种做完整符号提取,6 种经由嵌入与模板标记处理,3 种仅到文件级。
查询能力
符号搜索、调用者、被调用者、依赖关系、变更影响半径,以及按 PageRank 中心度排序的全图导出。
接入方式
一份索引,三个入口:CLI 给人用,MCP over stdio 给编码 Agent,MCP over HTTP(127.0.0.1:8111)给编辑器。
存储
项目级 SQLite 加 FTS5,写在仓库内的 .codegraph/ 目录。SQLite 静态链接,不需要额外安装系统库。
平台
预编译六个目标:Linux x86_64 与 aarch64(musl 静态链接)、macOS x86_64 与 Apple Silicon、Windows x86_64 与 ARM64。

安装

# Linux 与 macOS

$ curl -fsSL https://raw.githubusercontent.com/sunerpy/codegraph-rust/main/scripts/install.sh | sh

# 或从源码安装 —— 未发布到 crates.io

$ cargo install --git https://github.com/sunerpy/codegraph-rust codegraph-rs

# 然后在任意仓库里

$ codegraph init && codegraph index
持续发布中
版本
v0.42.10
发布于
2026-08-07
03

AgentLens

编码 Agent 用量归档 · 桌面应用

一个跨平台桌面看板,回答"这些 Agent 到底做了什么、在哪台机器上做的"。它把本机与 SSH 远端的用量记录汇总进同一份持久归档,再按时区、Agent、模型或项目切分。功夫花在容易悄悄出错的地方:历史比它的来源活得更久、远端访问只读、成本数字承认自己是估算。

数据来源
OpenCode、Claude Code、Codex 与 Hermes 的用量记录。
主机范围
本机,以及通过 SSH 连接的远端主机。远端采集是只读的:推送一个静态链接的采集器,校验其 SHA-256,退出时自行清除。
归档
一份本地 SQLite 归档,被当作权威历史 —— 来源数据库轮转、备份被删、远端被清理,都不会让它跟着缩水。
分析维度
按时区、Agent、模型或项目分组。
成本核算
带上游金额的记录、价目表里查不到价的记录、以及本地可比的估算值,三者分开保存。未知成本标记为缺失,绝不渲染成 0。
技术栈
Rust · Tauri 2 · React 18 · SQLite。打包 Linux、Windows 与 macOS。
已发布 · 早期
版本
v0.0.5
发布于
2026-08-12
04

Voxera

面向桌面与编码 Agent 的语音输入

冲着开发者真正在打字的地方做的听写 —— 编辑器、终端、写给编码 Agent 的提示。按下全局热键采集语音,交给本地引擎或你自己配置的云端引擎转写,然后送进当前获得焦点的输入框,或者送给只监听 127.0.0.1 的 Agent 桥。它不是语音助手,不是会议记录工具,也不是输入法:它只做一件事,落到已经有你光标的那个地方。

采集
一个全局热键,在桌面会话的任何位置都能用。
识别
离线本地引擎,或者你自己配置的云端引擎。离线是一等路径,不是降级方案。
投递
文本落到当前获得焦点的输入框,或者交给一个只监听 127.0.0.1 的 Agent 桥。
可控性
自定义替换规则与热词。本地历史默认关闭,除非你主动打开。
技术栈
Rust · Tauri 2 · React 19。
开发中

还没有公开仓库,也还没有发布版本。目前没有可下载的东西;这一条放在这里,只是为了把工作的形状记录在案。

工程取向

  1. 本地优先

    索引、归档、识别结果都写在你运行它的那台机器上。远端访问只读,并且默认不开启。

  2. 确定性优先

    同样的输入返回同样的字节。结构化查询里没有模型参与,所以结果可以进 CI、可以 diff、可以交给 Agent 复用。

  3. 不猜测

    未知的成本标记为缺失,而不是渲染成 0;没做完的功能不写进介绍,也不给它一个假的版本号。