Skip to content

v1.5.0

Choose a tag to compare

@askender askender released this 02 Oct 02:59
· 7 commits to main since this release

--json 机器可读输出 / Machine-readable JSON output

  • 只读命令 fans/status/temps/power 支持 --json;watch --json 每行一个
    JSON 对象(JSONL),适合 jq / 脚本 / 监控管道 /
    the read-only commands accept --json; watch --json emits one JSON
    object per line (JSONL) — ready for jq, scripts and monitoring pipes
  • 键名恒为英文(不受界面语言影响),未知值为 null /
    keys are always English regardless of interface language; unknown values
    are null
  • 修掉了 power --json USB 数组漏闭合括号导致非法 JSON 的 bug(已入冒烟
    测试回归) / fixed a real bug where the USB array in power --json was
    never closed (now a smoke-test regression)
fansctl status --json
fansctl watch --json 5 | jq -c '.fans[0].actual_rpm'

bar 开机自启一键管理 / One-command auto-start management

fansctl bar install      # 写 LaunchAgent + 立即启动 + 登录自启
fansctl bar status       # 是否安装/加载/运行中
fansctl bar uninstall    # 停止并移除
  • 自动定位自身真实路径(解析 Homebrew 符号链接),无需手改 plist、无需
    sudo;重载时先 bootout 等待退出再 bootstrap /
    the agent is generated pointing at the real binary path (resolves
    Homebrew symlinks) — no hand-edited plist, no sudo; reload does a clean
    bootout-then-bootstrap

  • 兼容 macOS 15 的 launchctl 怪癖:两参数 bootout gui/501 label 恒报
    EIO,必须用连写 service-target 形式 /
    works around a macOS 15 launchctl quirk: the two-argument
    bootout gui/501 label form always fails with EIO — the slash-joined
    service-target form is used instead

  • 在 sudo/setuid 上下文拒绝执行 /

    refuses to run under sudo/setuid

fansctl doctor 诊断 / Diagnostics

一页收集机型 / SMC 键数 / 风扇 / 最热传感器 / 供电 / setuid 助手 /
自启与守护状态 / 电池循环数。报 issue 请附上输出。无 AppleSMC 环境
(CI 虚拟机)容错通过、退出码恒 0 /
one page: machine, SMC key count, fans, hottest sensor, power, setuid
helper, auto-start & daemon state, battery cycle count — attach the output
when filing issues. Tolerates machines without AppleSMC (exit code always
0, CI-friendly).

man 手册页 + zsh/bash 补全 / Man page + shell completions

  • make install 与 Homebrew 包现在一并安装 man fansctl 手册页、
    zsh _fansctl 与 bash 补全(无需额外配置) /
    make install and the Homebrew package now ship a man page
    (man fansctl), zsh _fansctl and bash completions
  • Makefile 路径由 PREFIX 派生,Homebrew keg 自动落位,formula 零改动 /
    paths derive from PREFIX, so they land in the Homebrew keg with no
    formula changes

其他 / Misc

  • 修复 9 处 -Wformat-security 警告(无参 printf(L(...)) 统一为
    printf("%s", L(...))) / fixed 9 -Wformat-security warnings
  • CI(GitHub Actions macos-14)持续跑构建 + 冒烟测试 /
    CI (GitHub Actions macos-14) runs build + smoke tests

下载 / Download

fansctl-v1.5.0-macos-arm64.zip — Apple Silicon (arm64),ad-hoc 签名,
零依赖单二进制 / single dependency-free binary, ad-hoc signed.

首次运行如被 Gatekeeper 拦截:右键 → 打开,或
xattr -d com.apple.quarantine fansctl /
If Gatekeeper blocks it: right-click → Open, or run
xattr -d com.apple.quarantine fansctl.

安装 / Install: brew tap askender/tap && brew install fansctl

🤖 Generated with Claude Code