GitHub の Issue/PR を Stream(検索クエリ)単位でウォッチするデスクトップクライアント。Tauri 2 + React で軽量に動作し、認証は GitHub CLI (gh) に委譲します。
- Stream: GitHub 検索クエリ単位でチェック対象をコントロール
- Filter: Stream 内をローカルで絞り込み(API を消費しない)
- gh 認証: トークンは
gh auth tokenから都度取得し、メモリ上にのみ保持 - GitHub 操作: gh でできる操作を可能な限りアプリ内から実行
- アプリ内ブラウザ: github.com 専用ウィンドウで閲覧(ログイン状態は WebView に保持)。外部ブラウザで開くことも可能
- ブランチグラフ: ブランチ状況を DAG で可視化
- 軽量: Rust バックエンド + SQLite、フロントは表示に専念
brew tap love-rox/tap
brew install --cask harushion
xattr -rd com.apple.quarantine /Applications/Harushion.app無署名配布のため、インストール後に xattr で Gatekeeper の隔離属性を外します(外さない場合は、初回起動がブロックされたら システム設定 → プライバシーとセキュリティ → 「このまま開く」)。
Homebrew 6 はダウンロードをサンドボックスで実行するため、従来の --no-quarantine 指定では隔離を回避できません。
更新は brew upgrade --cask harushion。新しいバージョンが出るとアプリ内バナーでも通知されます。
Releases から nsis インストーラ (Windows) / AppImage・deb・rpm (Linux) をダウンロードしてください。 以降はアプリ内の更新通知から「今すぐ更新して再起動」でアプリ内自己更新できます(更新パッケージは Tauri updater の署名で検証されます)。
- GitHub CLI(
gh auth login済みであること) - Node.js 22+ / Rust 1.90+(開発時)
npm install
npm run tauri dev# フロントの単体テスト (Vitest)
npm run test
# リント / フォーマット (Oxlint / Oxfmt)
npm run lint
npm run fmt
# 型チェック + フロントビルド (TS7 + Vite+/Rolldown)
npm run build
# Rust 統合テスト(gh の実認証とネットワークを使用)
cd src-tauri && cargo test -- --ignoredツールチェーンは Vite+(
vp)に統一。.npmrcのlegacy-peer-depsは vite-plus 0.2.x が TypeScript 7 を peer range に含めていないための暫定措置。
| フェーズ | 内容 | 状態 |
|---|---|---|
| M0 | 基盤: gh 認証 + 固定クエリで一覧表示 | ✅ |
| M1 | Stream CRUD・ポーリング・SQLite・未読管理・通知 | ✅ |
| M2 | 詳細ペインと GitHub 操作(gh でできることを網羅) | ✅ |
| M3 | アプリ内ブラウザ統合(WebviewWindow 方式) | ✅ |
| M4 | ブランチグラフ | ✅ |
| M5 | 配布(Homebrew / Windows / Linux + 自動更新) | ✅ v0.1.0 |
| M6 | mac 署名・notarize | 保留 |