ブラウザ内のシェルでAIにファイル操作を任せる
プロジェクトのメモから未完了の作業を探す、ファイルを比較する、表を処理する。シェルを有効にすると、AIはツール呼び出しでコマンドを使えます。その結果は選んだチャットモデルの入力となり、ブラウザ内モデルなら端末内で処理され、サーバーモデルなら設定した接続先へ送られます。
コマンドが動くのはブラウザ内のシェルです。フォルダのマウントと書き込み権限は先に選び、シェルはコマンドごとに確認を求めず、その範囲で動きます。
Naidanを開き、ツール呼び出しに対応するモデルのチャットを選びます。
モデルをまだ用意していなければ、ブラウザ内モデルの設定ガイドまたはローカルエンジンの接続ガイドを参考にしてください。 ツール呼び出しを試すモデルの例として、Qwen3.5 9B(Q4_K_M GGUF)を選べます。
コマンドと実行結果全5回
この例は、/home/user/projectに書き込み可能でマウントしたローカルのGitリポジトリから始まります。notes.mdは追跡済みで変更はなく、task-summary.mdはまだ存在しません。
最初のGitの状態を確認する
git -C /home/user/project status --shortExit Code: 0
TODOと行番号を探す
grep -n 'TODO' /home/user/project/notes.mdExit Code: 0 STDOUT: 3:TODO: 会場を確定する 7:TODO: 招待状を送る
前後のメモを読む
sed -n '1,8p' /home/user/project/notes.mdExit Code: 0 STDOUT: # プロジェクトのメモ TODO: 会場を確定する 次の確認日:金曜日。 TODO: 招待状を送る
ヒアドキュメントで要約を作成する
cat <<EOF > /home/user/project/task-summary.md
# 作業のまとめ
- 会場を確定する
- 招待状を送る
EOF
Exit Code: 0
保存したファイルとGitの状態を確認する
cat /home/user/project/task-summary.md
git -C /home/user/project status --shortExit Code: 0 STDOUT: # 作業のまとめ - 会場を確定する - 招待状を送る ?? task-summary.md
このチャットでシェルを有効にする
1. チャットのツール設定を開く
入力欄の下で、添付ボタンの隣にある歯車形のツールを押します。チャットの下からオプション/ツールが開きます。
2. シェルをオンにする
ツール設定でシェル(ブラウザ内シェル)を探し、スイッチをオンにします。フォルダを添付してすでにオンなら、そのままで構いません。ツールの下にシェル設定が現れます。通常のチャットでシェルをオンにしても、Naidan内のファイルを読むマウントは初期状態ではオフです。
設定と読める範囲については、会話と保存済みファイルをシェルで読む設定をご覧ください。
PCのフォルダを使うには、ツールの隣の添付メニューからフォルダ(コピー)またはフォルダ(リンク)を選びます。選び方とアクセス範囲はファイルとフォルダの案内を参照してください。その後、ツール呼び出しに対応したモデルに、表示されたマウント先パスのファイル一覧など具体的な作業を頼みます。シェルの結果を受けて回答が続く様子は、上の例で確認できます。
使い慣れたコマンドを、ブラウザ内のファイルに使う
内部名をWeshというシェルで、ls・cat・grep・sed・jq・Gitなどを利用できます。各コマンドはこの環境向けに実装されています。OSにインストールした実行ファイルとは別に、対応しているコマンドをマウント先のファイルへ使います。
シェルで使えるフォルダを確認する
シェルが使えるのは、そのチャットの作業領域と公開されたフォルダです。検索には読み取り専用のアクセスで十分です。例のようにファイルを作る場合は、そのフォルダへの書き込み権限が必要です。
ブラウザ内で使えるコマンド
Weshに実装されている代表的なコマンドです。チャットに公開されたファイルを操作します。ファイルの変更には、マウントしたフォルダへの書き込み権限が必要です。
- ファイルを探す・整理する
lstreefindcatcpmvmkdirフォルダの一覧を確認し、ファイルを探して内容を読み取ります。書き込みできる場所では、ファイルのコピーや名前の変更、フォルダの作成もできます。
- テキストを検索・加工する
greprgsedawksortuniqwc一致する行の検索、文字の置換、項目の抽出、並べ替え、連続する重複行の整理、件数の集計ができます。パイプでコマンドをつなぎ、複数の処理を組み合わせられます。
- 構造のあるデータから必要な情報を取り出す
jqcutjqでJSONを検索・変換したり、cutで区切り文字のあるテキストから必要な列を取り出したりできます。
- ファイルを圧縮・展開する
zipunzipgzipgunzipブラウザ内でZIPファイルを作成・展開したり、gzip形式で圧縮・展開したりできます。
- ファイルの違い・内容を確かめる
diffpatchsha256sumファイル間の差分を調べ、テキストのパッチを適用したり、SHA-256のチェックサムを計算・照合したりできます。
- Gitで変更を確認・記録する
git statusgit diffgit loggit addgit commitマウントしたリポジトリの状態や履歴を調べ、変更をコミットとして記録できます。リポジトリ間の転送は、Weshから見えるローカルパスを使います。インターネット上のリポジトリへの接続は無効です。
コマンドの一覧や、各コマンドで使えるオプションを確認できます。 help · help grep · grep --help