HN 日本語サマリー

← 一覧へ戻る
プログラミング

Herdrがネイティブアプリをリリース

Herdr has released native app (github.com)

35 pointsby cherioo31 コメント

要約

Herdrはターミナルとコーディングエージェント向けのデスクトップアプリです。作業をスペースごとに管理し、どのエージェントが対応を必要としているかを確認でき、ウィンドウを閉じてもターミナルは実行し続けます。Linux、macOS、Windowsに対応しており、SSH経由でリモートマシンの作業も管理できます。

全文翻訳

Herdr

Herdrはターミナルとコーディングエージェントのためのデスクトップアプリです。作業をスペース(space)にまとめ、どのエージェントがあなたを必要としているかを確認し、ウィンドウを閉じてもターミナルを実行し続けることができます。

インストール

LinuxとmacOS
curl -fsSL https://releases.herdr.dev/app/install.sh | sh

Linuxではデスクトップセッションと動作するVulkanドライバーが必要です。macOSビルドはApple Silicon向けに提供されています。Intel Macユーザーはソースからビルドできます。Linuxビルドはx86-64とARM64です。

インストーラーはHerdrをアプリに追加し、コマンドを~/.local/binに配置します。インストーラーが要求した場合、そのフォルダをPATHに追加してください。macOSでは、アプリは~/Applications/Herdr.appに配置されます。Apple Siliconでドラッグ&ドロップでインストールするには、Herdr.dmgをダウンロードし、HerdrをApplicationsにドラッグしてください。

Windows

x64 Windowsで、curlとtarがインストールされている場合(Windows 10 1803以降)、PowerShellで実行してください:

irm https://releases.herdr.dev/app/install.ps1 | iex

Herdrはスタートメニューに表示されます。インストーラーは%LOCALAPPDATA%\Programs\herdr-appをユーザーのPATHに追加します。反映するには新しいターミナルを開いてください。

どちらのインストーラーもコードをダウンロードして実行します。希望する場合は、まずシェルインストーラーまたはPowerShellインストーラーをお読みください。また、herdr-coreが見つからない場合はそれをインストールします。アプリは、使用できないコアのインストールや更新を支援できます。

作業を見つける

スペースは、通常1つのリポジトリで、1台のマシン上の作業を保持します。各スペースにはタブがあります。タブをペインに分割することで、ターミナルやモッドパネルを並べることができます。

名前のないスペースは、最初のターミナルのフォルダに従います。ラベルを固定したい場合は、スペースまたはタブに名前を付けます。新しいタブは、フォーカスされているターミナルのフォルダで開始されます。

エージェントサイドバーは、スペースからエージェントを1つのリストにまとめます。これには、別 のエージェントによって開始されたワーカーも含まれます。ステータスを報告するエージェントは次のように表示されます:

  • 作業中 (Working): まだビジーです。
  • ブロック中 (Blocked): あなたを待っています。
  • 完了 (Done): 他の場所を見ている間に終了しました。
  • アイドル (Idle): 作業中でない、またはあなたが確認した完了したエージェントです。

エージェントをクリックすると表示されます。ペインのないワーカーはプレビュー (peek)で開き、タブの上に表示されます。タブとして保持したい場合は、タブとして維持してください。ターミナルテキスト内のライブターミナルアドレスをCtrl-クリックするとプレビュー表示されます。macOSではCmd-クリックを使用します。t7のようなアドレスは、それを表示しているターミナルと同じマシン上のターミナルを意味します。vps/t7は別 のマシン上のターミナルを指定します。

ウィンドウはターミナルを配置します。コアがそれらを実行します。ウィンドウを閉じても、それらは実行され続けます。ペインまたはタブを閉じると、そのターミナルは終了します。再起動またはコアクラッシュの後、保持されたペインは、古いプログラムではなく、最後のフォルダに新しいシェルを取得します。

別 のマシンで作業する

設定 → マシン (Settings → Machines) またはサイドバーの「マシンを追加」アクションからSSHマシンを追加します。SSH設定からホストを選択するか、SSHがどのように接続するかを入力します。そのマシン上のスペースは、ローカルコンピュータではなく、そこでターミナルを実行します。

各マシンは、そのスペース、タブ、分割をコア内に保持します。接続された画面は、その構造とライブターミナルを共有しますが、独自のフォーカスとズームを維持します。リモートマシンとコアが稼働している限り、ローカルウィンドウを閉じたりラップトップをスリープさせたりしても、リモート作業は実行され続けます。

自分好みにカスタマイズする

