# ZCLAW Makefile # Cross-platform task runner .PHONY: help start start-dev start-no-browser desktop desktop-build setup test clean help: ## Show this help message @echo "ZCLAW - AI Agent Desktop Client" @echo "" @echo "Usage: make [target]" @echo "" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-18s\033[0m %s\n", $$1, $$2}' # === Startup Commands === start: ## Start all services (Windows: PowerShell) @powershell -ExecutionPolicy Bypass -File ./start-all.ps1 start-dev: ## Start all services in dev mode @powershell -ExecutionPolicy Bypass -File ./start-all.ps1 -Dev start-no-browser: ## Start without ChromeDriver @powershell -ExecutionPolicy Bypass -File ./start-all.ps1 -NoBrowser start-desktop-only: ## Start desktop only (no external services) @powershell -ExecutionPolicy Bypass -File ./start-all.ps1 -DesktopOnly start-unix: ## Start all services (Unix: macOS/Linux) @chmod +x ./start.sh && ./start.sh start-unix-dev: ## Start all services in dev mode (Unix) @chmod +x ./start.sh && ./start.sh --dev # === Desktop App === desktop: ## Start Tauri desktop app in dev mode @cd desktop && pnpm tauri dev desktop-build: ## Build Tauri desktop app @cd desktop && pnpm build && pnpm tauri build # === Development === setup: ## Run first-time setup @tsx scripts/setup.ts test: ## Run all tests @pnpm test test-desktop: ## Run desktop tests @cd desktop && pnpm test typecheck: ## Run TypeScript type check @cd desktop && pnpm typecheck # === Services === chromedriver: ## Start ChromeDriver on port 4444 @chromedriver --port=4444 # === Cleanup === clean: ## Clean build artifacts @rm -rf dist/ @rm -rf desktop/dist/ @rm -rf desktop/src-tauri/target/ @rm -rf node_modules/ @rm -rf desktop/node_modules/ @echo "Cleaned build artifacts" clean-deep: clean ## Deep clean (including pnpm cache) @rm -rf desktop/pnpm-lock.yaml @rm -rf pnpm-lock.yaml @echo "Deep clean complete. Run 'pnpm install' to reinstall."