自分のWebページやアプリの仕組みを調べ、新しい実装を作るとき、何を観察し、どこまで確認できたかを残したいことがあるで。Craft Anythingは、対象を調べるツールとAIエージェントを組み合わせ、調査や新しいプロジェクトの作成を支援するオープンソースのソフトや。公式READMEは開発初期のアルファ版と説明してるで。
使う対象は自作のものや、調査と利用を許可されたものに限ってな。出力が元の製品と同じ動作や品質になる保証はなく、権利や利用条件も確認する必要があるで。
どんな結果が出るん?
2026年11月5日、Windows x64で公式v0.3.0ポータブル版を取得し、同じリリースにあるSHA256SUMS.txtとの一致を確認したで。まず自分で作った小さなHTMLを、AI接続なしのCLIで調べた。次は実際に表示されたJSONから、ファイル名を除いた主な項目の抜粋や。
"kind": "script"
"description": "A script or web page"
"engine_version": "0.3.0"
"confidence": "inferred"ファイルをスクリプトまたはWebページと推定した結果で、画面の再現や機能の正しさを証明するもんやない。別の自作PNGでは未対応の種類と返ったで。種類の推定に失敗する対象もあることが分かる。自分で拡張子や内容を読む方法もあるけど、このCLIでは判定結果と制限を構造化して受け取れる。時間や精度は比較してへん。
自作ファイルで試す
Windows 11 x64のPowerShellを使うで。公式リリースv0.3.0からcraft-anything-0.3.0-windows-x64-portable.zipとSHA256SUMS.txtを取得する。ARM版とは別や。ダウンロード時は通信するで。
- PowerShellで
Get-FileHash -Algorithm SHA256 "ZIPファイルのパス"を実行し、同名ファイルのSHA256SUMS.txtの値と照合する。一致しない場合は配布元と取得物を確認してな。 - ZIPを練習フォルダーへ展開し、
craft-anything-cli.exeが入るフォルダーでPowerShellを開く。 - 次のように自作の小さなHTMLを作り、CLIで種類を調べる。
--deepは対象ファイルを読む指定やから、自分が調べる権限を持つ練習ファイルにだけ使ってな。
Set-Content -Encoding ascii sample.html '<!doctype html><html><body><h1>Hello</h1></body></html>'
.\craft-anything-cli.exe --deep triage sample.html成功の目安:JSONのkindやsummaryに判定結果が出ることや。最初に--deepなしでも試したところ、既定のClean roomでは対象ファイルを読む操作が拒否されたで。これは不具合と決めつけず、許可範囲を確認するためのモードの違いや。深い読み取りが不要な対象には指定せんといてな。
もう一歩:自作コードから関数を探す
さっきのtriageは、ファイルの種類を見分ける入口やった。今度は自分で書いたJavaScriptを静的に調べ、どんな関数があるかを見てみるで。静的解析というのは、ここではコードを実行せず、ファイルを読んで構造を調べることや。料金計算の正しさや、実行時に何が起きるかまで自動で保証するものやない。
2026年11月5日にWindows x64のCraft Anything v0.3.0で試した例や。さっきと同じ練習フォルダーで、次をPowerShellに入力してpractice.jsを作る。架空の単価と個数を掛けるだけの、自作の練習コードやで。
@'
function total(price, count) {
return price * count;
}
console.log(total(300, 2));
'@ | Set-Content -Encoding utf8 practice.js
続けて、ファイルの絶対パスを渡して調べるで。--deepは指定したファイルの内容を読むため、必ず自分が調べる権限を持つものを指定してな。
.\craft-anything-cli.exe --deep js-app-map --input-path (Resolve-Path .\practice.js).Path > result.json
Get-Content -Raw result.json
成功するとresult.jsonが作られ、その中のmodulesには、対象ファイルと関数名が含まれる。実際の出力から、意味の分かりやすい部分だけを抜き出すと次のとおりや。行の順序や細かいID、ファイルの絶対パスは環境や版によって変わるで。
"coverage": { "examined": 1, "status": "complete", "total": 1 }
"path": "practice.js"
"functions": ["total"]
"kind": "defines"
"label": "total"
"line": 1
functionsは検出された関数名、definesはファイルと関数の定義関係、lineは関数定義の行を示す。coverageはこの実行で調査対象1ファイルを読めたという範囲の情報や。「すべての動作を理解できた」という意味やないで。実際、今回の出力にはstatic_onlyという制限があり、実行時に作られるコードや外部から読み込む内容は見えへんと書かれていた。
このサンプルを別途node practice.jsで実行したときは600と表示された。これはJavaScriptを動かした結果で、Craft Anythingの解析結果から計算した値やない。Craft Anythingを使うと、実行前に「どのファイルがどの関数を定義しているか」という手掛かりを得られる。一方、計算結果を確かめるには別途実行やテストが必要や。この例では速さや精度の比較はしてへんで。
エラーが出る場合は.\craft-anything-cli.exe --helpと.\craft-anything-cli.exe js-app-map --helpで、その版のコマンドを確認してな。ファイルがない場合はGet-ChildItemで現在のフォルダーと名前を確かめる。result.jsonは同名ファイルがあると上書きされるから、前の結果を残したい場合は先に別名に変えるんや。中にはローカルの絶対パスが含まれるので、共有する前に確認してな。
作り直しまで進むなら
公式が案内する「調べて新しいものを作る」流れでは、調査、AIへの依頼、生成物の確認が別々に必要や。たとえば、自作の練習ページを対象に、まずどんな入力欄や操作があるかをメモする。次に、利用するモデルと作業フォルダーを選び、元とは別の出力先に簡単なページを作るよう依頼する。最後に入力・表示・エラーを自分で試し、元と異なる点を記録するんや。
これは公式の構成をもとにした進め方の例やで。この記事ではAIモデルへの接続やページの生成は試しておらず、実際に生成された画面・結果は示してへん。利用するモデルの認証、料金、入力やソースの送信先はそれぞれ異なる。変更やコマンドの実行を許可する前に内容を読み、調査と再利用を許された素材だけを使ってな。
AIで作り直す前に
公式READMEは調査結果を基に新しいプロジェクトを作る機能も案内してる。AIによる生成を使う場合、利用するモデルの認証や費用、対象情報の送信先、実行されるコマンドと出力先を確認してな。この記事で試したのは自作ファイルの種類判定までで、AI接続、再実装、元の動作との比較は行ってへん。見た目が似ていても機能や権利上の問題がないとは限らへんで。
終了と確認先
判定コマンドが終われば処理は終了。再開時は同じフォルダーで別の自作ファイルを指定できる。--projectを指定すると調査記録を保持するフォルダーを作れるが、今回の練習では指定してへん。不要になったポータブル版と練習ファイルは、必要な結果を残してから削除してな。公式READMEはMITまたはApache 2.0の選択式ライセンスを案内しているで。
掲載候補:gitdebtの7日間スター増加ランキング2位、9,727(2026年11月4日更新)。gitdebtの分析対象内の順位で、GitHub全体ではない。現在のスター保有者の履歴を用いる指標は、過去の解除を含む厳密な純増とは限らへん。確認日:2026年11月5日。