コマンドパレットを開いて名前でアクションを見つけるか、設定を開いてフォント、色、サウンド、その他の設定を変更します。組み込みレイアウトには、Herdr、Terminals、Herdr 98があります。レイアウトはウィンドウを配置します。モッドは、パネル、メニュー、ダイアログを描画する小さなJavaScriptプログラムです。

出荷済みのレイアウトまたはモッドを複製してから、その構造またはコードを変更してください。あなたのコピーはあなたのものとして残ります。Herdrは起動時に出荷済みのものを更新します。個人用のレイアウト、モッド、またはキーファイルを保存すると、ウィンドウがそれを再読み込みします。壊れた編集は、最後の良好なバージョンを保持し、エラーを報告します。

Ctrl+Shift+Pは、すべてのコマンドとそのキーを表示します(macOSではCmd+Shift+P)。keys.jsonで任意のキーを変更できます。フォーマットについては、モッドガイドのキーセクションを参照してください。

レイアウトとモッド · コマンド

アップデートとプライバシー

インストールされたリリースはバックグラウンドでアップデートをチェックし、実行中のアプリの隣に新しいアプリをダウンロードします。アプリを終了して再オープンするか、アップデートアクションを選択すると、新しいバージョンに切り替わります。ターミナルはコアで実行され続けます。設定 → アップデート (Settings → Updates) に利用可能なものが表示されます。「新機能」はアップデート後に開きます。コマンドパレットから再度開くこともできます。ソースからビルドしたものは自動更新されません。

使用状況テレメトリはリリースではデフォルトでオンになっています。設定 → プライバシー (Settings → Privacy) でオフにできます。モッドはサンドボックス化された拡張機能ではなく、信頼されたコードです。他人のモッドをインストールする前に、セキュリティとプライバシーをお読みください。

エージェント向け

herdr-app --skill

これはウィンドウを操作するためのエージェントガイドを出力します。herdr-coreスキルはエージェントをここに誘導します。プログラムの実行と調整にはherdr-coreを使用し、表示内容の変更にはアプリを使用してください。

herdr-app ls
herdr-app status
herdr-app commands

最初の2つは開いているウィンドウを検査します。コマンドリストは、ウィンドウなしでも機能します。引数については、コマンドリファレンスを参照してください。

ソースからビルド

バグ、モッドAPIリクエスト、コード貢献については、コントリビューティングを参照してください。

サブモジュールを含めてこのリポジトリをクローンしてください。Rust 1.95.0とZig 0.16.0を使用してください。これらはCIで使用されているバージョンです。Linuxでは、そのワークフローにリストされている開発パッケージが必要です。

git clone --recurse-submodules https://github.com/herdrdev/herdr-app.git
cd herdr-app
just build
just test
just install

これらのレシピを使用するには、justをインストールしてください。プラットフォームインストーラーはリリースをビルドし、アプリをデスクトップに追加します。Linuxでは、このチェックアウトにリンクするため、チェックアウトをそのまま保持してください。新しいビルドを使用するには、Herdrを終了して再オープンしてください。

ドキュメントチェックにはBunも必要です:just docs-checkは生成されたページとCLI例をチェックし、just docs-generateはリファレンスページを更新します。

Windows、Linux、またはmacOSで描画の変更を比較するには、各ビルドに対して同じ固定ワークロードを実行します:

python scripts/bench.py --bin <app executable> --set spinners --seconds 20

ランナーはPATHにhcを必要とし、スクリプトを実行しているPython実行可能ファイルを使用します。実行設定、カウンター、結果を含む一意のアーティファクトフォルダを出力してから、プライベートアプリ、ターミナル、コアを停止します。両方のセットはPythonフィクスチャプログラムを使用します。デフォルトセットのTUIワークロードは、過去のbtop測定値を置き換えます。--only spinnersは、静かなネイティブスピナーシナリオのみを測定します。ウィンドウを表示したまま、ディスプレイをスリープさせないでください。同じウィンドウアクティビティとディスプレイ設定を比較してください。非アクティブなウィンドウは低いレートで描画される場合があります。Windowsは、各測定境界で可視性、フォアグラウンドアクティビティ、ディスプレイHzを記録します。他のプラットフォームでは、これらの観測は利用不可としてマークされます。可視性はオクルージョンを確立しません。描画はウィンドウレンダリング呼び出しです。レンダリングからペイントまでの経過時間は、シーンの最終化、バックエンド描画、アップロード、プレゼンテーションの前に停止します。これはOSプロセスCPU時間とは別です。どちらも物理的なプレゼンテーションやFPS HUDから派生したMAX FPSを測定しません。

python scripts/bench_compare.py ghostty --root <artifact folder>は、macOSの比較のために実行の偽エージェントを再利用します。ベンチマークチェック:python -m unittest discover -s scripts -p test_bench.py。