知果 Zhigor · 项目介绍
找文件 → 整理文件 → 共享文件 → 用 AI 直接操控文件,一条链走完的本地化办公桌面工具箱。
桌面端产物 Zhigor(Windows 下
Zhigor.exe),界面中文名 知果,当前版本 v1.0。
项目概况
「知果」是一款绿色免安装的桌面办公工具:解压官方发布包、双击主程序即可用,不写注册表、不改系统设置,配置与数据全部落在程序自身目录(整个目录就是一份完整备份)。
它要解决的问题是:日常办公里「文件在哪、谁来改的、怎么批量处理、怎么给同事、能不能让 AI 代劳」这几件事散落在资源管理器、压缩软件、搜索工具、网盘和聊天窗口之间。
知果把它们收进同一个窗口,并且把底层检索与文件操作做成自动化能力开放成 Lua,再让 大模型通过工具调用去驱动这套。
| 项目信息 | 内容 |
|---|---|
| 软件名 | 知果 / Zhigor |
| 当前版本 | 桌面端 v1.0 · 内核 v1.0 · 命令行工具 v1.0 |
| 默认落地页 | 工作台(首页) |
| 支持平台 | Windows 10 / 11(x64,功能最全:托盘 / 提权 / 共享服务 / 打印);Linux(核心功能) |
| 运行依赖 | Windows 桌面端依赖 WebView2 / Linux 桌面端依赖 WebKit2GTK 4.1 |
| 授权模式 | 核心能力免费可用;脚本安装包分发、公网共享等为注册能力 |
界面总览
界面由三块构成:
| 区域 | 内容 |
|---|---|
| 原生菜单栏 | 文件(导入脚本… / 导出脚本… / 以管理员身份运行… / 退出)、工具(文档操作 ▸ 文件搜索 / 文件监控、AI 对话、文档共享、脚本管理、软件设置)、帮助(帮助中心 / 检查更新 / 下载页 / 软件注册 / 关于) |
| 顶栏 | 左侧软件名(点击回工作台)、中央当前页面名称与图标、右侧「首页 / 软件设置 / 使用帮助 / 关于」四个圆形按钮 |
| 底栏 | 作者博客、Tugm-在线工具集(交给系统浏览器打开)、版本号与实时时钟 |
Windows 平台还带系统托盘:关闭按钮(×)只把窗口藏进托盘(后台任务与共享服务不中断),左键单击 / 双击唤起窗口,右键菜单可切页或真正退出。程序有单实例锁,重复启动会提示「程序已在运行中」;退出时会记住窗口尺寸。
核心功能
工作台(首页)
程序启动后的默认落地页,七张卡片就是全部功能入口:文件搜索 / AI 对话 / 文件监控 / 文档共享 / 脚本管理 / 使用帮助 / 软件设置(关闭 AI 总开关后,AI 入口会自动隐藏)。
顶部显示版本号与内核版本标签(如
v1.0、内核 v1.0)、注册状态;下方是动态面板:内容来自服务端运营位(公告 / 新品上线),程序内置
home.html片段兜底,服务端不可用时首页依然完整可渲染;服务端下发的 HTML 一律先经 DOMPurify 清洗再渲染;未创建桌面快捷方式时(且平台支持),这里会多出一张「创建桌面快捷方式」卡片,创建成功后自动消失。
文件搜索与文件操作
这是主工作区:先按文件名找到文件,再就地完成整理。
搜索:走 nucleo 模糊匹配(忽略大小写),目录支持手输、系统目录对话框选择、历史下拉(按名称或路径过滤);搜到的关键词、目录都可命名保存为历史。
查询语法(搜索框旁「查询语法 ?」随时可查):
| 写法 | 含义 | 示例 |
|---|---|---|
report | 模糊子序列匹配(字符按序出现即命中) | rpt 命中 report.pdf |
'report | 子串(连续)匹配 | |
^src | 前缀匹配 | 命中 src-main.txt |
.xlsx$ | 后缀匹配 | 命中所有 Excel |
.jpg$ .png$ | 多后缀之间是 OR | |
report .jpg$|draft .png$ | | 分隔多个 OR 分支 | |
!node_modules | 排除包含该词的结果 | |
季度 报告 | 空格 = AND,全部命中才返回 |
结果行操作:每行右侧「⋯」是单文件菜单 —— 复制 / 重命名 / 压缩 / 解压 / 修改时间 / 打印 / 删除;勾选多行后工具条出现批量操作 —— 复制 / 移动 / 重命名 / 更多(压缩 / 解压 / 修改时间 / 打印)/ 删除。
批量重命名:基础名 + 序号 / 序号 + 基础名 / 保留原名 + 序号 / 仅序号四种模式,支持起始序号、自动补零、分隔符、保留扩展名;对话框会给出前三个新名字示例与命名冲突数量。
修改文件时间:可分别勾选修改时间 / 访问时间 / 创建时间(创建时间仅 Windows 支持修改),打开时读取第一个文件的真实时间戳作为初始值,也可一键「恢复原时间」。
打印:选择打印机(带「(默认)」标记与描述)、设定份数,可把当前打印机「设为默认」;状态行实时显示正在打印的文件名与完成数量。
进度与终止:复制 / 移动 / 压缩 / 解压 / 修改时间 / 批量重命名 / 打印都有独立对话框与进度;除「删除 / 重命名」外都可中途终止。为保护界面,命中数最多返回 5000 条、界面只渲染前 500 条并给出提示。
文件监控
选择一个目录(可开关「子目录」递归),实时列出 创建 / 修改 / 重命名 / 删除 四类事件,最新事件排在最上方,标签按类型着色(绿 / 蓝 / 黄 / 红)。
监控期间目标目录与子目录开关会变为只读,避免边监控边改目标;一次只监控一个目录,多目录或「监控到就自动处理」的场景可改用 Lua 的 fiWatch 模块或让 AI 生成监控脚本。
AI 对话
用中文说需求,AI 调用本机内置工具把事办完,并把每一步过程展示出来;必要时还会直接给出可运行的 Lua 脚本。
连接类型:
Ollama(本地)/DeepSeek/OpenAI/Anthropic(Claude)/OpenAI 兼容(自定义)。本地 Ollama 免费零配置(默认http://127.0.0.1:11434,不带/v1);OpenAI 兼容网关需带/v1。模型可由「获取模型」拉取列表后点选。模型服务由客户端直连,不经过中转服务。过程可视化:每条回复下方是彩色工具标签(图标 + 中文动作 + 操作对象),鼠标悬停看该工具能力;文件操作(复制 / 压缩等)另有进度区。
代码块可运行:回复中的
```lua代码块带「运行」按钮,执行结果(stdout / 错误 / 耗时)显示在输出区;可开启「生成后立即执行」。携带上文:默认开启(配置项
ai.carryContext),会把最近 12 条历史一并发送,便于多轮追问;对话页复选框与设置页开关是同一个开关。权限闸门:「执行系统命令」与「编辑 / 写入文件」两类高风险操作默认关闭,首次使用弹窗显示具体命令 / 目标文件,可选择允许一次、拒绝或「始终允许」(写入
ai.permExec/ai.permEdit)。
AI 可调用的内置工具(界面上一一可见):
| 工具 | 中文名 | 作用 |
|---|---|---|
system_dirs | 系统目录 | 返回桌面 / 文档 / 下载 / 图片 / 配置 / 缓存 / 临时等标准目录真实路径 |
search_files | 文件名搜索 | 按文件名模糊搜索并返回路径 |
fulltext_search | 全文检索 | 在已建索引的文档正文中检索,返回命中文件与摘要 |
extract_text | 提取正文 | 提取 PDF / Office / Markdown / TXT 正文 |
list_dir / dir_stats | 列出目录 / 目录统计 | 列目录;递归统计文件数、总大小、最大文件 |
index_status | 索引状态 | 查看全文索引目录与构建状态 |
archive_list / archive_compress / archive_decompress | 压缩包内容 / 压缩 / 解压 | ZIP、7Z 相关操作 |
copy_file / move_file / rename_file / delete_file | 复制 / 移动 / 重命名 / 删除 | 文件与目录操作(删除为永久删除) |
printer_list / print_document | 打印机列表 / 打印 | 枚举打印机与默认机;把文件或文本送进打印机 |
run_lua | 执行 Lua | 在本机执行 AI 生成的 Lua 脚本 |
run_command / write_file | 执行命令 / 写入文件 | 高风险,需「执行」/「编辑」权限 |
此外支持 AI 工具插件包:把外部 lua / cmd / sh 脚本按约定放进 data/ai-tools,即被登记为 AI 可调用的本地工具,免重启热加载。
文档共享(WebDAV)
把一个本机目录变成局域网 WebDAV 共享,同事用浏览器或 WebDAV 客户端即可浏览、上传、下载。
服务与界面分离:真正提供共享的是独立进程
fwd(WebDAV 端口默认8081,管理 API 固定在回环127.0.0.1:18761);桌面端「文档共享」页只做检测 / 启动 / 停止 / 重启 / 安装系统服务(随系统启动) / 配置与账号管理。因此桌面端没开、共享服务照样对外服务。浏览器文件管理器:访问
http://<局域网IP>:8081/得到一个 Vue 3 + Naive UI 写的网页版文件管理器(列目录 / 上传 / 删除 / 重命名 / 新建文件夹 / 拖拽上传,暗紫主题与桌面端一致),底层走 WebDAV 协议。多账号 + 隔离:每个账号登录后只看到自己的「我的文件」(
users/<用户名>/),公共内容放「公共资料」(public/);账号可设只读 / 读写、可随时停用;另有全局「只读」开关。公网分享(注册能力):勾选后服务通过内嵌 frp 客户端把共享暴露到公网,得到形如
https://<域名>/fwds/<本机派生路径>的地址,异地 / 出差同样可用;路径前缀按本机授权派生并落盘复用,地址跨重启不变。默认关闭,避免无谓占用线路。配置:共享目录、端口、只读、账号、外网转发都保存在独立服务自己的配置文件
fwd.cfg中(全项目统一的 pillar cfg 文本格式,与桌面端config.cfg同款解析器)。提权:安装 / 卸载系统服务需要管理员(Windows)/ root(Linux),权限不足时页面会给出可一键复制的手动命令。
脚本管理
把常用批处理写成 Lua 脚本存进脚本库,随时运行,或做成桌面 / 开始菜单快捷方式,甚至打包成安装包分发给同事。
脚本库:列表显示名称 / 描述、类型标签(
AI 生成、安装包 vX.Y.Z、桌面/命令行)、Key、行数、更新时间;支持按类型筛选与按名称 / Key / 描述关键字过滤。新建 / 编辑:名称必填,Key 可留空(自动生成
ai-前缀),手填仅允许字母 / 数字 /-_.;代码区可在编辑与只读高亮预览间切换;编辑态 Key 只读,保存按 Key 全量覆盖。运行:弹窗显示执行状态、stdout 与耗时;超时取「软件设置 → 通用设置 → Lua 脚本执行超时」(默认 15 秒,5~300 秒可调),死循环会被强制中断;来自安装包的脚本每次运行都会复核本机授权。
快捷执行方式:一键创建桌面 / 开始菜单(Linux 为应用菜单)快捷方式,底层是
fsp -w 1 -i <Key>,双击即跑、无需先打开桌面端;也支持「另存为…」自选位置。安装包(.fsp):
文件 > 导入脚本…安装、文件 > 导出脚本…打包(导入 / 导出 / 运行安装包脚本均为注册能力)。包体为「星标容器 + AES-256-GCM 密文 + ZIP payload + manifest(逐文件 SHA256 / 总体哈希 / 可选 ed25519 签名)」,带注册闸门,同 Key 重新导入即完成升级。命令行启动器 fsp:
-w 1按 Key 运行脚本、-w 2直接跑 Lua 文件、-w 3安装.fsp、-w 4打包.fsp,适合做计划任务。
脚本可用的能力以 fi 前缀模块组织(完整参考见发行包内的《Lua 函数说明》):
| 模块 | 用途 |
|---|---|
fiSearch / fiFullText / fiIndex / fiScan / fiParse | 文件名搜索、全文检索、索引构建、流式扫描、文档正文提取 |
fiFs / fiArchive / fiImage | 文件复制 / 移动 / 重命名 / 删除、ZIP / 7Z 压缩解压、图片缩放 / 增强 / 签名 / 去 EXIF |
fiWatch / fiPrint / fiDirs / fiUi | 目录监控、打印与打印任务、系统标准目录、文件 / 目录对话框与等待输入 |
cache / httpClient / sql / ctFile / json / xmlpath / url + 全局基础函数 | 缓存、HTTP、多数据库、云盘、JSON / XML / URL 处理、路径 / 哈希 / 字符串 / 随机 |
脚本以当前用户权限在宿主进程的 Lua 池里执行:能删文件、能发网络请求、能真的送纸打印,运行来源不明的脚本前请先通读代码。
3.7 帮助中心 / 软件设置 / 检查更新
帮助中心(离线内置):文档随程序内嵌,左侧分组目录、右侧 Markdown 渲染,顶部可按标题 / 正文检索,文档间链接在页面内跳转,
http(s)链接交给系统浏览器。用户看到的说明始终与手上的版本一致,且断网可用。软件设置分四块:
通用设置:搜索默认返回条数(50 / 100 / 200 / 500 / 1000)、Lua 执行超时(5~300 秒)、自动更新开关;
AI 设置:AI 总开关、连接类型、服务地址、API Key、模型、生成后立即执行、携带上文、本地操作授权、单次生成上限、连接测试与可用模型标签;
外观主题:内置预设(暗紫默认 / 暗黑绿 / 炫彩赛博)与自定义配色(主色、页面 / 卡片 / 输入框背景、文字、边框、分隔线),实时预览、可保存为自有主题、可一键重置;主题先套本地缓存再由后端校正,避免启动闪白;
历史记录:搜索历史与目录历史两栏,支持单条删除与一键清空(不可撤销)。
检查更新:
帮助 > 检查更新手动检查;启动时后台静默检查,发现新版本在右下角气泡提示;勾选「自动更新」并重启应用后,启动即自动下载安装并重启。
关键设计取舍
| 设计点 | 做法 | 原因 |
|---|---|---|
| 内核与业务边界 | Rust 静态库只暴露 C ABI,统一 JSON 信封 | 语言无关、易测试;字符串返回值由 fifort_free / syshw_free 释放,无跨语言内存歧义 |
| 前端产物分发 | 两套前端 dist 都用 go:embed 打进二进制 | 发布包只有一个可执行文件,无 web 服务器依赖 |
| 界面与共享服务分离 | WebDAV 拆成独立进程 fwd | 桌面端关掉不影响同事访问;也能注册成系统服务随开机启动 |
| 关闭按钮行为 | Windows 上关闭即隐藏到托盘 | 后台任务与共享服务不被打断;托盘交互做了重入保护与消息循环线程锁定,避免「图标还在点不动」 |
| AI 的安全边界 | 只暴露固定工具集 + 高风险工具权限闸门 | AI 不会绕过界面直接操作系统;命令 / 写文件首次使用必须用户点头(可「始终允许」) |
| 脚本可审计 | 复杂批处理优先让 AI 产出 Lua 而非连续调工具 | 脚本可读、可保存、可复用、可打包分发 |
| 授权 | 机器码绑定(用户 + 机器码 + 系统版本 + 磁盘指纹加固) | 一机一码;配置复制到别的机器会退化为未注册 |
| 公网地址稳定 | 会员线路前缀按本机授权派生并落盘复用 | 服务重启 / 反复开关共享后地址不变,手机 WebDAV 客户端里保存的地址不会失效 |
| 运营位(首页 / 右下角广告) | 本地 home.html / right-ad.html 兜底 + 服务端按 hash 覆盖 | 服务端故障时界面依然完整;服务端下发 HTML 一律 DOMPurify 清洗后才渲染 |
| 帮助文档 | 随程序内嵌离线 | 老版本用户看到的说明与手上功能一致,且内网 / 断网可用 |
运行
# 桌面端(读取同目录 config.cfg、data 等运行时资源) ./Zhigor # Linux/macOS Zhigor.exe # Windows # 独立共享服务(默认读同目录 fwd.cfg;管理 API 127.0.0.1:18761,WebDAV 8081) ./fwd -config ./fwd.cfg # 共享服务注册为系统服务(随系统启动,需 root / 管理员) sudo ./fwd -config bin/fwd.cfg -service install
上手路径
启动:解压官方发布包到可写目录(如
D:\Apps\ZhiGuo),双击主程序;首次启动自动生成默认配置,落在「工作台」。搜一个文件:
工具 > 文档操作 > 文件搜索→ 选目录 → 输入关键词回车;命中后可直接批量复制 / 重命名 / 打包 / 打印 / 改时间。配 AI(可选但推荐):
软件设置 > AI 设置→ 连接类型选Ollama(本地)(免费零配置,地址留空)或填云端 Key → 保存;回到AI 对话用中文描述需求,看它一步步调用本机工具把事做完。共享给同事:
文档共享→ 选共享目录 → 保存配置 → 启动服务 → 把显示的http://<局域网IP>:8081/发给同事(浏览器直接打开,或用 WebDAV 客户端挂载);在「共享账号」里给每人建账号。沉淀成脚本:把常用批处理放进
脚本管理(或让 AI 生成 Lua 后保存),需要时创建桌面快捷方式,或打包成.fsp分发给同事。
版本与授权
| 项 | 值 |
|---|---|
| 软件名 | 知果(Zhigor) |
| 桌面端版本 | v1.0 |
| 内核版本 | v1.0 |
| 命令行工具版本 | v1.0 |
| 注册方式 | 帮助 > 软件注册 → 复制机器码 → 向发行方换取注册码 → 粘贴即完成(授权与设备绑定) |
| 免注册能力 | 文件搜索 / 监控 / 文件操作 / 打印 / AI 对话 / 脚本运行 / 局域网共享 |
| 注册后解锁 | 脚本安装包(.fsp)导入 / 导出 / 运行、文档共享公网访问 |
| 反馈方式 | 帮助 > 关于 查看版本信息与交流群二维码;反馈时请附版本信息、程序日志与复现步骤 |









还没有评论,来说两句吧...