Naidan
ガイド一覧

ブラウザ内のシェルでAIにファイル操作を任せる

プロジェクトのメモから未完了の作業を探す、ファイルを比較する、表を処理する。シェルを有効にすると、AIはツール呼び出しでコマンドを使えます。その結果は選んだチャットモデルの入力となり、ブラウザ内モデルなら端末内で処理され、サーバーモデルなら設定した接続先へ送られます。

コマンドが動くのはブラウザ内のシェルです。フォルダのマウントと書き込み権限は先に選び、シェルはコマンドごとに確認を求めず、その範囲で動きます。

Naidanを開き、ツール呼び出しに対応するモデルのチャットを選びます。

モデルをまだ用意していなければ、ブラウザ内モデルの設定ガイドまたはローカルエンジンの接続ガイドを参考にしてください。 ツール呼び出しを試すモデルの例として、Qwen3.5 9B(Q4_K_M GGUF)を選べます。

コマンドと実行結果全5回

この例は、/home/user/projectに書き込み可能でマウントしたローカルのGitリポジトリから始まります。notes.mdは追跡済みで変更はなく、task-summary.mdはまだ存在しません。

あなた

Gitの状態とプロジェクトのメモのTODOを確認して、task-summary.mdに作業をまとめて。

最初のGitの状態を確認する

コマンド
git -C /home/user/project status --short
実行結果
Exit Code: 0

TODOと行番号を探す

コマンド
grep -n 'TODO' /home/user/project/notes.md
実行結果
Exit Code: 0

STDOUT:
3:TODO: 会場を確定する
7:TODO: 招待状を送る

前後のメモを読む

コマンド
sed -n '1,8p' /home/user/project/notes.md
実行結果
Exit 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 --short
実行結果
Exit Code: 0

STDOUT:
# 作業のまとめ

- 会場を確定する
- 招待状を送る
?? task-summary.md

アシスタント

次の2件の作業をtask-summary.mdにまとめました。Gitでは、新しい未追跡のファイルとして表示されています。

  • 会場を確定する。
  • 招待状を送る。
書き込み可能なローカルのプロジェクトを使った作業例です。AIがGitの状態を確認し、grepで検索、sedで内容確認、cat <<EOFでtask-summary.mdの作成、保存した内容とGitの状態の確認を進めます。AIは作業に合わせてshell_executeを繰り返し呼び出します。完了した呼び出しの見出しは会話に残り、現在の呼び出しにはスクリプトと結果が表示されます。場面全体を繰り返し再生し、下の操作記録から全コマンドと結果を読むこともできます。この表示例では、モデル・コマンド・ファイル操作を実行しません。

このチャットでシェルを有効にする

1. チャットのツール設定を開く

入力欄の下で、添付ボタンの隣にある歯車形のツールを押します。チャットの下からオプション/ツールが開きます。

チャットのツールボタンから設定を開きます。

2. シェルをオンにする

ツール設定でシェル(ブラウザ内シェル)を探し、スイッチをオンにします。フォルダを添付してすでにオンなら、そのままで構いません。ツールの下にシェル設定が現れます。通常のチャットでシェルをオンにしても、Naidan内のファイルを読むマウントは初期状態ではオフです。

このチャットのシェルスイッチがオフからオンに変わります。

設定と読める範囲については、会話と保存済みファイルをシェルで読む設定をご覧ください。

PCのフォルダを使うには、ツールの隣の添付メニューからフォルダ(コピー)またはフォルダ(リンク)を選びます。選び方とアクセス範囲はファイルとフォルダの案内を参照してください。その後、ツール呼び出しに対応したモデルに、表示されたマウント先パスのファイル一覧など具体的な作業を頼みます。シェルの結果を受けて回答が続く様子は、上の例で確認できます。

使い慣れたコマンドを、ブラウザ内のファイルに使う

内部名をWeshというシェルで、ls・cat・grep・sed・jq・Gitなどを利用できます。各コマンドはこの環境向けに実装されています。OSにインストールした実行ファイルとは別に、対応しているコマンドをマウント先のファイルへ使います。

シェルで使えるフォルダを確認する

シェルが使えるのは、そのチャットの作業領域と公開されたフォルダです。検索には読み取り専用のアクセスで十分です。例のようにファイルを作る場合は、そのフォルダへの書き込み権限が必要です。

ブラウザ内で使えるコマンド

Weshに実装されている代表的なコマンドです。チャットに公開されたファイルを操作します。ファイルの変更には、マウントしたフォルダへの書き込み権限が必要です。

  • ファイルを探す・整理するlstreefindcatcpmvmkdir

    フォルダの一覧を確認し、ファイルを探して内容を読み取ります。書き込みできる場所では、ファイルのコピーや名前の変更、フォルダの作成もできます。

  • テキストを検索・加工するgreprgsedawksortuniqwc

    一致する行の検索、文字の置換、項目の抽出、並べ替え、連続する重複行の整理、件数の集計ができます。パイプでコマンドをつなぎ、複数の処理を組み合わせられます。

  • 構造のあるデータから必要な情報を取り出すjqcut

    jqでJSONを検索・変換したり、cutで区切り文字のあるテキストから必要な列を取り出したりできます。

  • ファイルを圧縮・展開するzipunzipgzipgunzip

    ブラウザ内でZIPファイルを作成・展開したり、gzip形式で圧縮・展開したりできます。

  • ファイルの違い・内容を確かめるdiffpatchsha256sum

    ファイル間の差分を調べ、テキストのパッチを適用したり、SHA-256のチェックサムを計算・照合したりできます。

  • Gitで変更を確認・記録するgit statusgit diffgit loggit addgit commit

    マウントしたリポジトリの状態や履歴を調べ、変更をコミットとして記録できます。リポジトリ間の転送は、Weshから見えるローカルパスを使います。インターネット上のリポジトリへの接続は無効です。

コマンドの一覧や、各コマンドで使えるオプションを確認できます。 help · help grep · grep --help