系統定位
Craft Anything 是以 Rust 實作的軟體分析與重建工具。使用者提供目標及需求,由分析引擎蒐集證據,編碼 Agent 建立新專案,再以檢查結果安排修正;目前屬於 early alpha。
| 項目 | 內容 |
|---|---|
| 目標 | 網站 URL、應用程式或遊戲路徑;也可不提供原始目標 |
| 操作介面 | egui 桌面工作臺、CLI、MCP server |
| 分析產出 | 證據紀錄、涵蓋範圍、限制與尚未解答的問題 |
| 建置產出 | 新專案、比較報告與後續需求紀錄 |
| 適用範圍 | 自有或獲準分析的軟體、介面重建及實驗性原型 |
Study
- 目標與需求
- Clean room 或 Deep
- 證據與未知項目
Build
- 本機編碼 Agent
- 指定技術棧
- 新專案檔案
Check → Ready
- 建置與畫面比較
- 差異回饋與修正
- 預覽與人工驗收
Ready 可能仍有未通過的比較項目;交付前檢查最後一輪的所有結果與未知項目。
獨立分析可不使用 AI。建立新軟體需要編碼 Agent;瀏覽器 WebAssembly 版本主要提供檔案檢視,不能據此推定具有完整桌面重建能力。
安裝與診斷
- 未完成:
原始碼宣告需要 Rust 1.97 或更新版本。
- 未完成:
已安裝 Git,並依所選技術棧準備建置工具。
- 未完成:
建置工作已準備可執行且已登入的編碼 Agent。
- 未完成:
網站擷取所需的瀏覽器已準備;先閱讀
doctor的相關診斷。
以下是官方原始碼安裝路徑。本報告僅查閱文件與程式碼,未編譯或執行 Craft Anything,也未執行任何 AI 重建。
git clone https://github.com/storytold/craft-anything
cd craft-anything
cargo install --path apps/craft-anything-cli
craft-anything-cli doctor啟動桌面介面:
cargo run --release -p craft-anythingDebian/Ubuntu 的桌面版本另需官方列出的系統套件:
sudo apt-get install libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libgtk-3-dev需要預編譯版本時,先查看 GitHub Releases 的實際附件與校驗資訊。原始碼的版本欄位不能證明同版本安裝檔已發布。
分析模式
| 模式 | 可用資料與行為 | 需要確認的界線 |
|---|---|---|
| Clean room | 預設模式;使用訪客可見的畫面、文字與量測,以及使用者提供的截圖與描述 | 引擎以工具白名單限制讀取原始目標內部資料;外部 Agent 的讀取規則仍依 adapter 而異 |
| Deep | 開放內部檔案與程式碼分析;網站可讀取 JavaScript,並在可用時使用 Ghidra | 只對有權分析的目標啟用;需另行檢查檔案、素材與服務條款 |
使用 --clean-room 或 --deep 可指定單次 CLI 執行模式,兩者不能同時使用。這類命令列覆寫不會改寫永久模式設定。
Clean room 的資料存取策略不提供作業系統層級隔離。白名單包含部分可能改動環境的工具,例如手機應用程式安裝;執行前仍須檢查工具權限與 Agent 行為。
Deep 模式即使未安裝 Ghidra,仍可使用內建分析引擎。Ghidra 屬於延伸分析路徑,啟用 Deep 不代表所有檔案格式與函式都能完整還原。
核心能力
工具探索
craft-anything-cli commands
列出目前可用工具
依工具集查看命令;文件中的工具總數存在差異,實際介面以安裝版本列出的內容為準。
環境診斷
craft-anything-cli doctor
檢查依賴與 Agent
確認工具是否可用;必須分別檢查 backend 設定與 builder 登入,不以退出碼推定已準備完成。
完整重建
craft-anything-cli rebuild
執行觀察與修正流程
接收目標與需求,建立專案並執行檢查;--rounds 是初次建置之後的修正輪數。
Agent 整合
craft-anything-cli mcp
提供 MCP 工具
讓 MCP client 使用共用引擎;啟動 server 與將設定寫入 Agent 是不同操作。
設定安裝
craft-anything-cli setup
連接編碼 Agent 應用程式
首次註冊需明確選擇 client;套用前先檢查 dry-run 所列的設定修改。
證據回讀
core_evidence_browse
分頁檢視證據
工具回傳大型結果摘要後,可縮小欄位或分頁讀取,保留來源與涵蓋範圍。
| 桌面介面 | 操作方式 |
|---|---|
| Simple | 預設介面,以專案階段與核准卡操作 |
| Advanced | 提供函式、反組譯及證據面板 |
可用工具受分析模式與依賴限制。
Agent 與權限設定
| 路徑 | 此版已知狀態 | 操作原則 |
|---|---|---|
| Claude Code | 執行使用者本機的 claude;官方已有實際 builder 執行紀錄 | 先確認登入,檢查專案核准與 Auto mode 設定 |
| Codex | 有 adapter;官方標為尚未在真實安裝環境驗證,且不支援續接 session | 先以可丟棄專案驗證,不將存在 adapter 視為完整支援 |
| ACP Agent | 多種 adapter 可設定;官方只記錄 Maki 的實際 ACP 執行 | 逐一確認讀取、寫入與命令核准是否受到相同限制 |
| API backend | 提供分析與自有建置迴圈;官方未記錄實際 API 重建 | 檢查 provider、傳送資料、用量與錯誤紀錄 |
| 生成素材 | 需使用者開啟並提供 fal.ai key;有專案預算 | 未規劃素材生成時維持關閉;編碼模型費用另計 |
Claude Code 的 builder 透過 MCP 工具處理核准,並先檢查登入與 CLI 是否能啟動。專案中的 session 與對話可包含目標內容;分享專案資料夾前先檢查內容。
首次連接 Claude Code client 時,先預覽設定,再決定是否套用:
craft-anything-cli setup --client claude_code --dry-run確認預覽內容後,套用並檢查 client 註冊:
craft-anything-cli setup --client claude_code --yes
craft-anything-cli doctor --client claude_code依 setup 結果重新啟動 client。這會修改整合設定;本次報告查核未執行此操作。
這是 client 註冊流程,不取代 builder 登入。單獨執行 setup 主要重新整理既有註冊;首次安裝應明確選擇 client。
Auto mode 預設開啟,可讓多數 builder 動作自動繼續;特定敏感操作不會自動執行,Auto 模式下可能直接拒絕。CLI 的 --unattended 會選擇問題的第一個選項並拒絕核准,不能把它當成「所有權限都開啟」。
操作原則
指定技術棧
在需求中寫出語言、框架或遊戲引擎;支援 --build-with 的新專案也可明確指定。既有專案續作保留原有技術棧。
控制比較範圍
預設網站寬度為 1440、768、390 CSS px,並額外研究最多 4 個頁面。動態區塊與巢狀選單仍需人工驗收。
保留證據與未知項目
閱讀 checks/ 與尚未比較的項目;視覺分數不能證明資料寫入、付款或登入流程正確。
區分修改與素材資料夾
--existing edit 會把既有檔案當成應用程式直接修改;start-from 則把檔案當作起始素材,另在 app/ 建置。先備份並確認路徑。
桌面預設最多進行 6 輪修正,CLI --rounds 預設為 2 輪,均不包含初次建置。增加輪數會增加 Agent 使用量,仍可能在未通過檢查時停止。
網站重建範例
以下是依原始碼介面編寫的操作範例,未實際執行。以 example.com 練習畫面重建,需求明確指定新專案使用的技術棧與原創內容。
craft-anything-cli --clean-room rebuild https://example.com "Recreate the visible layout as a static HTML and CSS page. Use original text and no copied brand assets." --rounds 1依終端顯示的 Project: 路徑開啟專案,檢查以下資料:
| 路徑 | 應檢查內容 |
|---|---|
craft.json | 需求、目標、狀態與歷程 |
capture/ | 原始目標的可見擷取資料與頁面範圍 |
app/ | 新專案及其執行方式 |
checks/ | 各輪比較報告與畫面差異 |
investigation.cany/ | 分析證據與未知項目 |
inbox/ | 尚待處理的問題或核准 |
後續需求使用實際專案路徑;--continue-in 指向專案根目錄,不是其中的 app/:
craft-anything-cli --clean-room rebuild https://example.com "Make the header blue and keep the phone layout readable." --continue-in "/absolute/path/to/project" --rounds 1續接被中斷的工作時,加上 --resume;此時需求參數會被忽略。一般後續修改不需要加上 --resume。
驗證結果與成熟度
| 檢查 | 可確認事項 | 仍需補驗 |
|---|---|---|
| 網站畫面 | 預設多尺寸比較、版面與 SSIM 細節差異;預設 likeness 門檻為 90% | 真實後端、業務規則及未擷取的頁面與互動 |
| 應用程式 | 建置,以及有資料時的畫面與執行比較 | 未被驅動的操作流程與長時間行為 |
| 遊戲 | 建置、mechanics 資料與遊戲自己輸出的 --self-test | 引擎尚未獨立觀察遊玩或量測每個玩法數值 |
| 官方實測紀錄 | 有 Claude Code 與個別工具的實際執行紀錄 | 各 adapter、模式與平臺的完整組合 |
官方 STATUS.md 記錄過單一網站案例達到 96% likeness;這是作者的個案紀錄,不能推定為一般成功率。文件也明列尚無實際 Clean room 建置紀錄,且部分工具只經過合成資料或替身測試。
修正判斷會檢查每項結果是否符合要求;修正輪數用盡後,完成判斷使用最後一筆檢查的 passed。因此 Ready 或 CLI 成功退出,仍可能伴隨低於門檻的網站分數或未通過項目;這是靜態原始碼查核結果,未在本次執行重現。
驗收時逐項閱讀最後一輪的結果,並自行操作產出:
similarity:是否達到目前設定的門檻。unknowns:是否還有無法比較的內容。claims:是否有未通過的要求。
需要的條件未通過時,追加明確修正需求或停止交付。
README 與狀態頁的工具數量,和工具目錄中的數量並不完全一致。本報告不以總數作為完整性或成熟度指標;請以 commands 的實際輸出與個別工具狀態評估。
限制與注意事項
| 限制 | 處理方式 |
|---|---|
| Agent 核准不一致 | Claude Code、ACP 與直接 CLI adapter 的規則不同;官方列出 Hermes 與 Maki 的讀取或寫入邊界缺口。先核對所選 adapter |
| 本機工具會啟動程序 | 生成專案可能安裝依賴或執行建置;先檢查權限與專案位置 |
| 本機工作臺連接外部 AI | 內容可經所選模型或編碼 Agent 處理;敏感目標需先確認資料傳送範圍 |
| API key 儲存有備援 | 優先使用系統 keychain;失敗時可回退到僅擁有者可存取的明文 ai-keys.toml。分享設定或備份前先檢查 |
| 視覺分數有限 | 高 likeness 不能取代功能、可及性與安全驗收 |
| 遊戲自我測試有限 | 檢查程式由生成的遊戲回報;人工檢查操作與玩法數值 |
| 程式碼與素材授權不同 | 程式碼為 MIT OR Apache-2.0;素材另查 ATTRIBUTION,ArtCraft 品牌另有條款 |
後續操作
先完成
doctor,以單頁網站驗證目前平臺與 builder。使用人工驗收結果調整比較範圍,再擴大到應用程式或遊戲。
串接 MCP 前,查閱
commands與工具目錄,確認模式及必要權限。遇到失敗時,保存停止原因、專案檢查紀錄與未解項目,再向官方回報。
來源固定於 8638d6b72be3e99dcc73b06f92a8c113932c75f7。官方參考文件:
README:介面與起始流程。
功能狀態:實際測試與待驗證功能。
Claude Code 整合文件:登入與 builder 權限設計。
參考資料
- Verified source revision and README
- Source build requirements
- Implementation status and known limits
- Claude Code builder integration
- CLI rebuild arguments and exit handling
- Setup command arguments
- Clean room tool boundary
- Auto mode approval and refusal behavior
- Build defaults
- Website comparison implementation
- Completion and refinement decisions
- API key storage fallback
- Tool catalogue
- Asset attribution and separate licenses