Macが単純な質問に答えられない理由
質問は「今日は実際にどこへ行ったのか」です。すべてを見ていたはずのマシンなら答えられそうなものです。ところがMacは、そのままではほとんど答えられません。Appleはサードパーティ向けのスクリーンタイムAPIを提供していません。iOSでその裏側にあるフレームワークは、Macには渡ってきませんでした。Apple自身のスクリーンタイムのペインも、答えとしては物足りません。システム設定の奥にあり、タイムラインはなく、Webサイトを分けて表示するのはSafariだけです。1日をChromeで過ごしていれば、「Google Chrome、5時間」と出て、そこで終わりです。
Tallyは、メニューバーで自分で計測するアプリです。使うのは、macOSが公開している信号、つまり最前面のアプリはどれか、キーボードの前に誰かいるか、マシンがいつスリープまたはロックされたかです。自分で許可したアクセス許可があれば、さらにどのドキュメントやどのWebサイトかも記録します。記録はすべて自分のMacの中にとどまります。以下はすべて、現在配信中のバージョンの機能です。
何も許可しなくても役に立つ
このカテゴリのほとんどのトラッカーは、最初にアクセス許可の壁を出します。Tallyの最初の誠実な点は、何も許可しなくても動くことです。インストールして、どの確認にも答えなくても、アプリごとの正確な合計が得られます。エディタでどれだけ、Slackでどれだけ、ブラウザでどれだけ、といった具合です。
アクセス許可は1つ許可するごとに1層分の詳細を加え、アプリはどれで何が得られるかを明示します。アクセシビリティを許可すると、フォーカスされたウインドウのタイトルを読めるようになり、「Xcode、3時間」が取り組んでいたプロジェクトに、「プレビュー」が実際に読んでいたPDFになります。オートメーションを許可すると、ブラウザにどのサイトが開いているかを尋ねられるので、ブラウザの時間が1つのアイコンの下に積み上がらず、それぞれのサイトに振り分けられます。Safari、Chrome、Brave、Edge、Vivaldi、Opera、Arcはこの方法で読み取ります。
Firefoxは例外ですが、良い意味での例外です。Geckoベースのブラウザはページのアドレスをアクセシビリティツリーから公開しているので、Firefoxにはオートメーションの許可がまったく要りません。許可が足りない場合は、ポップオーバーが一覧の上に固定したバナーで知らせるので、スクロールで見えなくなることはありません。
数字は、席にいなかった時間を差し引く
使用時間トラッカーは、自分の感覚とずれたときにも信頼できて初めて読む価値があり、その信頼は、コーヒーを淹れていた1時間を数えた最初の瞬間に失われます。Tallyの技術の大半は、何を数えないかにあります。
2分間入力がなければ(しきい値は1分から15分の間で変更できます)、現在の区間は中断されます。しかもさかのぼって、離席に気づいた瞬間ではなく、最後のキー入力かクリックの時点まで戻って中断されます。スリープとロック画面も、同じように区間を終わらせます。3秒未満で通り過ぎたアプリはノイズとして破棄されます。そして、8時間を超えて続いたと主張する区間は、信じずに切り詰められます。そんな数字は事実ではなく、バグだという考え方です。

これによってタイムラインにできる空白は、意図したものです。デスクで過ごす1日は、途切れのない1本の棒ではありません。棒を描くトラッカーは、1日ではなく、自分の帳簿を描いているのです。
メニューバーで10秒、デスクトップにカード、その裏にウインドウ
メニューバーのバッジは、クリックする前に1日の様子を伝えます。それは動くTallyのロゴです。リングには今日のカテゴリがロゴ自身の色で満たされ、中央の時計の針は実際の時刻を指します。設定した制限のうち、いちばん埋まっているものが近づくとバッジに琥珀色の点がつき、超えると赤になります。記録を一時停止すると、針は一時停止のバーになり、リングはグレーになります。頼まない限り、数字は表示しません。画面の隅で刻々と変わるカウンターは、機能ではなく神経質なクセですし、アップデートで勝手に数字が現れたら、誰も頼んでいない変更をみんなに押しつけることになります。数字が欲しければ、設定に4つの選択肢があります。今日の合計、目の前のアプリとその時間、いちばん埋まっている制限の達成度、今日のうち集中が占める割合です。制限が迫ると、その表示は琥珀色か赤のピルに入ります。
クリックすると、ポップオーバーが質問の簡易版に答えます。合計に、直前の期間との比較を示す小さなバッジがつき、そのうち集中がどれだけで、気が散るカテゴリにどれだけ行ったかが1行で示されます。「日」には、その下に最長の連続時間つきのタイムラインが続きます。目標は小さなリングの列に並び、制限は近づくとそこに加わります。続いて上位5つのアプリが、棒グラフ、カテゴリごとの色付きの頭文字、その横に最も使ったサイトやプロジェクトとともに表示されます。残りは1行にまとまり、あと何個のアプリで、どれだけの時間かを示し、そこからレポート全体が開きます。「日」と「週」の切り替えで表示範囲が広がります。ポップオーバーに「月」はありません。意図したことです。ポップオーバーに押し込んだ1か月は、形のない数字です。

