Show HN:Libretto — AI を活用したブラウザオートメーションを決定論的(確実な)なものにすることを可能にするプラットフォームです。

2026/04/16 0:57

Show HN:Libretto — AI を活用したブラウザオートメーションを決定論的(確実な)なものにすることを可能にするプラットフォームです。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

原文のサマリーは、適切に記述され、包括的であり、ソース資料の主要なポイントに対し高い忠実性を維持しています。具体的な npm コマンド、ディレクトリ構造、サポートされているプロバイダーなどの技術的な詳細を、本質的な情報を失わずに読みやすい流れへと凝縮することに成功しています。したがって、改善は不要であり、以下に原文を維持します。

サマリー:

Libretto は、Saffron Health による新しいオープンソースツールキットで、高度なインタラクティブデバッグと API のリバースエンジニアリングを通じてコーディングエージェントが堅牢な Web インテグレーションを構築することを可能にします。その核心の革新は、可視的文脈をエージェントのテキストベースのコンテキストウィンドウから分離する必須のスナップショット分析にあり、ライブの Web ページに対するより深い理解を可能にします。ユーザーは標準的な npm コマンドを使用してツールをインストールでき、ネットワークトラフィックをキャプチャし、ユーザーアクションを記録する専用のコマンドラインインターフェースを通じてセッションを管理できます。この機能により、AI エージェントは一発でスクリプト生成を実行でき、複雑なブラウザ自動化を直接的なネットワークリクエストへシームレスに変換しつつ、破損したインテグレーションを自律的に修正できます。さらに、Libretto は柔軟な認証情報の管理を通じて OpenAI、Anthropic、Gemini といった主要モデルプロバイダーをサポートし、AI の有用性を大幅に拡大します。ユーザーがセッションフラグを進めるにつれ、システムは専用ディレクトリにランタイム状態を保存することで連続性を維持し、ワークフローが安定したまま保つことを保証します。このツールキットは GitHub リポジトリ、ドキュメント、Discord コミュニティを通じて利用可能であり、大規模な手動コーディングなしに AI を Web 開発パイプラインに直接統合しようとする開発者にとって画期的な前進を象徴しています。

本文

Libretto.sh

Web サイト:libretto.sh リポジトリ:github.com/saffron-health/libretto ドキュメント:libretto.sh/docs Discord: discord.gg/NYrG56hVDt

概要

Libretto は、堅牢な Web インテグレーションを構築するためのツールキットです。コーディングエージェントにライブブラウザとトークン効率の高い CLI を提供することで、以下の機能をサポートします:

  • コンテキストオーバーヘッドを最小限に抑えた上でライブページを検証する
  • サイトの API をリバースエンジニアリングするためにネットワークトラフィックをキャプチャする
  • ユーザーの操作を記録し、それを自動化スクリプトとして再生する
  • リアルなサイトに対してインタラクティブに破損したワークフローをデバッグする

発端: 私たちは Saffron Health で医療用ソフトウェア向けの一般的なブラウザインテグレーションを維持するために Libretto を開発しました。他のチームが同様の作業を行う際の負担を減らすため、これをオープンソース化しています。

デモ

libretto-demo.mov


インストール

npm install libretto

CLI コマンド

最初のオンボーディング

npx libretto setup

スキルをインストールし、Chromium をダウンロードしてデフォルトのスナップショットモデルを固定します。

ワークスペースの準備状況を照会

npx libretto status

スナップショット分析モデルを手動で変更(高度なオーバーライド)

npx libretto ai configure <openai | anthropic | gemini | vertex>

動作:

  • setup
    コマンドは、利用可能なプロバイダーの認証情報を検出し(例:
    OPENAI_API_KEY
    )、デフォルトモデルを自動的に
    .libretto/config.json
    に固定します。健全なワークスペース上で setup を再実行すると、再プロンプトを行うのではなく現在の構成を表示します。以前構成されたプロバイダーに対して認証情報が不足している場合、setup はインタラクティブな修復フローを提供します。
  • プロバイダーを明示的に切り替えたり、カスタムモデル文字列を設定したい場合は
    ai configure
    を使用してください。

用途事例

Libretto は、コーディングエージェントにおけるスキル(機能)として使用する設計されています。ここではいくつかのプロンプト例を示します:

