macOS上でiTermを通じて、指定した時刻にClaude Codeコマンドを実行するTauri 2.0デスクトップアプリケーション。
- 🕐 スケジュール実行: 指定した時刻にClaudeコマンドを実行
- 🔄 Rate Limit自動リトライ: Rate Limitを検出したら自動的に再実行
- 📊 リアルタイム監視: 実行状況とターミナル出力を追跡
- 💾 設定の永続化: 設定を保存して次回も利用可能
- 🖥️ iTerm統合: iTermとのシームレスな統合
- 🎯 ウィンドウ管理: 新規ウィンドウまたは既存セッションでの実行を選択可能
- macOS(iTerm統合のため必須)
- iTermがインストールされていること
- Claude Codeがインストール・設定済みであること
- Node.js 20以上とnpm/pnpm(ビルド用)
- Rustツールチェーン(ビルド用)
Releasesページから最新版のDMGファイルをダウンロードしてください。
重要: macOSのセキュリティ警告について
GitHub Actionsでビルドされたアプリケーションは開発者署名がないため、初回起動時に「壊れているため開けません」または「開発元を検証できません」というエラーが表示される場合があります。以下のいずれかの方法で解決できます:
# アプリケーションから属性を削除
xattr -cr "/Applications/Claude Code Runner.app"
# またはDMGファイルから属性を削除してからインストール
xattr -cr ~/Downloads/Claude.Code.Runner_*.dmg- アプリをダブルクリックして警告を表示
- 「システム設定」→「プライバシーとセキュリティ」を開く
- セキュリティセクションで「"Claude Code Runner"は開発元を確認できないため...」の横の「このまま開く」をクリック
- パスワードを入力して許可
一度これらの手順で開いた後は、通常通りダブルクリックで起動できるようになります。
- リポジトリをクローン:
git clone https://github.com/yourusername/tauri-claude-code-runner.git
cd tauri-claude-code-runner- 依存関係をインストール:
npm install- アプリケーションをビルド:
npm run tauri:build- ビルドされたアプリケーションは
src-tauri/target/release/bundle/にあります
インストール後、アクセシビリティ権限を付与する必要があります:
- システム設定 > プライバシーとセキュリティ > アクセシビリティ を開く
- Claude Code Runner をリストに追加
- アプリの横にあるスイッチを有効にする
- アプリケーションを起動
- 実行時刻を設定: Claudeコマンドを実行する時刻を選択
- ディレクトリを選択: コマンドを実行する作業ディレクトリを選択
- オプションを設定: Claude Codeのオプションを設定(デフォルト:
--model opus) - コマンドを入力: Claudeに実行させたいコマンドを入力
- 「開始」をクリック: アプリは指定時刻まで待機して実行
- 新しいiTermウィンドウを作成
- 指定されたディレクトリに移動
- 完全なClaudeコマンドを実行
- 現在のiTermセッションにコマンドのみを送信
- セッションでClaude Codeが既に実行されている必要があります
- 会話を継続する場合に便利
アプリはRate Limit処理のための2つのモードを提供:
-
自動リトライモード:
- Rate Limitメッセージを監視
- 制限がリセットされるまで待機
- 自動的に実行を継続
-
終了モード:
- Rate Limitが検出されたら実行を停止
- 検出を通知
実行中、アプリは以下を表示:
- 実行時刻までのカウントダウンタイマー
- リアルタイムのターミナル出力(最後の20行)
- 処理ステータスと完了時間
- Rate Limit検出と待機時間
- 依存関係をインストール:
npm install- 開発サーバーを起動:
npm run tauri devnpm run dev- Vite開発サーバーのみ起動npm run tauri dev- Tauriを開発モードで起動npm run build- フロントエンドアセットをビルドnpm run tauri build- アプリケーション全体をビルドnpm run fmt- TypeScript/CSSファイルをフォーマットnpm run tauri:fmt- Rustコードをフォーマット
├── src/ # フロントエンド(React + TypeScript)
│ ├── App.tsx # メインアプリケーションコンポーネント
│ └── assets/ # 静的アセット
├── src-tauri/ # バックエンド(Rust)
│ ├── src/
│ │ └── lib.rs # Tauriのコアロジック
│ └── tauri.conf.json # Tauri設定
└── CLAUDE.md # AIアシスタント用の指示
- モデル:
opus(Claudeの最も高性能なモデル) - 実行モード: 新規iTermウィンドウ
- 自動リトライ: デフォルトで無効
以下の設定はlocalStorageに保存されます:
- ターゲットディレクトリ
- Claudeオプション
- 最後のコマンド
- 自動リトライの設定
- ウィンドウモードの設定
アプリは以下の方法でRate Limitを検出:
- 60秒ごとにターミナル出力を監視
- 「esc to interrupt」の存在を確認(実行中を示す)
- 「reset at」メッセージを検出(3回連続で出現)
- リセット時刻を解析して待機時間を計算
AppleScriptを使用してiTermを制御:
- ウィンドウとタブの管理
- コマンドの実行
- 出力の取得
- セッション制御
バージョン形式: YY.M.D(例: 2025年6月23日の場合 25.6.23)
- ビルド時に自動更新
- package.json、Cargo.toml、tauri.conf.json間で同期
- iterm2.comからiTermがインストールされているか確認
- iTermのプロセス名が「iTerm2」であることを確認
- 更新ボタンをクリックしてステータスを更新
コマンドが実行されない場合:
- システム設定 > プライバシーとセキュリティ > アクセシビリティを確認
- Claude Code Runnerを削除して再追加
- アプリケーションを再起動
- システム時刻が正しいか確認
- Claude Codeが適切に認証されているか確認
- 特定のエラーメッセージのターミナル出力を監視
- リポジトリをフォーク
- フィーチャーブランチを作成(
git checkout -b feature/amazing-feature) - 変更をコミット(
git commit -m 'Add some amazing feature') - ブランチにプッシュ(
git push origin feature/amazing-feature) - プルリクエストを作成
このプロジェクトはMITライセンスのもとで公開されています - 詳細はLICENSEファイルを参照してください。
- Tauriで構築
- UIはReactとTailwind CSSを使用
- Anthropic社のClaude Codeと統合

