这个项目能做什么
craft(anacraft)是一款用 Rust 编写的命令行工具,可为域名配置 Google Analytics 4 并将指标数据以终端仪表盘形式呈现。其视觉风格采用 Minecraft 主题:矿脉纹理进度条、七个实时面板、事件流和成就提示,配色方案可选 osaka-jade(默认)、catppuccin、github、tokyo-night 及 catppuccin-latte。命令名为 craft,anacraft 作为别名一同安装。
安装与基本用法
- 安装脚本由 anacraft.dev 提供,有写入权限时会将二进制文件放置于 /usr/local/bin,否则放入 ~/.local/bin,无需 sudo;可通过 INSTALL_DIR 指定其他路径。源码编译使用 cargo install --git,预编译二进制发布在项目的 GitHub Releases 中。
- 不指定命令运行 anacraft 将打开仪表盘(dash 为默认子命令)。未保存 Property 时使用合成数据,可在登录前试用。
- 快速上手:对新域名运行 craft configure,或对已有 Property 依次执行 craft login、craft props 和 craft use。
- 一次性报告打印后退出:overview、pages、portals(流量来源)、realms(国家)、live 和 demo,支持 --days 和 --theme 选项。
- 两个全局标志:--property 选择非默认的 Property;--theme 单次运行覆盖配色。
供脚本使用的输出格式
overview 支持 --format json(含单位、上一周期、百分比变化、每日用户序列及成就的单个标注对象)或 --format slack(Block Kit 载荷)。两种格式均只打印载荷本身,因此每周摘要只需一行 cron 任务管道到 webhook 即可。这两种格式均无需订阅。
仪表盘
七个面板可通过数字键 1–7(或字母快捷键)逐个切换,其余面板自动重排填满终端:EVENTS(事件)、RIGHT NOW(实时玩家与事件流)、COUNTRIES(世界地图)、TOP PAGES(热门页面)、VITALS(用户数、会话数、浏览量、转化数、跳出率、平均会话时长)、TOP COUNTRIES 和 DAILY USERS(每日用户)。其他操作包括:Tab 循环切换 Property、Shift+D 本地清除当前屏幕显示的 Property、t 循环并保存配色、r 强制重新拉取、帮助覆盖层及退出。
告警
craft watch 将最近完整一天的数据与前若干天均值对比,超过基于站点历史自行派生的各指标阈值的即发出报告。它会标记下降、突增和“沉默”(计数降至零而基线非零,例如被移除的代码片段)。各指标默认值不同(例如用户数和会话数为 30%,转化数为 40%,跳出率为 20%),阈值和基线长度可在配置中按 Property 调优;基线低于配置最小值时不会触发计数告警。告警包含指标值、变动量、基线和迷你图,仅当某渠道占变动份额较大时才标注主导渠道。状态保存在 ~/.anacraft/watch.json,以天为键,确保同一天只告警一次;退出码 0 表示无告警、2 表示有告警、1 表示出错。投递选项包括 --every 重复检测和 --webhook 发送 POST;craft slack --install 会引导完成 Slack 自身的安装流程并保存 Incoming Webhook URL,仅使用能向目标频道发帖的最小权限范围。
面向助手的 MCP 服务器
craft mcp 通过 Model Context Protocol 暴露报告,使 Claude Desktop、Claude Code 或其他 MCP 客户端能够回答关于站点的查询。craft mcp --install 向客户端配置写入服务器条目(--uninstall 则移除);Claude Code 使用 claude mcp add。可用工具包括 site_status、live_visitors、list_pages、list_events、list_referrers、list_traffic_sources、list_countries、list_properties、search_pages、search_events 和 configure_site。其中 configure_site 是唯一写入工具,为未追踪的域名创建 Property 和 Web Stream 并返回代码片段;登录和 Property 选择仍仅限人工操作。响应为带 Property ID 和覆盖日期窗口的结构化 JSON,相同报告约缓存一分钟以减少 API 配额消耗。
配置与凭据
Property 及其设置存储在 ~/.config/anacraft/config.toml(遵循 XDG_CONFIG_HOME),OAuth 刷新令牌则有意置于该目录之外,保存在 ~/.anacraft/token.json。多个 Property 累积在配置中并通过 Tab 循环,退出时最后查看的 Property 成为活跃项。优先级顺序为:--property、ANACRAFT_PROPERTY_ID、已保存的活跃 Property。其他环境变量包括 ANACRAFT_WEBHOOK,以及使用个人 Google Cloud OAuth 客户端替代内置客户端时的 ANACRAFT_OAUTH_CLIENT_ID 和 ANACRAFT_OAUTH_CLIENT_SECRET。
要求与项目说明
要求:GA4 Property、真彩色终端;源码构建还需 Rust 1.74 或更高版本。仓库采用 Apache License 2.0 许可并包含贡献指南;cargo run -- dash --demo 可在无 Google 账户的情况下展示可用的仪表盘;另随项目附带了位于 .claude/skills/anacraft/ 的 Claude Code Skill。
商业说明
部分功能绑定付费计划(称为 Anacrafter 及以上层级,起价每月 2.99 美元,详见项目定价页):craft configure、Watch 告警投递至 Slack、以及 MCP 服务器。仪表盘、Watch 和 MCP 服务器的演示模式无需账户或订阅即可运行,overview 的 JSON 和 Slack 报告格式也明确说明无需订阅。若缺少计划或登录态,MCP 服务器仍可启动,其工具会返回所需信息而非直接退出。
评论
0 评分人数达到10人后显示
登录后参与讨论。