形がわかるのは、ポップオーバー上部のレポートボタンの先にあるウインドウです。概要は6枚のカードで始まります。集中した時間、最長の連続時間、アプリの切り替え回数、離席時間、最も多い時間帯、そして目標を設定していれば達成した目標です。その下に、期間の形が「集中の内訳」のリングと並び、前の期間より集中していたかどうかを一文で伝えます。1日はタイムライン、1週間は日ごとの積み上げ棒グラフ、1か月は1日1マスのカレンダーのグリッドで、年と、自分で選ぶ日数の期間指定もあります。さらに下には、時間帯(1日なら1時間ごとのリズム、それより長ければヒートマップ)、目標と制限、各アプリの前の期間からの変化つきの時間の使い道、そして主な変化があります。傾向は主な変化をさらに掘り下げ、内訳では、アプリの各行を開くと、中で何が起きたかがわかります。ブラウザの中のサイト、エディタの中のプロジェクト、ターミナルの中で動いたツールです。書き出しボタンで、どれもCSVかJSONで取り出せます。

3つ目の画面は、デスクトップのカードで、3つのサイズがあります。小サイズには今日の合計と、その大半が何だったかが表示されます。中サイズは、使ったアプリと今日までの7日間を加えるので、静かな水曜日は、比べるものがない数字ではなく、静かな水曜日として見えます。大サイズは、より背の高い1週間の上に5つのアプリを並べます。どのカードにも記録の一時停止と再開のボタンがあり、カードをクリックするとレポート全体が開きます。カードがデータベースに触れることはありません。アプリがカードのために書き出す小さなファイルを読むだけで、更新は最大でも1分に1回、見た目が変わらないときは行いません。

一度直せば過去にも反映されるカテゴリ
アプリの名前そのままは正直ですが、読みにくいものです。「ターミナル」という単位で1週間を計画する人はいません。そこでTallyは、時間を10個の標準カテゴリに分類します。コーディング、ライティング、デザイン、コミュニケーション、SNS、エンターテインメント、読書、AI、ユーティリティ、その他です。分類は1つの意図的な軸、つまり活動の種類であって、目的ではありません。名前を変えたり色を変えたり、自分のカテゴリを加えたりできます。「仕事」を含む分類は、仕事を体系的に少なく数えます。仕事のSlackの1時間はコミュニケーションに、仕事の読み物の1時間は読書に入るからです。種類はソフトウェアが答えられる問いですが、目的は答えられません。
各カテゴリは、集中、どちらでもない、気が散るのどれかとしても数えられます。仕事のカテゴリであるコーディング、ライティング、デザイン、読書、AIは最初は集中、SNSとエンターテインメントは気が散るに設定されていて、どれも変更できます。この区分だけが、集中の行、「集中」のカード、「集中の内訳」が読むものです。

標準の割り当ては、よく知られた数百のアプリとサイトをカバーしていますが、自分のツールについては、どこかで間違えるでしょう。直すのはワンクリックです。内訳タブのすべての行にタグのボタンがあり、そこから割り当て直せます。これが見た目以上に良いのは、2つの細部のおかげです。サイトのルールは、アプリのルールより必ず優先されます。ブラウザはカテゴリを映す窓であって、それ自体のカテゴリではないからです。そして、すべての修正はさかのぼって反映されます。カテゴリは数字を読むときに解決され、保存された記録には刻まれないので、ワンクリックで3月も直ります。
自分で決める上限
レポートは、過ぎ去った1日を描写します。制限は、まだ決められることがあるうちに、同じアプリが話しかけてくるものです。ここにあるものの中で、過去ではなく未来についての、ただ1つの機能です。
上限の対象は4つです。人が実際に尋ねる問いは、4つの違う大きさだからです。youtube.comに30分以上使わない(サイト)、SNSに1時間以上使わない(カテゴリ)、エディタに6時間以上使わない(アプリ)、このマシンの前に8時間以上いない(1日全体)です。サイトの制限は末尾の一致で判定されるので、youtube.comの制限はmusic.youtube.comにも及びます。そうしないと罠になります。設定したのはYouTubeの制限であって、そのホスト名の1つではないからです。ルールは目標にもできます。たとえばコーディングを2時間以上。どちらも、1日単位でも1週間単位でも数えられます。設定で追加するか、すでに見ているレポートの行を右クリックして追加します。

