Claude CodeのHooksで、Obsidianのナレッジを自動参照する仕組みを作ってみた
こんばんわ〜AI寺子屋こと上田です
今日は1 on 1でのレッスンがあり、帰り道についバーミヤンに寄ってハイボール一杯のんでから帰りました。
今ちょうど台湾フェア開催していて、美味しい台湾料理をいただきました
まあ、そんなことはどうでもいいんですがw
今回はかなりというかめちゃくちゃ有用性の高い記事になります。
では行ってみましょう〜〜〜
AIに毎回、同じ説明をするのが地味に面倒だったりしませんか?
「このプロジェクトでは、こういうルールで書いて」
「この読者には、こういう言葉づかいで」
「この商品は、こういうコンセプトで」
「過去にこのエラーでハマったから注意して」
「この開発では、この設計思想を守って」
こういう前提情報を、Claude Codeに毎回手入力していました。
最初はそれでもよかった。
でも、プロジェクトが増えてくると、だんだん限界が来ます。
AIは優秀です。
でも、こちらの頭の中までは勝手に読めません。
だから、毎回ちゃんと文脈を渡す必要がある。
ただ、その「文脈を渡す作業」自体が面倒なんです。
そこで今回、Claude CodeのHooksを使って、Obsidianに蓄積したナレッジを自動で参照する仕組みを作ってみました。
結論から言うと、かなり良いです。
Claude Codeが「その場で返事をするAI」から、自分のObsidianを読んだうえで動くAI社員に近づきました。
Hooksとは何か
Claude CodeのHooksは、ざっくり言うと、特定のタイミングで自動処理を走らせる仕組みです。
たとえば、
ユーザーがプロンプトを送信したとき
Claudeがツールを使う前
Claudeがツールを使ったあと
作業が終わったあと
エラーが起きたとき
こういうタイミングで、自分が用意したスクリプトを実行できます。
つまり、Claude Codeの動きに合わせて、
「作業前に資料を読ませる」
「作業後にログを残す」
「危険な操作の前にチェックする」
「変更後にテストを走らせる」
といったことができます。
今回やったのは、このHooksを使って、
自分がClaude Codeに指示を出したタイミングで、Obsidian Vaultから関連ナレッジを探して、Claudeに渡す
という仕組みです。
なぜObsidianとHooksの相性がいいのか
Obsidianには、自分の思考の断片がどんどん溜まっていきます。
たとえば、
商品設計メモ
Claude Codeの使い方
過去の失敗ログ
Hooksの設定例
Substack記事の構成
Threads投稿テンプレート
AI寺子屋 CraftLabのコンセプト
顧客対応の知見
開発ルール
プロンプトの型
16人のAI社員の役割
こういう情報です。
人間にとっては、これはただのメモではありません。
自分専用の思考OSです。
でも、普通にClaude Codeを使うだけだと、このObsidianの中身はClaudeに届きません。
Claudeは、今このチャットに書かれた情報だけを見て判断します。
つまり、Obsidianにどれだけナレッジを貯めても、Claudeに渡さなければ存在しないのと同じです。
そこでHooksです。
Hooksを使えば、Claude Codeに指示を送る前後のタイミングで、自動処理を差し込めます。
つまり、
Obsidianに溜めたナレッジを、Claude Codeの作業フローに自動で混ぜ込める
ということです。
今回作りたかった流れ
今回作りたかったのは、こういう流れです。
ユーザーがClaude Codeに指示を送る
↓
Hookが発火する
↓
ユーザーの入力内容を取得する
↓
Obsidian Vault内のMarkdownを検索する
↓
関連度の高いノートを数件ピックアップする
↓
関連ナレッジをコンテキストとしてClaudeに渡す
↓
ClaudeがObsidianの知識を踏まえて回答・作業する
ポイントは、自分で毎回ノートを探さなくていいことです。
今までは、
「たしかこの話、Obsidianに書いてあったな」
「どのフォルダだっけ?」
「このメモもClaudeに渡した方がいいな」
と、人間側が探して貼り付けていました。
でも、これを毎回やるのは地味にしんどい。
AIに相談したいのに、相談する前の準備で疲れる。
この摩擦を、Hooksで消したかったんです。
仕組みの全体像
実装の考え方は、そこまで複雑ではありません。
ObsidianのVaultは、基本的にMarkdownファイルの集まりです。
つまり、特別なデータベースではなく、普通のテキストファイルとして読み込めます。
たとえば、自分のVaultがこうなっていたとします。
ObsidianVault/
├── 00_MOC/
│ └── ClaudeCode_総合MOC.md
├── 01_ClaudeCode/
│ ├── slash_commands.md
│ ├── hooks.md
│ └── context_engineering.md
├── 02_Business/
│ ├── AI寺子屋CraftLab.md
│ └── 商品設計.md
├── 03_Content/
│ ├── Substack運用.md
│ └── Threads投稿テンプレ.md
└── 04_Logs/
└── 開発ログ.md
Claude Codeにこう送ったとします。
Claude Codeの/hooksについて初心者向けに記事を書いて
するとHook側で、
Claude Code
hooks
初心者
記事
といったキーワードを拾います。
そして、Obsidian内から関連しそうなノートを検索します。
たとえば、
01_ClaudeCode/hooks.md01_ClaudeCode/context_engineering.md03_Content/Substack記事テンプレ.md01_Profile/読者ペルソナ.md
のようなノートが見つかったら、その一部をClaudeに渡します。
イメージとしては、こんな感じです。
以下はObsidianから取得した関連ナレッジです。
# Claude Code Hooks
HooksはClaude Codeの特定タイミングで外部スクリプトを実行する仕組み。
作業前のチェック、作業後のテスト、自動ログ保存、コンテキスト注入に使える。
# 読者ペルソナ
対象はAI初心者、個人事業主、副業層。
専門用語を避け、実践手順を先に見せる。
# Substack記事テンプレ
冒頭は体験談から入り、問題提起、仕組み、実践手順、注意点、まとめの順で構成する。
これが自動で入ると、Claudeの回答がかなり変わります。
実装の基本構成
今回の仕組みは、大きく分けると4つの部品で構成します。
1. Hook設定
2. Obsidian Vaultを検索するスクリプト
3. 関連ナレッジを整形する処理
4. Claude Codeへコンテキストとして渡す処理
最初から本格的なRAGやベクトル検索を組まなくても大丈夫です。
まずはMarkdownをキーワード検索するだけでも効果があります。
最小構成なら、こうです。
ユーザー入力を受け取る
↓
入力文に含まれるキーワードを取り出す
↓
Vault内の .md ファイルを検索する
↓
一致数が多いファイルを上位表示する
↓
冒頭数百〜千文字だけ関連ナレッジとして整形する
↓
Claude Codeに渡す
これだけでも、かなり使えます。
Hooksでどのタイミングに仕込むか
ここが今回の肝です。
Obsidianナレッジ参照を入れるなら、候補は主に3つあります。
1. UserPromptSubmit
ユーザーがプロンプトを送信したタイミングで動かす方法です。
今回の用途には、これが一番わかりやすいです。
ユーザーの入力内容をもとにObsidianを検索し、関連ナレッジを追加する。
つまり、Claudeが回答を作る前に、必要な前提を渡せます。
ユーザー入力
↓
Hook発火
↓
Obsidian検索
↓
関連ナレッジ追加
↓
Claudeが回答
記事執筆、設計相談、開発方針の確認などに向いています。
2. PreToolUse
Claudeがツールを使う直前に動かす方法です。
たとえば、Claudeがファイルを編集する前に、
プロジェクトルールを確認する
禁止操作をチェックする
関連する設計メモを読む
過去のエラーログを確認する
といった使い方ができます。
開発用途ではかなり便利です。
Claudeがファイル編集しようとする
↓
Hook発火
↓
Obsidianから開発ルールを取得
↓
必要なら警告や補足を出す
↓
Claudeが作業
3. PostToolUse
Claudeがツールを使ったあとに動かす方法です。
たとえば、
変更内容をObsidianにログ保存する
エラー内容を開発ログに追記する
実行結果を日次ログにまとめる
成功したプロンプトをテンプレ化する
といった使い方ができます。
これは「ObsidianからClaudeへ渡す」だけでなく、Claudeの作業結果をObsidianへ戻す用途に向いています。
Claudeが作業する
↓
Hook発火
↓
作業結果をログ化
↓
Obsidianに追記
↓
次回以降のナレッジになる
この循環が作れると、かなり強いです。
最初はUserPromptSubmitだけでいい
いろいろ書きましたが、最初から全部やる必要はありません。
まずは、UserPromptSubmitでObsidianを検索して、関連ナレッジをClaudeに渡す。
これだけで十分です。
なぜなら、多くのズレは「作業前の文脈不足」で起きるからです。
Claudeに何かを頼む前に、
読者像
プロジェクトルール
商品コンセプト
過去の判断
関連する開発ログ
を渡せるだけで、出力の質はかなり安定します。
トークン数はかなり消費するのか?
この仕組みを使うときに、気になるのがトークン数です。
結論から言うと、雑に作るとかなり消費します。
たとえば、Obsidianの関連ノートを毎回5件取り出し、1ノートあたり2,000文字ずつClaudeに渡したとします。
5ノート × 2,000文字 = 10,000文字
これを毎回チャットに追加すると、かなり重くなります。
しかも、情報が多ければ多いほど良いわけではありません。
むしろ、関係の薄いメモまで混ざると、Claudeの判断がブレます。
つまり、
高コストなのに、精度も落ちる
という一番もったいない状態になります。
なので大事なのは、Obsidianを全部読ませることではなく、必要な情報だけを小さく渡すことです。
自分なら、最初はこのくらいに制限します。
{
"maxFiles": 3,
"maxCharsPerFile": 800,
"maxTotalChars": 2500
}
つまり、
関連ノートは最大3件
1ノートあたり800文字まで
全体で2,500文字以内
このくらいです。
この設定なら、毎回のトークン消費を抑えつつ、文脈補強として十分使えます。
大事なのは、AIに大量の情報を渡すことではありません。
AIが判断に必要な情報だけを、短く、正確に渡すことです。
さらに節約するならsummaryを使う
トークンをさらに抑えるなら、Obsidianノートの冒頭にAI用の要約を書いておくのがおすすめです。
たとえば、各ノートの先頭にこう書きます。
---
tags: [claude-code, hooks, obsidian]
summary: Claude CodeのHooksを使って、作業前後に自動処理を挟む設計メモ。Obsidian検索、ログ保存、テスト実行に使える。
priority: high
---
Hook側では、いきなり本文全部を読むのではなく、まず summary だけを参照します。
必要な場合だけ本文の一部を追加する。
この設計にすると、トークン消費をかなり抑えられます。
理想はこうです。
第1段階:ファイル名・タグ・summaryだけ検索
↓
第2段階:上位3件のsummaryだけ渡す
↓
第3段階:必要そうなノートだけ本文の一部を渡す
↓
第4段階:それでも足りなければClaudeに追加で読ませる
毎回いきなり本文を突っ込まない。
まずは軽く渡す。
必要なら深掘りする。
この設計が一番バランスいいです。
AIに作らせるための依頼文
ここで大事なのは、この仕組みを自分でゼロから書かなくていいということです。
Hooksを使ったObsidian自動参照の仕組み自体も、Claude Codeに作らせればいい。
たとえば、Claude Codeにこう投げます。
Claude CodeのHooksを使って、UserPromptSubmit時にObsidian Vault内のMarkdownファイルを検索し、ユーザーの入力内容に関連するノートを自動で抽出して、Claudeへのコンテキストとして追加する仕組みを作ってください。
要件:
- 対象はローカルのObsidian Vault
- .mdファイルのみを検索対象にする
- private、secrets、contracts、client などのフォルダは除外する
- .env やAPIキーらしき文字列は読み込まない
- ユーザー入力からキーワードを抽出する
- 関連度の高いノートを最大3件取得する
- 1ノートあたり800文字まで取得する
- 全体で2500文字以内に収める
- 可能ならfrontmatterのsummaryを優先して使う
- summaryがない場合だけ本文冒頭を使う
- 取得した内容を「Obsidian関連ナレッジ」として整形する
- 最初はベクトル検索ではなく、シンプルなキーワード検索でよい
- Node.jsまたはPythonで実装する
- 設定ファイルでVaultのパス、除外フォルダ、最大件数、最大文字数を変更できるようにする
- Claude Codeのhooks設定例も作成する
- READMEにセットアップ手順と使い方を書く
これで、かなり現実的な実装まで進められます。
ポイントは、「Obsidian検索ツールを作って」ではなく、
Claude CodeのHooksに組み込む前提で、しかもトークン上限も含めて作って
と依頼することです。
ここが大事です。
もう少し実装寄りに頼むなら
さらに具体的にしたい場合は、こうです。
このリポジトリに、Claude Code Hooksから呼び出せるObsidianナレッジ注入ツールを追加してください。
仕様:
1. obsidian-context.config.json を作成
2. vaultPath、excludeDirs、maxFiles、maxCharsPerFile、maxTotalChars を設定可能にする
3. scripts/search-obsidian-context.ts を作成
4. 標準入力または引数からユーザー入力を受け取る
5. Vault内のMarkdownを再帰的に検索する
6. frontmatterのtagsとsummaryを読み取る
7. ユーザー入力とのキーワード一致数でスコアリングする
8. MOCフォルダとpriority: high のノートを少し優先する
9. 上位ノートを最大3件取得する
10. まずsummaryを優先して出力する
11. summaryがない場合のみ本文冒頭を最大800文字まで出力する
12. 出力全体は2500文字以内に収める
13. 結果を「Obsidian関連ナレッジ」としてMarkdown形式で出力する
14. Claude CodeのUserPromptSubmit hookからこのスクリプトを呼べるようにする
15. .claude/settings.json のhooks設定例を追加する
16. 個人情報、.env、APIキーらしき文字列を読み込まない安全設計にする
17. READMEにセットアップ手順を書く
このくらいまで書くと、Claude Codeはかなり動きやすくなります。
最小構成のファイル例
最初に作るなら、構成はこれくらいで十分です。
project/
├── .claude/
│ └── settings.json
├── obsidian-context.config.json
├── scripts/
│ └── search-obsidian-context.ts
├── package.json
└── README.md
役割はこうです。
.claude/settings.json
→ Claude CodeのHooks設定を書く場所
obsidian-context.config.json
→ Obsidian Vaultのパスや除外フォルダ、文字数上限を書く場所
scripts/search-obsidian-context.ts
→ ユーザー入力を受け取り、Obsidianを検索するスクリプト
package.json
→ 実行コマンドを定義する場所
README.md
→ 使い方を残す場所
やっていることはシンプルです。
1. Claude Codeでユーザーが指示を送る
2. UserPromptSubmit Hookが発火する
3. search-obsidian-context.ts が呼ばれる
4. Obsidian Vault内のMarkdownを検索する
5. 関連ノートを短く整形して出力する
6. Claudeがその情報を踏まえて回答する
難しい言葉で言えばRAGですが、実態はかなりシンプルです。
自分のノートを探して、Claudeへの質問に自動で添付する仕組み。
まずはこの理解で大丈夫です。
Hooks設定のイメージ
Hooksの設定は、イメージとしてはこんな感じです。
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "npm run obsidian-context"
}
]
}
]
}
}
実際には、Claude Codeの環境や設定形式に合わせて調整が必要です。
大事なのは、UserPromptSubmitのタイミングで、
npm run obsidian-context
のようなコマンドを呼び出すこと。
このコマンドの中で、Obsidian Vaultを検索して、Claudeに渡す関連ナレッジを生成します。
プロンプトに入れる内容の例
HookでObsidianを検索したら、Claudeにはこんな形で渡します。
# Obsidian関連ナレッジ
以下は、ユーザーの入力内容に関連してObsidian Vaultから自動取得したナレッジです。
必要な範囲で参考にしてください。
矛盾がある場合は、ユーザーの最新指示を優先してください。
## 1. 01_ClaudeCode/hooks.md
summary:
Claude CodeのHooksを使って、作業前後に自動処理を挟む設計メモ。Obsidian検索、ログ保存、テスト実行に使える。
## 2. 03_Content/Substack記事テンプレ.md
summary:
Substack記事は、冒頭の体験談、問題提起、仕組み、実践手順、注意点、まとめの順で構成する。
## 3. 01_Profile/読者ペルソナ.md
summary:
対象読者はAI初心者、個人事業主、副業層。専門用語を避け、実践手順を先に見せる。
ここで重要なのは、関連ナレッジを「命令」ではなく「参考情報」として渡すことです。
さらに、
矛盾がある場合は、ユーザーの最新指示を優先してください。
と入れておくと、古いメモに引っ張られすぎるリスクを減らせます。
注意点:Obsidianを全部読ませない
ただし、Obsidianの中身を全部Claudeに渡せばいいわけではありません。
むしろ、渡しすぎると精度が落ちます。
Claudeにとっても、情報が多すぎるとノイズになります。
なので、自分は次のルールを入れます。
- 関連ノートは最大3件まで
- 1ノートあたり800文字まで
- 全体で2500文字以内
- まずsummaryを優先する
- MOCや設計思想ノートを少し優先する
- 古いメモより、更新日の新しいメモを少し優先する
- private、secrets、contracts、client は除外する
- .env やAPIキーらしき文字列は読み込まない
- 個人情報を含むノートは自動参照対象から外す
特に大事なのは、セキュリティです。
Obsidianは個人の思考倉庫なので、何でも入っています。
そのままClaudeに渡すと、渡したくない情報まで含まれる可能性があります。
だから、除外フォルダは必須です。
たとえば、
/private
/secrets
/contracts
/client
このあたりは、自動参照の対象から外しておく。
便利さと安全性はセットで考えた方がいいです。
使ってみて感じたメリット
実際に使ってみて、良かった点は大きく5つあります。
1. 毎回の説明が減る
これが一番大きいです。
Claudeに毎回、
「自分の読者はAI初心者です」
「専門用語は避けてください」
「Substack記事は体験談ベースにしてください」
「Threads向けは短くしてください」
「開発ログも残してください」
と書かなくてよくなります。
Obsidian側に書いておけば、必要なときにHookが拾ってくれる。
これだけで作業の摩擦がかなり減りました。
2. 出力のブレが減る
AIの回答は、文脈が少ないとブレます。
でも、毎回同じ設計思想やルールを渡せると、出力が安定します。
これはコンテンツ制作でも開発でも大事です。
特にSubstackやThreadsのように、発信のトーンを揃えたい場合は効果が大きいです。
3. Obsidianにメモする意味が増える
これまでは、Obsidianにメモしても「あとで自分が読む」だけでした。
でも、この仕組みを入れると、メモがClaudeの判断材料になります。
つまり、Obsidianに書くことが、そのまま未来のClaudeへの教育になる。
これはかなり面白い感覚です。
Vaultが育つほど、Claudeの回答も自分向けに育っていく。
まさに知識の複利です。
4. HooksがAI社員の業務フローになる
Hooksの面白いところは、ただの自動化ではないところです。
自分の感覚では、HooksはAI社員の業務フローです。
人間の社員にも、
「作業前に仕様書を確認して」
「作業後に日報を書いて」
「危険な操作の前には確認して」
「失敗したらログを残して」
というルールがあります。
Claude CodeのHooksは、これをAIに対して設定するようなものです。
Obsidianは社内Wiki。
Hooksは業務フロー。
Claude CodeはAI社員。
この3つがつながると、一気に実務っぽくなります。
5. 開発ログが次回の武器になる
エラー対応、設計判断、調査メモ。
こういうものは、その場では地味です。
でも、あとから効いてきます。
たとえば、
Supabase Authでハマったこと
Vercelデプロイ時の環境変数ミス
Tailwindの設定で詰まったポイント
Claude Code Hooksの設定例
うまくいったプロンプト
こうしたログをObsidianに残しておくと、次回のAI相談時に再利用できます。
失敗がそのまま教材になる。
これは個人開発者にとってかなり強いです。
逆に難しかったところ
もちろん、良いことばかりではありません。
実装してみて難しかったのは、検索精度です。
キーワード検索だけだと、たまにズレたノートを拾います。
たとえば「Hooks」と書いてあるだけの古いメモを拾ってしまうことがあります。
逆に、本当は関連しているのに、言葉が一致しないから拾えないこともあります。
ここは今後改善したいところです。
対策としては、
ノートにタグを付ける
タイトルをわかりやすくする
MOCを整備する
要約ブロックを各ノートの冒頭に置く
embedding検索を使う
更新日やフォルダで重み付けする
あたりが有効そうです。
特に、各ノートの冒頭に「このノートは何のための情報か」を書いておくと、Hookで拾ったときの使いやすさが上がります。
Obsidianの書き方自体も、AIに読ませる前提で変わっていく感じがします。
Obsidian側のおすすめ構成
今回の仕組みを使うなら、Obsidian側は少し整理しておくと便利です。
自分なら、最低限このあたりを用意します。
00_MOC/
全体の目次
Claude Code関連MOC
Hooks関連MOC
コンテンツ制作MOC
01_Profile/
自分のプロフィール
事業コンセプト
読者ペルソナ
文章トーン
02_Development/
技術スタック
コーディングルール
エラー対応ログ
よく使うコマンド
03_Content/
Substack記事テンプレ
Threads投稿テンプレ
タイトル案
CTAパターン
04_Products/
商品一覧
価格設計
LP構成
よくある質問
90_Archive/
古いメモ
参照頻度の低い情報
ポイントは、AIに参照させたい情報と、させたくない情報を分けることです。
全部を同じ場所に入れると、あとで管理が大変になります。
最初から「Hooksで読ませる前提のVault設計」にしておくと、かなり楽です。
さらに進めるなら、PostToolUseでObsidianに戻す
今回の中心は、UserPromptSubmitでObsidianからClaudeへナレッジを渡す仕組みです。
でも、本当に面白いのはその先です。
PostToolUseを使えば、Claudeの作業結果をObsidianへ戻せます。
たとえば、
Claudeがコードを修正する
↓
PostToolUse Hookが発火
↓
変更内容やエラー解決ログを整形
↓
Obsidianの開発ログに追記
↓
次回以降、そのログがまた参照される
この循環ができると、かなり強いです。
ObsidianからClaudeへ知識を渡す
↓
Claudeが作業する
↓
作業結果をObsidianに戻す
↓
次回さらに賢くなる
ただのチャットではなく、知識が育つ作業環境になります。
これは小さなRAGであり、AI社員の社内Wiki運用でもある
今回の仕組みは、難しく言えば小さなRAGです。
RAGとは、AIが回答する前に外部情報を検索して、その情報をもとに答える仕組みです。
ただ、初心者向けに言うなら、
Claudeに、自分のObsidianをカンニングペーパーとして渡す仕組み
です。
そしてHooksを使うことで、それが手動ではなく自動になります。
AIは何でも知っているように見えます。
でも、本当に大事なのは一般知識ではなく、自分の文脈です。
自分が何を大切にしているのか。
どんな読者に届けたいのか。
どんな失敗をしてきたのか。
どんなルールで開発しているのか。
それは、Claudeの中ではなく、自分のObsidianの中にあります。
だから、Hooksで自動的に読ませる。
これはかなり自然な流れだと思います。
まとめ
今回、Claude CodeのHooksを使って、Obsidianのナレッジを自動参照する仕組みを作ってみました。
やっていることはシンプルです。
UserPromptSubmitでHookを動かす
↓
ユーザー入力をもとにObsidianを検索する
↓
関連ノートを最大3件だけ取り出す
↓
summaryを優先して短く整形する
↓
全体で2500文字以内に収める
↓
Claudeにコンテキストとして渡す
↓
Claudeが自分の文脈を踏まえて回答する
難しそうに見えるかもしれません。
でも実際には、この仕組み自体もClaude Codeに投げれば構築できます。
大事なのは、自分で全部作れることではありません。
「こういうタイミングで、こういうナレッジを、これくらいの量で読ませたい」と言語化できることです。
Obsidianは、自分の思考の倉庫。
Hooksは、AI社員の業務フロー。
Claude Codeは、それを使って動く作業者。
この3つがつながると、AI活用はかなり変わります。
これからのAI活用は、単発のプロンプト勝負ではありません。
自分専用のナレッジをどう育て、どのタイミングで、どれくらいAIに渡すか。
ここが重要になってくるはずです。
Obsidianを使っている人。
Claude Codeを使っている人。
毎回同じ説明をAIにしている人。
ぜひ一度、HooksでObsidianナレッジを自動参照する仕組みを試してみてください。
メモが、ただのメモではなくなります。
AIを育てるための教材になります。
そして、その教材は、自分が日々書いてきた思考そのものです。
プロフィール
上田知孝
AI寺子屋 CraftLab 代表。
約20年のカスタマーサポート経験をもとに、AI活用、バイブコーディング、AIエージェント、Dify、Claude Code、Obsidian活用などを発信。
個人向けAI相談、ワークショップ、企業研修、デジタル教材制作を行う。
コンセプトは「教える × 作る × 繋げる」。







