← すべての投稿に戻る
Roxチーム

2026年7月に作ったものたち

7月の Love-Rox は、Rox v2026.7.0 の安定版リリースに加えて、新しいプロダクトが4つ生まれた月になりました。

いずれも「自分たちが困っていたこと」から出発しています。この記事では、それぞれが何を解こうとしたのかを紹介します。

🧪 LaboLabo — AIエージェントを並列で走らせて、その差分を真横で見る

サイト: https://labolabo.love-rox.ccGitHub

Claude Code や Codex、Gemini といった AI コーディングエージェントを複数同時に走らせると、すぐに「いまどのセッションが何を変更したのか分からない」状態になります。端末を並べても、見えているのはエージェントの発話だけで、リポジトリの実際の状態は別途 git diff を叩かないと分かりません。

LaboLabo は、1セッション = 1 git worktree という原則でこれを整理する macOS ネイティブアプリです。

  • 左ペイン: リポジトリ/セッションのツリー。セッション名・ブランチ名・状態を一望できます
  • 中央: 本物の GPU 端末。エージェントがインタラクティブに動きます
  • 右ペイン: 変更ファイル一覧と、Diff ⇄ ファイル全文の切替表示

セッションごとに worktree が分かれているため、並列で走らせても作業が混ざりません。そして中央の端末で動いているエージェントの変更が、右ペインにライブで反映されます。

技術的には、端末に libghostty を XCFramework として埋め込んでいるのが中心的な選択です。ターミナルエミュレータを自前で書くのでも、既存アプリを外部プロセスとして呼ぶのでもなく、GPU レンダリングされる本物の端末をアプリ内に持っています。

項目 内容
プラットフォーム macOS ネイティブ(Swift + SwiftUI)
端末 libghostty を XCFramework として埋め込み
エンジン層 プロセス / Git / 状態を UI 非依存の Swift actor 群として分離
永続化 GRDB.swift(SQLite)

現在のバージョンは v1.2.5 です。

brew tap love-rox/tap
brew trust love-rox/tap          # 第三者 tap の信頼(Homebrew の要件)
brew install --cask labolabo

🌸 Harushion — GitHub の Issue/PR を「Stream」で追う

サイト: https://harushion.love-rox.ccGitHub

GitHub の通知は、放っておくと read/unread の海になります。Harushion は通知を追うのではなく、GitHub 検索クエリを「Stream」という単位にして、見たいものを自分で定義するアプローチを取りました。

  • Stream: GitHub 検索クエリ単位でチェック対象をコントロールする
  • Filter: Stream 内の絞り込みはローカルで行う。API レートリミットを消費しない
  • ブランチグラフ: ブランチ状況を DAG で可視化
  • アプリ内ブラウザ: github.com 専用ウィンドウで閲覧。外部ブラウザで開くこともできる

認証まわりは、トークンを自前で保存しない方針にしています。GitHub CLI (gh) に委譲し、gh auth token から都度取得してメモリ上にのみ保持します。アプリが認証情報の保管責任を持たずに済むため、設計と運用の両面で軽くなりました。

Tauri 2 + React 構成で、バックエンドは Rust + SQLite、フロントは表示に専念しています。macOS だけでなく Windows / Linux 向けのパッケージも配布しており、新しいバージョンが出るとアプリ内バナーで通知され、そのまま自己更新できます。

現在のバージョンは v0.1.14 です。

brew tap love-rox/tap
brew install --cask harushion
xattr -rd com.apple.quarantine /Applications/Harushion.app

Windows / Linux は Releases から nsis インストーラ / AppImage・deb・rpm を入手できます。

📅 kichijitsu — ローカルファーストなカレンダークライアント

サイト: https://kichijitsu.love-rox.ccGitHub

Notion Calendar 相当の使い勝手を、ローカルファーストで実現しようとしているカレンダークライアントです。7月だけで v0.1.0 から v0.1.8 まで進みました。

  • 3日タイムラインが既定。狭い画面では 1日/3日/月、広い画面では従来どおり 週/月 を出し分けます
  • Google Calendar 同期。差分同期に加えて、繰り返し予定の RRULE、イベント色、リマインダーまで扱います
  • 会議リンクの表示。Google Meet / Zoom / Teams / Slack ハドルをアイコンで判別し、「Meet で参加」のような参加リンクを出します
  • 編集操作。Option+ドラッグで予定を複製、場所の入力補完、繰り返し予定を編集・移動するときの適用範囲の選択
  • スマホ対応。どこでもスワイプで日移動、予定はタップして選択してから移動