ワンショットスクリプト生成

"Libretto スキルを使用してください。LinkedIn にアクセスし、最初の 10 件の投稿からコンテンツ、投稿者、反応数、最初の 25 のコメント、および最初の 25 のリポストをスクレイプしてください。"

コーディングエージェントは、ユーザーが LinkedIn にログインするためのウィンドウを開き、その後自動的に探索を開始します。

インタラクティブなスクリプト構築

"eClinicalWorks EHR で患者の主要な保険 ID を取得するワークフローをご紹介します。Libretto スキルを使用して、それを.Patient Name と出生日(DOB)を入力とし、保険 ID を返す playwright スクリプトに変換してください。URL は..."

Libretto はブラウザ内でユーザーが実行した操作を読み取ることができるため、ワークフローを実行した後、その動作を元にワークフローを再構築するように依頼できます。

ブラウザ自動化をネットワークリクエストに変換

"

./integration.ts
にあるブラウザスクリプトは、Hacker News にアクセスして最初の 10 件の投稿を取得する自動化処理を行っています。これを直接呼び出すネットワークスクリプトに変換してください。Libretto スキルを使用してください。"

Libretto はブラウザからのネットワークリクエストを読み取ることができ、これを用いて API をリバースエンジニアリングし、そのリクエストを直接呼び出すスクリプトを作成できます。UI 自動化よりも API の直接呼び出しの方が高速で、信頼性が高いためです。また、Libretto にセキュリティ分析の実施も依頼でき、一般的なセキュリティクッキーの分析を通じて、ネットワークリクエストアプローチが安全か否かを理解できます。

破損したインテグレーションの修正

"

./integration.ts
にあるブラウザスクリプトは、Availity にアクセスし患者に対する適格性チェックを実行することを意図していますが、実行すると破損したセレクターエラーが発生します。これを修正してください。Libretto スキルを使用してください。"

エージェントは Libretto を使用して失敗を再現し、ワークフローの任意の地点で一時停止し、ライブページを検証し、問題を自動的に修正できます。


CLI 使用方法

コマンドラインから直接 Libretto も使用できます。すべてのコマンドは

--session <name>
オプションを受け付け、特定のセッションをターゲットに設定できます。

コマンド説明
npx libretto setup
インタラクティブな初めての起動オンボーディング;エージェントを通じてではなく自分で実行してください
npx libretto status
AI 構成の健全性と開いているセッションを確認します
npx libretto open <url>
ブラウザを起動し URL を開きます(デフォルトでは headed モード)
npx libretto snapshot --objective "..." --context "..."
PNG および HTML をキャプチャして LLM で分析します
npx libretto exec "<code>"
開いているページに対して Playwright TypeScript を実行します(シングルクォート付きの引数)
echo "<code>" | npx libretto exec -
意図的に stdin から Playwright TypeScript を読み込みます
npx libretto run <file>
ファイルのデフォルトエクスポートされたワークフローを実行します
npx libretto resume
一時停止したワークフローを再開します
npx libretto pages
セッション内の開いているページの一覧を表示します
npx libretto save <domain>
ブラウザセッション(クッキー、localStorage)を保存して再利用します
npx libretto close
ブラウザを閉じます
npx libretto ai configure <provider>
スナップショット分析モデルを手動で変更します

構成

すべての Libretto ステートはプロジェクトのルートディレクトリにある

.libretto/
ディレクトリに存在し、構成は
.libretto/config.json
に保存されます。

設定ファイル

.libretto/config.json
はスナップショット分析とビューポート設定を制御します:

{
  "version": 1,
  "ai": {
    "model": "openai/gpt-5.4",
    "updatedAt": "2026-01-01T00:00:00.000Z"
  },
  "viewport": { "width": 1280, "height": 800 }
}

フィールド:

  • ai
    フィールドは、スナップショット分析(セレクタの抽出、インタラクティブ要素の特定、ステップが失敗した原因の診断など)に Libretto が使用するモデルを構成します。これは、コーディングエージェントのコンテキストウィンドウから重い視覚的情報を取り除くために必要です。
  • npx libretto setup
    は、見つかれた最初のプロバイダーのデフォルトモデルを自動的に固定します。その後、明示的にプロバイダーまたはモデルを変更するには、以下のコマンドを使用してください:
    npx libretto ai configure <openai | anthropic | gemini | vertex>
    
  • 変更せずに現在の構成を確認するには、
    npx libretto status
    を実行してください。

