このプロジェクトについて

craft(anacraft)はRustで書かれたコマンドラインツールで、ドメインのGoogle Analytics 4セットアップと、そのメトリクスをターミナルダッシュボードとして読み取る機能を持つ。ビジュアル言語はMinecraftテーマ:オーレテクスチャのバー、7つのライブパネル、リアルタイムイベントフィード、実績トーストを備え、osaka-jade(デフォルト)、catppuccin、github、tokyo-night、catppuccin-latteを含む選択可能なパレットがある。コマンドは`craft`、aliasとして`anacraft`が同時にインストールされる。 インストールと基本操作 - インストールスクリプトはanacraft.devから提供され、書き込み可能な場合は/usr/local/bin、そうでなければ~/.local/binにバイナリを配置する(sudo不要)。INSTALL_DIRで別の場所を指定可能。ソースビルドはcargo install --gitで、プレビルトバイナリはGitHub Releasesで公開されている。 - コマンドなしでanacraftを実行するとダッシュボードが開く(dashがデフォルト)。保存されたプロパティがない場合は合成データで動作するため、サインイン前に試せる。 - クイックスタート: 新規ドメイン向けは`craft configure`、既存プロパティの接続は`craft login` → `craft props` → `craft use`。 - 一括レポートはprintして終了: overview, pages, portals(トラフィックソース)、realms(国)、live、demo。--daysと--themeオプションあり。 - グローバルフラグ2つ: --propertyはデフォルト以外のプロパティを選択、--themeは単回の実行のみパレットを上書き。 スクリプティング向けの出力形式 overviewは--format json(単位、前期、変更率、日次ユーザー系列、実績付きの単一ラベルオブジェクト)または--format slack(Block Kitペイロード)に対応。両方ペイロードのみ出力するので、週次ダイジェストはwebhookにパイプするsingle cron lineで可能。いずれもサブスクリプションを必要としない。 ダッシュボード 7つのパネルはキー1〜7(またはアルファベットショートカット)でトグルでき、残りのパネルが端末を埋めるように再流動する: EVENTS、RIGHT NOW(ライブプレイヤーとイベントフィード)、COUNTRIES(世界地図プロット)、TOP PAGES、VITALS(ユーザー、セッション、ビュー、コンバージョン、bounce rate、平均セッション)、TOP COUNTRIES、DAILY USERS。その他の操作: tabでプロパティサイクル、shift-Dで画面のプロパティをローカルで忘れる、tでパレットをサイクル&保存、rで強制再取得、ヘルプオーバーレイ、quit。 アラート `craft watch`は最も新しい完全な日付と先行日の平均を比較し、サイト自体の履歴から導出したパーメトリクス閾値を超える逸脱を報告する。ドロップ、スパイク、「サイレンス」(タグ削除など非ゼロ基底に対してカウントがゼロになる現象)を検出する。デフォルトはメトリクス別に異なり(ユーザー/セッション30%、コンバージョン40%、bounce rate 20%など)、閾値と基底長はconfigでプロパティ別に調整可能。基底が設定最小値を下回る場合はカウントアラートが発火しない。アラートにはメトリクス値、移動量、基底、スパークラインが含まれ、主要チャンネルが移動の大きな割合を占める場合にのみ命名する。状態は~/.anacraft/watch.jsonに日付キーで保存され、同じ日のアラートは1回だけ発火する。終了コードは0(不发火)、2(アラート)、1(エラー)。配信オプション: --every(繰り返しチェック)、--webhook(POST送信)。`craft slack --install`はSlackのインストーelscreenを経てincoming-webhook URLを保存し、選択したチャンネルに投稿できる最小スコープを使用する。 AIアシスタント向け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は単一のライターで、未計測ドメインのプロパティとウェブストリームを作成してタグを返す。loginとプロパティ選択は人間のみのコマンド。応答はプロパティIDと対象日ウィンドウでラベル付けられた構造化JSONで、同一レポートはAPIクォータ制限のため約1分間キャッシュされる。 設定と認証情報 プロパティと設定は~/.config/anacraft/config.toml(XDG_CONFIG_HOME準拠)に保存され、OAuthリフレッシュトークンは意図的にそのディレクトリ外にある~/.anacraft/token.jsonに保持される。複数プロパティがconfigに蓄積されtabでサイクルでき、quit時の最後の表示プロパティがアクティブになる。解決順序は--property、次にANACRAFT_PROPERTY_ID、次に保存済みアクティブプロパティ。他の環境変数: ANACRAFT_WEBHOOK、および組み込みのものの代わりに個人用Google Cloud OAuthクライアントを使用する場合のANACRAFT_OAUTH_CLIENT_ID、ANACRAFT_OAUTH_CLIENT_SECRET。 要件とプロジェクト情報 要件: GA4プロパティ、truecolorターミナル、ソースビルドの場合はRust 1.74以降。リポジトリはApache License 2.0で貢献ガイドラインを含む。cargo run -- dash --demoはGoogleアカウントなしで動作するダッシュボードを提供し、.claude/skills/anacraft/にClaude Codeスキルが同梱されている。 商業的コンテキスト いくつかの機能は有料プラン(Anacrafterおよびそれ以上のティア、月額2.99から、プロジェクトの価格ページ参照)に紐づく: craft configure、watchアラートをSlackへ配信、MCPサーバー。ダッシュボード、watch、MCPサーバーのデモモードはアカウント/サブスクリプションなしで動作し、overviewのJSONおよびSlackレポート形式もサブスクリプション不要とされる。プランまたはログインがない場合、MCPサーバーは起動し続け、ツールは終了するのではなく必要なものを報告する。