Skip to content

Bear連携:承認したプランを自動保存

この章で学べること

Bear連携を有効にすると、プランを承認するたびにPlannotatorが自動的にBearノートに保存します:

  • 自動生成されるタイトル(プランから抽出)
  • スマートタグ(プロジェクト名、キーワード、プログラミング言語)
  • プランの完全な内容

これにより、承認したすべてのプランを一箇所で管理でき、後から参照したりナレッジとして蓄積したりできます。

今あなたが直面している課題

こんな経験はありませんか:

  • AIが生成したプランが良かったので、後で参照できるように保存したい
  • Bearに手動でコピー&ペーストするのが面倒
  • 異なるプロジェクトのプランが混在し、タグで整理できていない

Bear連携を使えば、これらの問題を自動的に解決できます。

このチュートリアルが役立つ場面

  • Bearをメインのノートアプリとして使用している
  • 承認したプランをナレッジベースとしてアーカイブしたい
  • タグを使って過去のプランを素早く検索したい

Bearについて

BearはmacOS向けのMarkdownノートアプリで、タグ、暗号化、同期などの機能をサポートしています。まだインストールしていない場合は、bear.appをご覧ください。

🎒 始める前の準備

基本的な仕組み

Bear連携の核心は x-callback-url プロトコルです:

  1. Plannotator UIでBear連携を有効化(ブラウザのlocalStorageに保存)
  2. プラン承認時、Plannotatorが bear://x-callback-url/create URLを送信
  3. システムが open コマンドでBearを自動起動しノートを作成
  4. プランの内容、タイトル、タグが自動的に入力される

主な特徴

  • 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から取得)
  • 内容が完全か(プラン全文を含む)
  • タグが適切か(プロジェクト名、キーワード、プログラミング言語)

期待される結果: 以下のようなノート構造が確認できます:

markdown
## User Authentication

[プランの完全な内容...]

#plannotator #myproject #authentication #typescript #api

チェックポイント ✅

  • [ ] SettingsでBear Notesスイッチが有効になっている
  • [ ] プラン承認後にBearが自動的に開く
  • [ ] ノートのタイトルがプランのH1と一致している
  • [ ] ノートにプランの完全な内容が含まれている
  • [ ] タグに #plannotator とプロジェクト名が含まれている

よくあるトラブルと解決策

Bearが自動的に開かない

原因:システムの open コマンドが失敗している可能性があります:

  • BearがインストールされていないかApp Storeからダウンロードされていない
  • BearのURLスキームが他のアプリに乗っ取られている

解決策

  1. Bearが正常にインストールされていることを確認
  2. ターミナルで手動テスト:open "bear://x-callback-url/create?title=test"

タグが期待通りでない

原因:タグは以下のルールで自動生成されます:

  • 必須:#plannotator
  • 必須:プロジェクト名(gitリポジトリ名またはディレクトリ名から抽出)
  • オプション:H1タイトルから最大3つのキーワードを抽出(ストップワードを除外)
  • オプション:コードブロックからプログラミング言語タグを抽出(json/yaml/markdownを除外)
  • 最大7個のタグ

解決策

  • タグが期待通りでない場合は、Bearで手動編集できます
  • プロジェクト名が正しくない場合は、gitリポジトリの設定またはディレクトリ名を確認

承認したが保存されない

原因

  • Bear連携が有効になっていない(Settingsを確認)
  • ネットワークエラーまたはBearの応答タイムアウト
  • プランの内容が空

解決策

  1. Settingsでスイッチが青色(有効状態)であることを確認
  2. ターミナルにエラーログがないか確認([Bear] Save failed:
  3. プランを再度承認

タグ生成メカニズムの詳細

Plannotatorはスマートにタグを生成し、Bearでプランを素早く検索できるようにします。以下はタグの生成ルールです:

タグの出典優先度
固定タグ#plannotator必須
プロジェクト名#myproject#plannotator必須
H1キーワード#authentication#apiオプション(最大3個)
プログラミング言語#typescript#pythonオプション

ストップワードリスト(タグにならない):

  • the, and, for, with, this, that, from, into
  • plan, implementation, overview, phase, step, steps

除外されるプログラミング言語(タグにならない):

  • json, yaml, yml, text, txt, markdown, md
例:タグ生成プロセス

プランのタイトルが "Implementation Plan: User Authentication System in TypeScript" で、コードブロックにPythonとJSONが含まれている場合:

  1. 固定タグ#plannotator
  2. プロジェクト名#myproject(gitリポジトリ名と仮定)
  3. H1キーワード
    • implementation → 除外(ストップワード)
    • plan → 除外(ストップワード)
    • user → 保持 → #user
    • authentication → 保持 → #authentication
    • system → 保持 → #system
    • typescript → 保持 → #typescript
  4. プログラミング言語
    • python → 保持 → #python
    • json → 除外(除外リスト)

最終タグ:#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.ts18-20
Bearへの保存packages/server/integrations.ts234-257
タグ抽出packages/server/integrations.ts34-74
タイトル抽出packages/server/integrations.ts94-105
Bear設定インターフェースpackages/ui/utils/bear.ts15-17
Bear設定の読み取りpackages/ui/utils/bear.ts22-26
Bear設定の保存packages/ui/utils/bear.ts31-33
UI設定コンポーネントpackages/ui/components/Settings.tsx496-518
承認時のBear呼び出しpackages/editor/App.tsx512-514
サーバーでのBear処理packages/server/index.ts250-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フォーマット

typescript
bear://x-callback-url/create?title={title}&text={content}&open_note=no