「お前のClaude Codeの使い方は間違っている」という記事が少し前に伸びていた。読みながら思った。正しいか間違ってるかは知らんが、俺は自分のログで確かめられるじゃないか。Claude Codeは会話ログを全部 ~/.claude/projects/ にJSONLで残している。自分の環境には1,434セッション・415MB分あった。
全部数えた。期間は5月4日から8月2日までの91日間。先に一番効いた数字を言うと、この91日間、Claude Codeを触らなかった日は0日だった。1日も無い。旅行の日も、体調が終わってた日も、ログにはセッションが残っている。使い方どうこうの前に、まず生活に食い込んでいた。
[toc]
数え方
ログの構造は単純で、1行1イベントのJSONL。type: "user" がこちらの発話、type: "assistant" がAI側、ツール実行は tool_use ブロックで記録される。全ファイルをPythonでなめて、タイムスタンプ・文字数・ツール名を集計した。外部ライブラリなし。
for path in glob.glob("~/.claude/projects/*/*.jsonl"):
for line in open(path):
d = json.loads(line)
if d["type"] == "user":
hours[jst(d["timestamp"]).hour] += 1 # 時間帯
days[jst(d["timestamp"]).date()] += 1 # 日付
elif d["type"] == "assistant":
for b in d["message"]["content"]:
if b.get("type") == "tool_use":
tools[b["name"]] += 1 # ツール使用
以下、数えて出てきた事実を重い順に並べる。
休みが0日
計測期間91日、ユーザー発話のあった日91日。皆勤。自分では「たまに触らない日もある」と思っていた。思っていただけだった。
発話の26%が深夜0〜5時
時間帯別のピークは18時台の887発話で、そこは健全。問題はその後で、0時台377・23時台351・1時台192と続き、深夜0〜5時だけで全発話の26%を占めていた。4回に1回は、寝るべき時間にAIと話している。「AIで生産性が上がった」という話にこの26%を入れるべきなのかどうか、自分の場合、伸びたのが生産性なのか稼働時間なのか区別がついていない。
1日801発話の日がある
最多日は7月19日、801発話。1発話1分としても13時間しゃべり続けた計算になる。この日何をしていたかログを見ると、記事を量産しては直させていた。801回言わないと進まない作業だったのか。当日は何も感じていなかったので、数字を見て初めて出てきた問いだ。
セッションの半分以上で、俺は何もしていない
セッション長の中央値は0分だった。半分以上のセッションが1往復で終わっている。正体は深夜と早朝に回っているcronの自動実行(記事の自動下書き、毎朝のデータ集計)で、回数だけ見ると、俺が使うより勝手に動いている方が多い。91日皆勤の種明かしも半分これで、俺が寝ててもセッション数は増える。
一番やらせているのはコードを書くことじゃなかった
ツール実行回数の上位。
| ツール | 回数 |
|---|---|
| Bash(シェル実行) | 4,907 |
| Edit(コード編集) | 1,406 |
| Read(ファイル読み) | 1,085 |
| WebSearch + WebFetch | 1,073 |
| Write(ファイル新規作成) | 745 |
「AIにコードを書かせている」つもりでいたが、EditよりBashの方が3.5倍多い。ファイル操作、集計、curl、git。うちのClaude Codeは実態としてシェルを持った作業員で、コード生成の精度の話をする以前に、主戦場は昔ながらのシェル芸だった。
「やり直し」と言った回数、130回
発話から「やり直し」「違う」「だめ」「おかしい」系の語を数えたら130回、全発話の3.9%。26回に1回はキレ気味に差し戻している。正直この数字は思ったより低かった。体感では毎日キレてる気がしていたが、キレた記憶が強く残るだけで、頻度は少数派。
AIから質問された回数、96回
AI側から選択肢つきで聞き返してきた回数が91日で96回あった。ほぼ1日1回。人間がAIに問いを投げた回数は3,314で、逆方向は96。比率にして35:1。この比が今後縮むのかは分からないが、少なくとも今のログ上では、問いはほぼ一方通行だった。
貼り付けた文字468万字、AIの返答207万字
ユーザー側の発話は合計468万字。手で打った量ではなくて、大半はログ・エラー・記事草稿の貼り付けだ。AIのテキスト返答は207万字なので、俺の方が2倍しゃべっている。ただその中身のほとんどが自分の言葉じゃない。エラーを貼って、ログを貼って、出力を貼り直している。
数えた後の自己評価
- 「たまに休んでる」→ 皆勤だった
- 「AIにコードを書かせてる」→ シェル作業が3.5倍だった
- 「自分が使ってる」→ 回数の半分以上は自動実行だった
- 「毎日キレてる」→ 3.9%だった
4つとも外れた。使い方が間違っているのかどうかは、正直まだ分からない。判定する基準を自分が持っていないことが分かっただけで、冒頭の記事への答えは出せていない。
この集計の限界
- 日付集計はUTC基準なので、JSTの「日」とは最大9時間ズレる。「91日皆勤」は±1日の誤差がありうる
- 「やり直し」系の検出は単語マッチで、文脈は見ていない。引用や無関係なヒットも混ざる
- ユーザー468万字には自動実行のプロンプトも含まれる。手打ち文字数は分離できていない
- 1,434セッションには実験用の使い捨てセッションも含まれる。「普段使い」だけの数字ではない
自分のログを数えるなら
最初の1行はこれでいい。
# 自分のClaude Codeセッション数
ls ~/.claude/projects/*/*.jsonl | wc -l
数字が1個出た瞬間、自分のAI活用の話は体感談義から実測に変わる。俺の場合、その最初の数字が「休み0日」で、これはいまだに消化できていない。