Bear連携:承認したプランを自動保存
この章で学べること
Bear連携を有効にすると、プランを承認するたびにPlannotatorが自動的にBearノートに保存します:
- 自動生成されるタイトル(プランから抽出)
- スマートタグ(プロジェクト名、キーワード、プログラミング言語)
- プランの完全な内容
これにより、承認したすべてのプランを一箇所で管理でき、後から参照したりナレッジとして蓄積したりできます。
今あなたが直面している課題
こんな経験はありませんか:
- AIが生成したプランが良かったので、後で参照できるように保存したい
- Bearに手動でコピー&ペーストするのが面倒
- 異なるプロジェクトのプランが混在し、タグで整理できていない
Bear連携を使えば、これらの問題を自動的に解決できます。
このチュートリアルが役立つ場面
- Bearをメインのノートアプリとして使用している
- 承認したプランをナレッジベースとしてアーカイブしたい
- タグを使って過去のプランを素早く検索したい
Bearについて
BearはmacOS向けのMarkdownノートアプリで、タグ、暗号化、同期などの機能をサポートしています。まだインストールしていない場合は、bear.appをご覧ください。
🎒 始める前の準備
- Plannotatorがインストール済み(インストールチュートリアルを参照)
- Bearがインストール済みで正常に動作している
- 基本的なプランレビューの流れを理解している(プランレビューの基本を参照)
基本的な仕組み
Bear連携の核心は x-callback-url プロトコルです:
- Plannotator UIでBear連携を有効化(ブラウザのlocalStorageに保存)
- プラン承認時、Plannotatorが
bear://x-callback-url/createURLを送信 - システムが
openコマンドでBearを自動起動しノートを作成 - プランの内容、タイトル、タグが自動的に入力される
主な特徴:
- vaultパスの設定不要(Obsidianのようにvaultを指定する必要がない)
- スマートタグ生成(最大7個)
- プラン承認時に自動保存
Obsidianとの違い
Bear連携はよりシンプルで、vaultパスの設定が不要です。スイッチ一つで有効化できます。一方、Obsidianは保存フォルダの指定やより多くのカスタマイズが可能です。
手順
ステップ1:Plannotatorの設定を開く
AIエージェントがプランを生成しPlannotator UIを開いた後、右上の ⚙️ Settings ボタンをクリックします。
期待される結果:設定パネルが表示され、複数の設定オプションが確認できます
ステップ2:Bear連携を有効化
設定パネルで Bear Notes セクションを見つけ、スイッチをクリックします。
なぜこうするのか スイッチがグレー(無効)から青(有効)に変わり、同時にブラウザのlocalStorageに保存されます。
期待される結果:
- Bear Notesのスイッチが青色に変わる
- 説明文:"Auto-save approved plans to Bear"
ステップ3:プランを承認
プランレビューが完了したら、下部の Approve ボタンをクリックします。
なぜこうするのか PlannotatorがBear設定を読み取り、有効になっていれば承認と同時にBearのx-callback-urlを呼び出します。
期待される結果:
- Bearアプリが自動的に開く
- 新規ノート作成ウィンドウが表示される
- タイトルと内容が自動入力されている
- タグが自動生成されている(
#で始まる)
ステップ4:保存されたノートを確認
Bearで新しく作成されたノートを確認します:
- タイトルが正しいか(プランのH1から取得)
- 内容が完全か(プラン全文を含む)
- タグが適切か(プロジェクト名、キーワード、プログラミング言語)
期待される結果: 以下のようなノート構造が確認できます:
## User Authentication
[プランの完全な内容...]
#plannotator #myproject #authentication #typescript #apiチェックポイント ✅
- [ ] SettingsでBear Notesスイッチが有効になっている
- [ ] プラン承認後にBearが自動的に開く
- [ ] ノートのタイトルがプランのH1と一致している
- [ ] ノートにプランの完全な内容が含まれている
- [ ] タグに
#plannotatorとプロジェクト名が含まれている
よくあるトラブルと解決策
Bearが自動的に開かない
原因:システムの open コマンドが失敗している可能性があります:
- BearがインストールされていないかApp Storeからダウンロードされていない
- BearのURLスキームが他のアプリに乗っ取られている
解決策:
- Bearが正常にインストールされていることを確認
- ターミナルで手動テスト:
open "bear://x-callback-url/create?title=test"
タグが期待通りでない
原因:タグは以下のルールで自動生成されます:
- 必須:
#plannotator - 必須:プロジェクト名(gitリポジトリ名またはディレクトリ名から抽出)
- オプション:H1タイトルから最大3つのキーワードを抽出(ストップワードを除外)
- オプション:コードブロックからプログラミング言語タグを抽出(json/yaml/markdownを除外)
- 最大7個のタグ
解決策:
- タグが期待通りでない場合は、Bearで手動編集できます
- プロジェクト名が正しくない場合は、gitリポジトリの設定またはディレクトリ名を確認
承認したが保存されない
原因:
- Bear連携が有効になっていない(Settingsを確認)
- ネットワークエラーまたはBearの応答タイムアウト
- プランの内容が空
解決策:
- Settingsでスイッチが青色(有効状態)であることを確認
- ターミナルにエラーログがないか確認(
[Bear] Save failed:) - プランを再度承認
タグ生成メカニズムの詳細
Plannotatorはスマートにタグを生成し、Bearでプランを素早く検索できるようにします。以下はタグの生成ルールです:
| タグの出典 | 例 | 優先度 |
|---|---|---|
| 固定タグ | #plannotator | 必須 |
| プロジェクト名 | #myproject、#plannotator | 必須 |
| H1キーワード | #authentication、#api | オプション(最大3個) |
| プログラミング言語 | #typescript、#python | オプション |
ストップワードリスト(タグにならない):
the,and,for,with,this,that,from,intoplan,implementation,overview,phase,step,steps
除外されるプログラミング言語(タグにならない):
json,yaml,yml,text,txt,markdown,md
例:タグ生成プロセス
プランのタイトルが "Implementation Plan: User Authentication System in TypeScript" で、コードブロックにPythonとJSONが含まれている場合:
- 固定タグ:
#plannotator - プロジェクト名:
#myproject(gitリポジトリ名と仮定) - H1キーワード:
implementation→ 除外(ストップワード)plan→ 除外(ストップワード)user→ 保持 →#userauthentication→ 保持 →#authenticationsystem→ 保持 →#systemtypescript→ 保持 →#typescript
- プログラミング言語:
python→ 保持 →#pythonjson→ 除外(除外リスト)
最終タグ:#plannotator #myproject #user #authentication #system #typescript #python(7個、上限に達成)
Obsidian連携との比較
| 特徴 | Bear連携 | Obsidian連携 |
|---|---|---|
| 設定の複雑さ | シンプル(スイッチのみ) | 中程度(vaultとフォルダの選択が必要) |
| 保存先 | Bearアプリ内 | 指定したvaultパス |
| ファイル名 | Bear自動管理 | Title - Mon D, YYYY H-MMam.md |
| Frontmatter | なし(Bearは非対応) | あり(created, source, tags) |
| クロスプラットフォーム | macOSのみ | macOS/Windows/Linux |
| x-callback-url | ✅ 使用 | ❌ 直接ファイル書き込み |
どちらを選ぶべきか
- macOSのみ使用しBearが好みなら:Bear連携がよりシンプル
- クロスプラットフォームやカスタム保存パスが必要なら:Obsidian連携がより柔軟
- 両方使いたい場合:同時に有効化可能(プラン承認時に両方に保存)
このレッスンのまとめ
- Bear連携はx-callback-urlプロトコルで動作し、設定がシンプル
- Settingsでスイッチをオンにするだけで、パス指定は不要
- プラン承認時に自動的にBearに保存
- スマートタグ生成:プロジェクト名、キーワード、プログラミング言語を含む(最大7個)
- Obsidian連携と比較して、Bearはよりシンプルだが機能は少なめ
次のレッスン
次のレッスンでは リモート/Devcontainerモード を学びます。
学べること:
- リモート環境(SSH、Devcontainer、WSL)でPlannotatorを使用する方法
- 固定ポートとポートフォワーディングの設定
- リモート環境でブラウザを開いてレビュー画面を表示する方法
付録:ソースコード参照
クリックしてソースコードの場所を表示
更新日:2026-01-24
| 機能 | ファイルパス | 行番号 |
|---|---|---|
| Bear設定インターフェース | packages/server/integrations.ts | 18-20 |
| Bearへの保存 | packages/server/integrations.ts | 234-257 |
| タグ抽出 | packages/server/integrations.ts | 34-74 |
| タイトル抽出 | packages/server/integrations.ts | 94-105 |
| Bear設定インターフェース | packages/ui/utils/bear.ts | 15-17 |
| Bear設定の読み取り | packages/ui/utils/bear.ts | 22-26 |
| Bear設定の保存 | packages/ui/utils/bear.ts | 31-33 |
| UI設定コンポーネント | packages/ui/components/Settings.tsx | 496-518 |
| 承認時のBear呼び出し | packages/editor/App.tsx | 512-514 |
| サーバーでのBear処理 | packages/server/index.ts | 250-257 |
主要な関数:
saveToBear(config: BearConfig):x-callback-urlを使用してプランをBearに保存extractTags(markdown: string):プラン内容からスマートにタグを抽出(最大7個)extractTitle(markdown: string):プランのH1タイトルからノートタイトルを抽出getBearSettings():localStorageからBear連携設定を読み取りsaveBearSettings(settings):Bear連携設定をlocalStorageに保存
主要な定数:
STORAGE_KEY_ENABLED = 'plannotator-bear-enabled':localStorageでのBear設定のキー名
Bear URLフォーマット:
bear://x-callback-url/create?title={title}&text={content}&open_note=no