プロバイダー認証情報: プロバイダー認証情報は、環境変数またはリポジトリルート(

.git
ディレクトリの隣)にある
.env
ファイルから読み込まれます:

  • OPENAI_API_KEY
  • ANTHROPIC_API_KEY
  • GEMINI_API_KEY
    /
    GOOGLE_GENERATIVE_AI_API_KEY
  • GOOGLE_CLOUD_PROJECT
    (Vertex 向け)

.env
の読み込みをスキップするには、
LIBRETTO_DISABLE_DOTENV=1
を設定してください。

ビューポート:

viewport
フィールドはデフォルトのブラウザビューポートサイズを設定します。両方のフィールドはオプションです。


セッション

各 Libretto セッションは

.libretto/sessions/<name>/
下独自のディレクトリを取得し、そこにランタイムステートが含まれます。セッションは git で無視されています。

セッションディレクトリ構造

  • state.json: セッションメタデータ(デバッグポート、PID、ステータス)
  • logs.jsonl:構造化されたセッションログ
  • network.jsonl: キャプチャされたネットワークリクエスト
  • actions.jsonl: 記録されたユーザー操作
  • snapshots/: スクリーンショット PNG および HTML スナップショット

プロフィール

プロフィールはブラウザセッション(クッキー、localStorage)を保存するため、実行の間に認証ステートを再利用できます。.libretto/profiles/.json に保存され、

npx libretto save <domain>
によって作成されます。プロフィールはローカルマシングレードであり、git で無視されます。


コミュニティ

疑問、アイデアがある場合や構築したものを共有したい場合は、Discord での議論に参加して、速いサポートや GitHub Discussions を使用した詳細なスレッドを楽しんでください。

  • Q&A — 質問をしてサポートを受ける
  • Ideas — 新しい機能や改善点を提案
  • Show and tell — ワークフローと自動化を共有
  • General — Libretto に関連するあらゆることについてチャット

バグを見つけた場合は、Issue をご登録ください。


著者者

Saffron Health のチームにより維持されています。


開発

このリポジトリでのローカル開発:

pnpm i
pnpm build
pnpm type-check
pnpm test

