環境
- Claude Code 2.1.92
設定
今までCodexを使っていたが、最近ではClaude Codeがメインになった。 定額プランなのでトークンを気にする必要がなく、年額プランを契約してしまったので当分はClaude Codeを使い続けることになる。 Claude Codeは雑な要求に対してもいい感じに実装してくれるので重宝している。
そんな俺が普段使ってるClaudeCodeの ~/.claude/settings.json の設定は以下。
{ "permissions": { "defaultMode": "bypassPermissions" }, "statusLine": { "type": "command", "command": "~/.claude/statusline.py" }, "enabledPlugins": { "typescript-lsp@claude-plugins-official": true }, "language": "日本語", "spinnerTipsEnabled": false, "autoMemoryEnabled": false, "skipDangerousModePermissionPrompt": true }
permissions.defaultMode:bypassPermissionsに設定することで毎回の許可確認を省略できる 個人開発でいちいち待ってられるかstatusLine: カスタムスクリプトを指定してステータスラインを表示enabledPlugins: TypeScript LSPを有効化language: インターフェース言語を日本語に設定spinnerTipsEnabled: スピナーのヒント表示を無効化autoMemoryEnabled: 自動メモリ機能を無効化 必要があればAGENTS.mdに書きたいskipDangerousModePermissionPrompt: 危険なモードでの許可プロンプトをスキップ
~/.claude/statusline.pyの中身は以下 作成後に chmod +x ~/.claude/statusline.py 忘れずに。
#!/usr/bin/env python3 import json import sys data = json.load(sys.stdin) R = '\033[0m' DIM = '\033[2m' BOLD = '\033[1m' RINGS = ['○', '◔', '◑', '◕', '●'] def gradient(pct): if pct < 50: r = int(pct * 5.1) return f'\033[38;2;{r};200;80m' else: g = int(200 - (pct - 50) * 4) return f'\033[38;2;255;{max(g, 0)};60m' def ring(pct): idx = min(int(pct / 25), 4) return RINGS[idx] def fmt(label, pct): p = round(pct) return f'{DIM}{label}{R} {gradient(pct)}{ring(pct)} {p}%{R}' model = data.get('model', {}).get('display_name', 'Claude') parts = [f'{BOLD}{model}{R}'] ctx = data.get('context_window', {}).get('used_percentage') if ctx is not None: parts.append(fmt('ctx', ctx)) five = data.get('rate_limits', {}).get('five_hour', {}).get('used_percentage') if five is not None: parts.append(fmt('5h', five)) week = data.get('rate_limits', {}).get('seven_day', {}).get('used_percentage') if week is not None: parts.append(fmt('7d', week)) print(' '.join(parts), end='')
以下の記事のスクリプトを拝借した。