Gitのコミット履歴から作業実績レポートを自動生成するCLIツール。
社内報告のために、コミット履歴から作業時間を推定し、見やすいレポートとして出力します。
- AI要約生成: コミット履歴からAIが作業内容を自動要約(NEW!)
- 全体サマリ、タスク別グループ化、セッション要約の3段階
- 複数のAIプロバイダー対応(Claude, OpenAI, Ollama等)
 
- 作業時間の推定: コミット間の時間差から作業セッションを自動検出
- 複数の出力形式: Markdown、JSON、CSVに対応
- 柔軟な期間指定: 今日、昨日、今週、カスタム期間など
- カスタマイズ可能: タイムアウト値や最小/最大セッション時間を調整可能
- 詳細な統計: ファイル変更数、追加/削除行数なども表示
npm install
npm run buildグローバルにインストールする場合:
npm install -g .# 今日の作業実績を表示(デフォルト)
npm run dev
# または開発モード
npm run dev -- --today
# 昨日の作業実績
npm run dev -- --yesterday
# 今週の作業実績
npm run dev -- --this-week
# 先週の作業実績
npm run dev -- --last-week
# 過去7日間
npm run dev -- --days 7
# カスタム期間
npm run dev -- --from 2025-01-01 --to 2025-01-31# AI要約を有効化(自動でプロバイダーを検出)
npm run dev -- --today --ai-summary
# 特定のAIプロバイダーを指定
npm run dev -- --ai-summary --ai-provider claude
npm run dev -- --ai-summary --ai-provider codex
npm run dev -- --ai-summary --ai-provider gemini
npm run dev -- --ai-summary --ai-provider anthropic
npm run dev -- --ai-summary --ai-provider openai
npm run dev -- --ai-summary --ai-provider ollama対応AIプロバイダー:
CLIツール(APIキー不要、最優先):
- Claude CLI: claudeコマンドがインストール済みの場合
- Codex CLI: codexコマンドがインストール済みの場合
- Gemini CLI: geminiコマンドがインストール済みの場合
API サービス(要APIキー):
- Anthropic API: 高品質な要約(環境変数 ANTHROPIC_API_KEY必要)
- OpenAI API: 安定した要約(環境変数 OPENAI_API_KEY必要)
ローカルサービス:
- Ollama: ローカル実行、無料(要Ollama起動)
優先順位(auto-detect時):
- CLIツール(インストール済みなら自動検出、APIキー不要)
- API サービス(APIキーが設定されていれば利用)
- ローカルサービス(Ollamaが起動していれば利用)
AI要約の出力例:
## 📊 Overall Summary (AI-Generated)
今日はGit作業実績レポートツールの開発を行いました。
プロジェクトの初期セットアップとTypeScript環境構築、
AI要約機能の実装、複数のAIプロバイダー対応を完了しました。
## 📋 Tasks (AI-Grouped)
### Git task logger プロジェクトの初期実装
**Summary:** TypeScript環境のセットアップ、基本機能の実装、
テストファイルの追加を行いました。
**Commits:** 4
### バグ修正とコード改善
**Summary:** Gitコマンドのシェル解釈問題を修正しました。
**Commits:** 1# Markdown形式(デフォルト)
npm run dev -- --today --format markdown
# JSON形式
npm run dev -- --today --format json
# CSV形式(Excelで開ける)
npm run dev -- --today --format csv# 別のリポジトリを指定
npm run dev -- --repo /path/to/repo# タイムアウトを60分に設定(コミット間隔が60分以上なら別セッション)
npm run dev -- --timeout 60
# 最小セッション時間を10分に設定
npm run dev -- --min-session 10
# 最大セッション時間を180分に設定
npm run dev -- --max-session 180| オプション | 説明 | デフォルト | 
|---|---|---|
| --today | 今日のコミット | ✓ | 
| --yesterday | 昨日のコミット | |
| --this-week | 今週のコミット | |
| --last-week | 先週のコミット | |
| --from <date> | 開始日 (YYYY-MM-DD) | |
| --to <date> | 終了日 (YYYY-MM-DD) | |
| --days <number> | 何日前まで遡るか | |
| --format <type> | 出力形式 (markdown/json/csv) | markdown | 
| --repo <path> | リポジトリパス | カレントディレクトリ | 
| --config <path> | 設定ファイルパス | |
| --timeout <minutes> | コミット間タイムアウト(分) | 120 | 
| --min-session <minutes> | 最小セッション時間(分) | 5 | 
| --max-session <minutes> | 最大セッション時間(分) | 240 | 
| --ai-summary | AI要約を生成 | オフ | 
| --ai-provider <type> | AIプロバイダー選択 | auto | 
設定ファイル .git-task-logger.json をプロジェクトルートまたはホームディレクトリに配置することで、デフォルト設定をカスタマイズできます。
{
  "timeoutMinutes": 120,
  "minSessionMinutes": 5,
  "maxSessionMinutes": 240,
  "defaultLastCommitDuration": 30,
  "aiProvider": "anthropic",
  "apiKeys": {
    "anthropic": "sk-ant-...",
    "openai": "sk-..."
  }
}- timeoutMinutes: コミット間のタイムアウト(この時間以上空いたら別セッションとみなす)
- minSessionMinutes: 最小セッション時間
- maxSessionMinutes: 最大セッション時間
- defaultLastCommitDuration: 最後のコミット後の作業時間として加算する時間
- aiProvider: 使用するAIプロバイダー(- claude|- codex|- gemini|- anthropic|- openai|- ollama|- auto)
- apiKeys: 各AIプロバイダーのAPIキー
- コミットを時系列順に並べる
- コミット間の時間差を計算
- 時間差がtimeoutMinutes以下なら同じセッション、超えたら別セッションとする
- 各セッションの最後のコミットにはdefaultLastCommitDurationを加算
- セッション時間がminSessionMinutes未満なら最小値に、maxSessionMinutes超過なら最大値に調整
# Work Report
**Period:** 2025-10-22 - 2025-10-22
## Summary
- **Total Work Time:** 3h 45m
- **Total Commits:** 8
- **Files Changed:** 15
- **Lines Added:** 234
- **Lines Deleted:** 89
## Work Sessions
### Session 1
- **Time:** 09:30 - 11:45
- **Duration:** 2h 15m
- **Commits:** 5
...完全な構造化データとして出力されるため、他のツールとの連携が容易です。
Excel等で開いて、グラフ化したり集計したりできます。
MIT
作業実績の報告が面倒だと感じているすべての開発者のために。
- Web UIの追加
- 複数リポジトリ対応
- チーム集計機能