Obsidianを使い始めて、思った。
ノートが読みにくい。
そう、私には読みやすいようにノートを整形する才能がない。
だが、時代は令和。私にはClaude Codeがいる。
前提条件
- Obsidianのコミュニティプラグインを利用できること
- ローカルにClaude Codeをインストールしていること(WSL環境でも可)(codexでもできると思う)
環境
- Obsidian: Windows 11
- Claude Code: WSL2
必要なコミュニティプラグイン
-
Shell Commands
シェルコマンドを実行できるようになる -
Commander
Obsidianの画面にショートカット実行ボタンを追加できる
手順
1. Claude Codeに自動編集を許可する
デフォルトのままだと、Claude Codeはファイルを編集するたびに確認を求めてくる。そこで ~/.claude/settings.json に以下の設定を追加し、自動編集を許可する。
"permissions": {
"allow": [ "Edit(*.md)" ]
}
2. Obsidianで「Shell Commands」を設定する
-
Obsidianのコミュニティプラグインから「Shell Commands」をインストールし、有効化する
-
プラグインの設定画面を開き、「New command」をクリックする
-
以下のようにコマンドを設定する
wsl /home/[ユーザー名]/claude_clean.sh "{{file_path:absolute}}" -
お好み
- General>Alias でエイリアスの設定
- General>Ask confirmation before execution 実行前に確認するか
3.claude code に実行プロンプトファイルを作成
-
~/.claude/にclaude_clean.shファイルを作成 - 以下のようにコマンドを設定する(ユーザー名の部分は要変更)(#パスを入力に自分のパスを入力)
ログファイルを作成するスクリプトが入っているが、必要なければ消しても構わない。ただ、ログファイルがないと何が起きているのか全く分からない
#!/bin/bash
# ログファイルの保存先(ObsidianのVault内に直接書く。要らなければ作成しなくてもよいが、何も表示されないので何が起きているかわからない。)
#パスを入力
LOG_FILE="/mnt/c/windowsのobsidian Vaultまでのパス/claude_debug.md"
echo "=== 実行開始: $(date) ===" >> "$LOG_FILE"
echo "1. Obsidianから受け取ったパス: $1" >> "$LOG_FILE"
# パス変換
FILE_PATH=$(wslpath "$1")
echo "2. WSL用に変換したパス: $FILE_PATH" >> "$LOG_FILE"
# 移動
#パスを入力
cd "/mnt/c/Users/Obsidian Vaultまでのパス/Obsidian Vault"
echo "3. 移動後の現在地: $(pwd)" >> "$LOG_FILE"
# Claudeの実行(エラーも標準出力もすべてログに追記する)
echo "4. Claude Codeを実行します..." >> "$LOG_FILE"
# Please edit the file~がプロンプト。日本語でも可
#パスを入力
/home/wslのユーザー名/.local/bin/claude --dangerously-skip-permissions -p "Please edit the file at '$FILE_PATH'. Fix typos, improve readability using proper Markdown headings and bullet points, and rewrite the content beautifully in Japanese. Directly overwrite it." < /dev/null >> "$LOG_FILE" 2>&1
echo "=== 実行終了 (終了コード: $?) ===" >> "$LOG_FILE"
echo "" >> "$LOG_FILE"
4. ボタンを作成
-
コミュニティプラグイン"Commander"を設定
-
add command で choose ~~ の部分にshell commandsを入力すると、先ほど作成したコマンドが出てくるので、選択
-
ピクトグラムを選び、OK
作ったボタンを押すと、ノートがきれいに整形される!!

