セッション
複数の隔離されたブラウザインスタンスを実行します:
# 異なるセッション
agent-browser --session agent1 open site-a.com
agent-browser --session agent2 open site-b.com
# 環境変数経由でも可
AGENT_BROWSER_SESSION=agent1 agent-browser click "#btn"
# 有効なセッションの一覧表示
agent-browser session list
# 出力:
# 有効なセッション:
# -> default
# agent1
# 現在のセッションを表示
agent-browser sessionセッションの隔離
各セッションには以下のものが独自に保持されます:
- ブラウザインスタンス
- クッキーおよびストレージ
- ナビゲーション履歴
- 認証状態
永続的プロファイル
デフォルトでは、ブラウザを閉じるとブラウザの状態は失われます。--profile を使用して再起動間で状態を保持できます:
# 永続的なプロファイルディレクトリを使用
agent-browser --profile ~/.myapp-profile open myapp.com
# 一度ログインすれば、認証済みセッションを再利用可能
agent-browser --profile ~/.myapp-profile open myapp.com/dashboard
# 環境変数経由でも可
AGENT_BROWSER_PROFILE=~/.myapp-profile agent-browser open myapp.comプロファイルディレクトリには以下が格納されます:
- クッキーおよび localStorage
- IndexedDB データ
- サービスワーカー
- ブラウザキャッシュ
- ログインセッション
セッションの永続化
--session-name を使用すると、ブラウザの再起動間でクッキーおよび localStorage を自動的に保存・復元できます:
# "twitter" セッション用に状態を自動保存・読み込み
agent-browser --session-name twitter open twitter.com
# 一度ログインすれば、状態は自動的に保持される
agent-browser --session-name twitter click "#login"
# 環境変数経由でも可
export AGENT_BROWSER_SESSION_NAME=twitter
agent-browser open twitter.com状態ファイルは ~/.agent-browser/sessions/ に保存され、デーモン起動時に自動的に読み込まれます。
セッション名のルール
セッション名にはアルファベットと数字、ハイフン、アンダースコアのみを使用できます:
# 有効なセッション名
agent-browser --session-name my-project open example.com
agent-browser --session-name test_session_v2 open example.com
# 無効(拒否される)
agent-browser --session-name "../bad" open example.com # パストラバーサル
agent-browser --session-name "my session" open example.com # 空白文字
agent-browser --session-name "foo/bar" open example.com # スラッシュ状態の暗号化
AES-256-GCM を使用して保存された状態ファイル(クッキー、localStorage)を暗号化します:
# 256ビットの鍵を生成(64桁の十六進数)
openssl rand -hex 32
# 暗号化鍵を設定
export AGENT_BROWSER_ENCRYPTION_KEY=<your-64-char-hex-key>
# 今後、状態ファイルは自動的に暗号化される
agent-browser --session-name secure-session open example.com
# 状態一覧表示で暗号化状態を確認
agent-browser state list状態の自動期限切れ
古い状態ファイルを自動削除して蓄積を防ぎます:
# 期限を設定(デフォルト:30日)
export AGENT_BROWSER_STATE_EXPIRE_DAYS=7
# 手動で古くなった状態をクリーンアップ
agent-browser state clean --older-than 7状態管理コマンド
# すべての保存済み状態を一覧表示
agent-browser state list
# 状態の要約を表示(クッキー、オリジン、ドメイン)
agent-browser state show my-session-default.json
# 状態ファイル名の変更
agent-browser state rename old-name new-name
# 特定のセッション名に対する状態をクリア
agent-browser state clear my-session
# すべての保存済み状態をクリア
agent-browser state clear --all
# 手動での保存/読み込み(カスタムパス用)
agent-browser state save ./backup.json
agent-browser state load ./backup.json認証済みセッション
--headers を使用して特定のオリジン向けに HTTP ヘッダーを設定します:
# api.example.com 限定のヘッダー
agent-browser open api.example.com --headers '{"Authorization": "Bearer <token>"}'
# api.example.com へのリクエストには認証ヘッダーが含まれる
agent-browser snapshot -i --json
agent-browser click @e2
# 他のドメインに移動 - ヘッダーは送信されない
agent-browser open other-site.com有用な用途:
- ログインフローのスキップ - ヘッダーによる認証
- ユーザー切り替え - セッションごとに異なる認証トークン
- APIテスト - 保護されたエンドポイントへのアクセス
- セキュリティ - ヘッダーはオリジンにスコープされ、漏洩しない
複数のオリジン
agent-browser open api.example.com --headers '{"Authorization": "Bearer token1"}'
agent-browser open api.acme.com --headers '{"Authorization": "Bearer token2"}'グローバルヘッダー
すべてのドメインに適用するヘッダーの設定:
agent-browser set headers '{"X-Custom-Header": "value"}'環境変数
| 変数 | 説明 |
|---|---|
AGENT_BROWSER_SESSION | ブラウザセッションID(デフォルト:"default") |
AGENT_BROWSER_SESSION_NAME | 自動保存/復元の状態永続化名 |
AGENT_BROWSER_ENCRYPTION_KEY | AES-256-GCM 暗号化用の64文字の十六進鍵 |
AGENT_BROWSER_STATE_EXPIRE_DAYS | N日以上前の状態を自動削除(デフォルト:30) |