構成は Web(PWA)+ デスクトップ(Tauri)+ 同期用の Cloudflare Workers という3層です。カレンダーの同期は、仕様上の落とし穴が非常に多い領域でした。Google Calendar API の差分同期における削除の扱い、繰り返しインスタンスの ID 体系、リマインダーの useDefaultoverrides の意味。素直に読むと足をすくわれる箇所を、1つずつ潰していく作業が続いています。

🎛️ kumihimo — AV系統図をテキストで書く

サイト: https://kumihimo.love-rox.cc/jaGitHubnpm

Mermaid がフローチャートに対してやっていることを、AV系統図に対してやるライブラリです。ただし、決定的な違いが2つあります。接続の単位がノードではなくポートであること、そしてケーブルに乗る信号の種別を、装飾ではなくツールが理解する情報として扱うことです。

device cam "SONY FX3"  as camera   { out SDI : sdi }
device sw  "ATEM Mini" as switcher { in 1..8 : sdi  out PGM : sdi }
device rec "HyperDeck" as recorder { in SDI : sdi }

cam.SDI -> sw.1     : sdi 30m "V-01" [color=blue]
sw.PGM  -> rec.SDI  : sdi 2m  "V-10"

なぜポート単位なのか。ミキサーの IN 12IN 13 は違うものですし、SDI 出力は HDMI 入力に挿さりません。ケーブルの長さや外皮の色は、現場の誰かが必要とする事実です。フローチャートのツールは、これらの絵を描くことはできても、その絵が間違っているときに教えてくれません

Mermaid フローチャート kumihimo
接続の単位 ノード → ノード ポート → ポート
線の意味 任意 信号種別(SDI / XLR / Dante …)
検証 なし 型の不一致、方向、入力の重複割り当て
ノード内の位置 意味を持たない 意味を持つIN 1IN 2 ではない

拾いたいのは、ケーブルは完璧に挿さっているのに何も動かない類の障害です。たとえば HDBaseT は Cat ケーブルと RJ45 コネクタを使いますが Ethernet ではないので、ネットワークスイッチに挿しても機能しません。物理的には何の問題もなく挿さります。

パッケージは用途ごとに分かれています。

  • @love-rox/kumihimo-core — パーサ、バリデータ、レイアウト、SVG レンダラ
  • @love-rox/kumihimo-clikumihimo build / check / export / --watch
  • @love-rox/kumihimo-rehype — Markdown パイプライン中のコードフェンスを描画
  • @love-rox/kumihimo-react / -vue / -astro — 各フレームワーク向けコンポーネント
  • @love-rox/kumihimo-editor — 組み込み可能なライブエディタ

CLI からは draw.io 形式への書き出しや、現場で使うケーブル表の出力もできます。

卓の16chを図ごとに書き直す必要はありません。model で一度定義しておけば、device … from から何台でも実体化できます。

model dm3 "Yamaha DM3" as mixer {
  in  CH[1..16] : xlr
  out L, R      : xlr
  @vendor "Yamaha"
}

device foh from dm3
device mon from dm3 "モニター卓"

サイトにはライブエディタが載っているので、インストールせずに書き味を試せます。

7月30日に公開したばかりで、npm 上は v0.1.0 です。

📦 配布について

macOS 向けのアプリは love-rox/tap から配布しています。

brew tap love-rox/tap

第三者 tap のため、cask のインストール前に brew trust love-rox/tap が必要です。また無署名配布のため、初回起動が Gatekeeper にブロックされた場合は、インストール時に表示される caveats の手順(xattr による隔離属性の解除、または Finder で右クリック →「開く」)で許可してください。

おわりに

4つとも、まだバージョン番号の若いプロダクトです。8月も引き続き、それぞれを育てていきます。

使ってみて困ったことや「こうだったらいいのに」があれば、各リポジトリの Issue でお知らせください。

愛がロックする。Rox。 🛠️