すべての上限は、その日またはその週とともにリセットされ、それぞれが、設定するコントロールの下に進み具合を表示します。数字のない制限の一覧では、どれかが問題になっているのか確かめるためにレポートに戻らなければなりません。ポップオーバーに出るのは、いちばん埋まっているものだけで、しかも近づいたときだけです。開くたびに現れるセクションは、見過ごすものがひとつ増えるだけだからです。現在の日または週の目標もそこに最大3つのリングとして表示されます。目標は、確認しに来るものだからです。早めの警告はデフォルトで80%で、変更もオフにもできます。役に立つ瞬間は上限の手前であり、上限に着いた瞬間ではないからです。
開いている区間も、これらすべてに数えられます。区間が閉じるのは、アプリを切り替えたときだけです。保存された記録だけを読む制限だと、離れてから超えたことに気づきます。警告が役に立たなくなる、まさにその瞬間です。
何もブロックされません。 アプリが閉じられることも、サイトが隠されることもなく、交渉相手になる「15分延長」ボタンもありません。それは別の製品で、別の約束を伴います。こっそり牙を生やしたトラッカーは、人が起動しなくなるトラッカーです。
通知は週に1回、制限が近づいたり満たされたりしたときにひとこと
週に1回の通知は、月曜の09:00に届くダイジェストで、前の週と比べて何が変わったかを伝えます。曜日と時刻は変更できますが、抑制は変えられません。変化が「主な変化」と呼ばれるには、10%と15分の両方を超える必要があり、その週に稼働した日が3日未満なら、ダイジェストは何も言いません。2回分のセッションで作ったまとめは、スーツを着たノイズだからです。ソースコードのルールは引用に値します。間違ったことを言うくらいなら、何も言わない。
もう1つは、制限が満たされたときです。80%での予告(デフォルトでオン、変更もオフも可能)のあと、上限に達したときにもう1回。どちらも、ルールごとに1日または1週間に1回だけです。達成した目標も、オンにすればそう知らせます。すべて、起きた瞬間に通知され、あとの予定に積まれることはありません。これは細かい話ではありません。未来に発火するものが何も積まれないので、Tallyを終了すれば、勝手に鳴るものは何も残りません。もう1つ欲しいなら、1日のまとめを夜に届けることもできます。オンにするまではオフです。どの通知も、計測をオフにしなくてもオフにできます。
データの行き先は、どこにも行かない
Tallyが記録するものはすべて、自分のMacに保存されます。アカウントも、サーバーも、同期もありません。使用状況のデータがネットワークに触れることはありません。デスクトップのカードは、アプリの外からデータを読む唯一のもので、同じマシンの共有コンテナにある、カードに表示済みの数字だけが入った小さなファイルを読みます。Webサイトについては、リリース版はドメインだけを保存し、完全なアドレスは保存しません。ウインドウタイトルがディスクに残るのは多すぎると感じるなら、スイッチ1つで詳細の記録をオフにでき、Tallyはアプリの合計だけを記録します。設定では、これまでに保存したものをすべてワンクリックで削除できます。保存期間も選べます。30日、90日、365日、または無期限で、デフォルトは90日です。
同じ設計が、このアプリがないところも説明しています。TallyはMac App Storeのアプリではなく、直接ダウンロードの配信です。サンドボックスは、製品全体が立脚するアクセシビリティの読み取りを、まさに禁止しているからです。
あえてやらないこと
介入しません。Tallyには上限がありますが、上限は伝えるだけです。アプリを閉じることも、サイトを隠すことも、画面を暗くすることも、15分の延長を提案することもありません。休止時間のスケジュールも、やめるよう告げる画面もありません。問題が見えないことではなくやめられないことなら、それはブロッカーの仕事です。
タイトルバー以外は読みません。アクセシビリティがオンのときは、フォーカスされたウインドウのタイトルを取得します。オートメーションがオンのときは、ブラウザにどのサイトが開いているかを尋ねます。キー入力の記録も、画面キャプチャもなく、ドキュメントの中身を見るものもどこにもありません。
生産性スコアはありません。評価も10点満点の点数も渡されません。集中の行は、集中か気が散るとラベルをつけたカテゴリを足し合わせるだけで、どちらにするかはこちらが決めます。このアプリの中の唯一の判断は、レポートを見ながら自分が下すものです。
そして、空白を埋めることはできません。Tallyが動いていなかった日は、記録できません。これが「ログイン時に起動」のスイッチの存在理由のすべてです。
費用と、ほかに見ておくもの
TallyにはmacOS 14以降が必要で、AppleシリコンとIntelの両方で動き、サイズは約11 MBです。$4.99の買い切りで、14日間のトライアルはカードもメールアドレスも不要、手に入るライセンスは永久です。詳しい仕様はTallyのページにあります。
計測するのも、このMacだけです。スマートフォンの時間、タブレットの時間、もう1台のノートパソコンは範囲外で、Tallyは4台について大まかに知るより、1台について完全であることを選びます。
数字が、午後が消えていると告げているなら、2つの隣のアプリが次の一手を示します。Anchoredは、時間を記録するもう半分の、意図的な側面です。メニューバーの1つのタスクとそのタイマーで、Mac用のメニューバーのタスクタイマーで機能別に紹介しています。そして、レポートの最上位の行が、支配されたくないサイトなら、NoMoreが時間割ではなく判断をその前に置きます。MacでWebサイトをブロックする方法をご覧ください。