fyi-cli 是一个注重隐私的命令行工具,用于管理基于 Alaveteli 平台的信息公开(FOI/OIA)请求。它支持多司法管辖区,可跨新西兰、澳大利亚、英国、德国等 Alaveteli 部署站点跟踪、提交和归档官方信息请求。
主要能力:
- 多司法管辖区支持:适用于任何 Alaveteli 部署,包括 foi-repository(新西兰)、WhatDoTheyKnow(英国)、FragDenStaat(德国)、righttoknow.org.au(澳大利亚)等,并计划提供管辖区感知的元数据和本地化。
- 隐私优先:所有数据存储在本地,支持可选加密和 Tor。
- 请求跟踪:从创建到完成监控 FOI/OIA 请求。
- 自动监控:自动监视实例更新。
- 报告与分析:生成仪表板、关注报告、交接文档。
- 安全存储:加密凭据,集成操作系统钥匙串。
- CLI + MCP:提供命令行工具和面向 AI 助手的 MCP 服务器。
- 导出选项:支持 JSON、CSV、HTML 导出。
- 忠实归档:以 WARC/WACZ 格式捕获请求、通信和附件。
使用方式: 项目核心是 Rust 工作区(fyi-core、fyi-cli、fyi-mcp);旧版 Python 包 fyi_system 仍可作为参考实现,但不再扩展。完整指南见 QUICKSTART.md 和 INSTALL.md。CLI 参考可通过 fyi --help 或 USER_GUIDE.md 查看。归档命令为只读,不需要 API 密钥。discover-bodies 命令用于只读的机构发现,--base-url 为实例/捕获 URL,--catalog-url 仅在机构 CSV 托管于显式备用 URL 时使用。--format jsonl 每行仅包含稳定下游契约字段 url_name、name 和 tags[];默认 JSON 格式还包含检索溯源信息。发现过程使用可联系的 User-Agent,检查 robots.txt,并对 429/5xx 响应进行退避。并发工作进程可指向同一 SQLite 数据库以启用共享限流器,可用 fyi rate-limit-status --db fyi_system.db 检查状态。
适用场景: 适用于需要跨多个 Alaveteli 平台管理信息公开请求的个人、记者、研究人员或透明度倡导者,尤其适合注重隐私、希望本地存储数据并支持离线同步的用户。也可通过 MCP 服务器与 AI 助手集成。
限制与注意事项:
- 项目版本为 0.1.2,正在从仅限新西兰的工具演变为多司法管辖区平台。
- 部分分发渠道(如 Scoop、WinGet、Homebrew、Chocolatey 等)仍处于草稿或未提交状态;cargo-binstall 已就绪但依赖匹配的 GitHub Release 资产。
- 实时冒烟测试中,RightToKnow 对受限 JSON 搜索请求返回 HTTP 403,因此记录为外部可用性跳过,不会尝试捕获。
- 安全漏洞请勿通过公开 GitHub issues 报告,应使用 GitHub 私有漏洞报告。
- 项目采用 MIT 许可证。
- 文档、问题与讨论分别位于 https://edithatogo.github.io/fyi-cli/、https://github.com/edithatogo/fyi-cli/issues 和 https://github.com/edithatogo/fyi-cli/discussions。