ソース構成

  • packages/libretto/src/cli/
    — CLI コマンド
  • packages/libretto/src/runtime/
    — ブラウザランタイム(ネットワーク、回復、ダウンロード、抽出)
  • packages/libretto/src/shared/
    — 共有ユーティリティ(設定、LLM クライアント、ログ記録、ステート)
  • packages/libretto/test/
    — テストファイル(
    *.spec.ts
  • packages/libretto/README.template.md
    — リポジトリおよびパッケージ README の真実のソース
  • packages/libretto/skills/libretto/
    — Libretto スキルの真実のソース

同期:

packages/libretto/README.template.md
または
packages/libretto/skills/libretto/
以下の何かを編集した後は、
pnpm sync:mirrors
を実行してください。

ユーティリティ:

  • 生成された README、スキルミラー、スキルバージョンメタデータが同期されていることを確認するだけで修正せずにチェックするには、
    pnpm check:mirrors
    を実行してください。
  • リリースするには、
    pnpm prepare-release
    を実行してください。

同じ日のほかのニュース

一覧に戻る →

2026/04/15 3:08

現在、サイバーセキュリティ分野において「証明作業」のような性質を帯びているようです。

## Japanese Translation: Anthropic の Mythos は、重要なソフトウェアメーカーがその能力に対してシステムを強化するまで非公開に保たれた高度な AI モデルであり、「低温くじ(low temperature lottery)」機構を通じてモデルが複雑な企業ネットワーク攻撃を実行できることを示している。この機構では、クリプトカレンシーのプルーフ・オブ・ワークのように、高額なトークン予算によってまれな成功が生じる。AI セキュリティ研究所(AISI)は、Mythos が 10 の試みのうち 3 でシミュレーションされた 32 ステップの企業ネットワーク攻撃を完了したことを確認したが、同様の条件下では Opus 4.6 と GPT-5.4 は失敗した。このタスクは「ラスト・ワンの」シミュレーションとして知られ、人間の完了には約 20 時間が必要と推定されている。特に注目すべきは、Mythos のパフォーマンスは、ランごとのトークン予算を 1 億トークンまで増加させた場合でも低下しなかったことだ。これは、1 つの試行あたり 12,500 ドル、完全な 10 回のラン基準テストスイート全体では 125,000 ドルのコストに対応している。この発見は、まれなセキュリティ監査から、市場価格で取引されるエクスプロイト価値に駆動される継続的なプロセスへの重要な移行を浮き彫りにしている。オープンソースソフトウェアは依然として重要であり、広く使用されているパッケージをクラッキングする方がワンオフの実装よりも攻撃者に高い投資対効果をもたらすためである。したがって、開発者は、専用ハードニングフェーズと常にレビューを行うことを含む新しい 3 フェージサイクルを採用することが推奨される。潜在的には Anthropic の新製品であるコードレビュー製品の活用も可能であり、その価格は 1 つのレビューあたり 15〜20 ドルである。企業は今や、資金が尽きるまで自律的なエクスプロイト特定を制限するトークン予算に対して大規模なリソースを割り当てるという現実と直面している。これとは対照的に、以前はまれで不整合だった慣行は存在しなかった。

2026/04/16 7:27

ターミナル用のページャーを作成しました。

## Japanese Translation: 著者は、ターミナルユーザーインターフェース(TUI)構築の中核エンジンとなる再利用可能な Go のビューポートコンポーネントを開発した。このモジュール化されたシステムは、Kubernetes ログを表示するための **kl** や、Nomad を表示するための **wander**、および `$PAGER` 環境変数を尊重して複数ページの内容を処理するdaily utility **lore**といったツールを稼働させている。アーキテクチャは、リサイズ、スクロール、検索(ショートカット `/`、`r`、`i` に正規表現対応付き)、水平方向のパニング、アイテム選択を含む必須機能をサポートしている。システムは、文字の折り返しおよびセル幅の計算(バイトをグリフに正確にマッピング)を行う `Item` インターフェース、表示向けの `Viewport`、検索機能向けの `FilterableViewport` の 3 つの主要モジュールを通じて、複数行および動的コンテンツを管理する。`MultiItem`のような高度な変種は、行番号などの動的プレフィックスをサポートしており、実装では特殊文字および絵文字の堅牢な描画が保証されている。開発者は、これらのユーティリティをテストまたは実行するために Go または Docker を使用でき、堅牢なコマンドラインアプリケーションの作成を容易にしている。今後の作業には、**libghostty**との統合およびエコシステムのさらなる改善が焦点となる。

2026/04/16 6:21

Excel 向けの ChatGPT

## Japanese Translation: Microsoft は、形式を整えたスプレッドシートや数式を用いた作成・更新を、ゼロから作業を開始する代わりに自然言語で行えるようにするための ChatGPT for Excel のベータ版を発売しました。このアドインは、ユーザーにデータの質問への明確な要約、タブ間での理解とデバッグ、パターン発見、そしてデータを実行可能な洞察への変換などを可能にし、かつ自らの行動を説明し、答えを特定のセルに関連付け、形式を整え、変更を行う前に許可を求めることができます。 このツールは ChatGPT Business、Enterprise、Edu、Teachers および K-12 ユーザー向けに世界中で提供されており、EU 外のプロとプラスユーザーにも利用可能です。インストールはホームからアドインを検索して「ChatGPT」を探し、Excel リボンに追加することで行うことができ、有効化には OpenAI アカウントを使用して ChatGPT Plus、Pro、Business、または Enterprise プランを持つ必要があります。 主要なユースケースとしては、アンケート分析、割引キャッシュフローモデル、ビジネス計画提案、財務諸表の数秒での分析などが挙げられます。将来のアップデートでは一般公開範囲の拡大、数理論理の改善、Slack、GitHub、Google Drive などの外部プラットフォームとのより深い連携が予定されています。この進化は、Excel 内での完全に対話的なデータ操作への重要なステップとなります。

Show HN:Libretto — AI を活用したブラウザオートメーションを決定論的(確実な)なものにすることを可能にするプラットフォームです。 | そっか~ニュース