
free-coding-models安全与隐私深扒免费编码模型CLI的API Key本地存储、npm溯源签名与匿名遥测全解析【免费下载链接】free-coding-modelsFind, benchmark and install in CLI 170 FREE coding LLM models across 15 providers in real time项目地址: https://gitcode.com/gh_mirrors/fr/free-coding-modelsfree-coding-models简称 FCM是一款免费的编码 LLM 模型扫描与安装 CLI 工具能实时对比 170 个免费模型并写入你的 AI 编程工具。凡是会读取 API Key 的终端工具用户最关心的就是三件事密钥存在哪、供应链可不可信、会不会偷偷上传数据。本文结合源码把这三块机制完整讲清楚。30秒速览这个免费编码模型工具的安全边界关注点实际行为API Key 去向仅存在本地一个 JSON 文件只发给对应服务商系统权限0600仅属主可读写启动时自动检查并提示修复特权要求永不要求 sudo/root网络行为仅三类出口服务商 API、npm 版本检查、匿名遥测依赖面纯 JavaScript 小依赖无原生编译模块以上承诺并非口头声明官方安全策略文档 SECURITY.md 明确列出了这个工具不做什么不收集/传输/存储源代码、不向任何自运营服务器发送提示词与补全内容、不执行远程任意代码。API Key 本地存储密钥为什么不会外泄存储位置与文件权限FCM 的所有数据集中在一个文件里~/.free-coding-models.json包含各服务商的 API Key、开关、收藏与路由配置完整结构见 docs/config.md。该文件创建时即写入0600权限——只有属主能读写同机其他用户无法窥探。启动时的权限自检与自动修复这是源码里最用心的部分之一。src/core/security.js 中的checkConfigSecurity()会在界面启动前完成一次权限体检POSIX 系统检测模式位是否0600若过宽如 644 全局可读则打印安全警告交互终端下询问是否一键chmod 600修复Windows由于chmod在 NTFS 上几乎无效改为调用icacls读取真实 ACL——确认继承已关闭、授权仅含当前用户SYSTEM/管理员除外修复后还会重新读取 ACL 验证没有证据不声称成功防骚扰设计若修复失败会写入一个 30 天有效的确认标记文件避免每次启动都弹窗唠叨同时给出手动修复命令。你也可以用--fix-permissions或--yes让它在启动时直接静默修复。原子写入、备份与自修复写入路径同样设防。src/core/config.js 的saveConfig()采用临时文件 原子重命名写入后立即回读验证所有 Key 是否完好每次覆盖前在备份目录保留最近 5 份快照验证失败时自动从备份恢复。还有一个巧妙的细节配置中的 Key 支持${MY_VAR}环境变量占位符形式见 src/core/config.js 的注释——磁盘上只存占位符真正的密钥始终留在环境变量里不落盘。Key 的传输边界Key 只出现在两类地方发往对应服务商 API 请求头的鉴权字段以及你显式启动的编码工具配置。源码注释明确声明 Key 永远不会被打印明文、写日志或塞进遥测。npm 溯源签名与供应链安全npm ProvenanceSigstore是什么很多被 npm 包投毒的新闻让人对npm install -g本能警惕。FCM 的对策是启用 npm 官方 Provenance每次发布都附带Sigstore 签名签名链路能证明这个包确实由官方 CI 从官方仓库构建而非中间人篡改的产物。你在 npm 页面或npm audit signatures中都能查到这条签名链。配套的供应链清单SECURITY.md还包括SBOM每个 Release 附带软件物料清单可逐项核对依赖最小依赖面运行时仅 chalk终端着色、socket.ioWeb 仪表盘实时刷新与三个 TanStack/Table 前端库全部纯 JS、无原生编译步骤——依赖越少攻击面越小持续审计CI 每次推送跑npm auditDependabot 每周自动更新依赖pnpm-lock.yaml已提交锁定版本。版本检查与自动更新工具启动时会向 npm 注册表查询最新版本src/core/updater.js这是除服务商 API 外唯一的主动出网行为之一。更新通过检测到的包管理器npm/bun/pnpm/yarn走标准全局安装流程仓库检出存在.git与 Docker 环境会自动跳过自我更新避免更新循环。匿名遥测机制全解析到底收集了什么匿名 ID一个本地生成的随机 UUIDsrc/core/telemetry.js 首次运行时生成形如anon_xxxx-xxxx-...的随机 ID存于本地配置文件用于跨次启动识别同一匿名用户。它不是账号、不含邮箱/主机名等可关联信息。事件内容清单遥测属性由 buildTelemetryProperties() 构建全部字段只有应用名称与版本号工具模式opencode / openclaw / crush ...操作系统macOS / Windows / Linux终端家族iTerm2、Windows Terminal、VS Code Terminal 等归一化标签从不发送完整环境变量README 的遥测章节与代码一致没有任何个人身份信息、API Key、提示词、源代码或文件路径离开你的机器。发送机制绝不阻塞、绝不报错sendUsageTelemetry()是典型的 fire-and-forget硬性 1.2 秒超时失败静默吞掉分析永远不影响 CLI 主流程src/core/telemetry.js。三种方式关闭遥测优先级从高到低isTelemetryEnabled()启动时加--no-telemetry单次运行生效环境变量FREE_CODING_MODELS_TELEMETRY0设置界面中的持久化开关写入配置的telemetry.enabled。另外TUI 里按J/I发送的功能请求与 Bug 反馈走 Discord Webhook需要你显式配置 Webhook 环境变量才会生效且只携带消息本身和版本/系统等匿名页脚。新手安全使用建议3条首次运行后看一眼权限若曾手动移动过配置文件运行free-coding-models --fix-permissions或直接chmod 600 ~/.free-coding-models.json多用户机器用环境变量占位把 Key 存成${GROQ_API_KEY}形式磁盘上只留占位符密钥永不落盘企业内网可直连白名单出网目标只有服务商 API 端点、registry.npmjs.org版本检查与遥测端点便于防火墙策略放行。发现疑似漏洞时通过 SECURITY.md 约定的私密通道报告48 小时内确认、5 个工作日初评、30 天内修复目标不要在公开 Issue 中披露细节。【免费下载链接】free-coding-modelsFind, benchmark and install in CLI 170 FREE coding LLM models across 15 providers in real time项目地址: https://gitcode.com/gh_mirrors/fr/free-coding-models创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考