chore: rebrand webclaw to noxa

This commit is contained in:
Jacob Magar 2026-04-11 00:10:38 -04:00
parent a4c351d5ae
commit 8674b60b4e
86 changed files with 781 additions and 2121 deletions

View file

@ -1,5 +1,5 @@
#!/usr/bin/env bash
# setup.sh — Local setup for webclaw
# setup.sh — Local setup for noxa
#
# Checks prerequisites, builds binaries, configures .env,
# optionally installs Ollama, and wires up the MCP server.
@ -150,7 +150,7 @@ build_binaries() {
if cargo build --release 2>&1 | tail -5; then
echo
success "Built 3 binaries:"
ls -lh target/release/webclaw target/release/webclaw-server target/release/webclaw-mcp 2>/dev/null | \
ls -lh target/release/noxa target/release/noxa-server target/release/noxa-mcp 2>/dev/null | \
awk '{printf " %-20s %s\n", $NF, $5}'
else
error "Build failed. Check the output above."
@ -215,7 +215,7 @@ configure_env() {
# Write .env
cat > "$SCRIPT_DIR/.env" <<EOF
# webclaw configuration — generated by setup.sh
# noxa configuration — generated by setup.sh
# --- LLM Providers ---
OLLAMA_HOST=http://localhost:11434
@ -234,20 +234,20 @@ EOF
# --- Proxy ---
EOF
if [[ -n "$proxy_file" ]]; then
echo "WEBCLAW_PROXY_FILE=$proxy_file" >> "$SCRIPT_DIR/.env"
echo "NOXA_PROXY_FILE=$proxy_file" >> "$SCRIPT_DIR/.env"
else
echo "# WEBCLAW_PROXY_FILE=/path/to/proxies.txt" >> "$SCRIPT_DIR/.env"
echo "# NOXA_PROXY_FILE=/path/to/proxies.txt" >> "$SCRIPT_DIR/.env"
fi
cat >> "$SCRIPT_DIR/.env" <<EOF
# --- Server ---
WEBCLAW_PORT=$server_port
WEBCLAW_HOST=0.0.0.0
WEBCLAW_AUTH_KEY=$auth_key
NOXA_PORT=$server_port
NOXA_HOST=0.0.0.0
NOXA_AUTH_KEY=$auth_key
# --- Logging ---
WEBCLAW_LOG=info
NOXA_LOG=info
EOF
echo
@ -335,20 +335,20 @@ setup_mcp() {
printf "${BOLD}${GREEN} Step 5: MCP Server (Claude Desktop integration)${RESET}\n"
echo
local mcp_binary="$SCRIPT_DIR/target/release/webclaw-mcp"
local mcp_binary="$SCRIPT_DIR/target/release/noxa-mcp"
if [[ ! -f "$mcp_binary" ]]; then
warn "webclaw-mcp binary not found. Build first."
warn "noxa-mcp binary not found. Build first."
return
fi
info "The MCP server lets Claude Desktop use webclaw's tools directly."
info "The MCP server lets Claude Desktop use noxa's tools directly."
info "Tools: scrape, crawl, map, batch, extract, summarize, diff, brand"
echo
if ! prompt_yn "Configure MCP server for Claude Desktop?" "y"; then
info "Skipping MCP setup."
info "You can configure it later by adding to your Claude Desktop config:"
printf ' {"mcpServers": {"webclaw": {"command": "%s"}}}\n' "$mcp_binary"
printf ' {"mcpServers": {"noxa": {"command": "%s"}}}\n' "$mcp_binary"
return
fi
@ -371,22 +371,22 @@ setup_mcp() {
local existing
existing=$(cat "$config_path")
# Check if webclaw is already configured
if echo "$existing" | python3 -c "import sys,json; c=json.load(sys.stdin); exit(0 if 'webclaw' in c.get('mcpServers',{}) else 1)" 2>/dev/null; then
warn "webclaw MCP server already configured in Claude Desktop."
# Check if noxa is already configured
if echo "$existing" | python3 -c "import sys,json; c=json.load(sys.stdin); exit(0 if 'noxa' in c.get('mcpServers',{}) else 1)" 2>/dev/null; then
warn "noxa MCP server already configured in Claude Desktop."
if ! prompt_yn "Update the path?" "y"; then
return
fi
fi
# Merge webclaw into mcpServers
# Merge noxa into mcpServers
local updated
updated=$(echo "$existing" | python3 -c "
import sys, json
config = json.load(sys.stdin)
if 'mcpServers' not in config:
config['mcpServers'] = {}
config['mcpServers']['webclaw'] = {
config['mcpServers']['noxa'] = {
'command': '$mcp_binary'
}
print(json.dumps(config, indent=2))
@ -405,11 +405,11 @@ smoke_test() {
printf "${BOLD}${GREEN} Step 6: Smoke Test${RESET}\n"
echo
local webclaw="$SCRIPT_DIR/target/release/webclaw"
local noxa="$SCRIPT_DIR/target/release/noxa"
info "Testing extraction..."
local output
output=$("$webclaw" https://example.com --format llm 2>/dev/null || echo "FAILED")
output=$("$noxa" https://example.com --format llm 2>/dev/null || echo "FAILED")
if [[ "$output" == "FAILED" ]]; then
warn "Extraction test failed. Check your network connection."
@ -423,7 +423,7 @@ smoke_test() {
if curl -sf http://localhost:11434/api/tags &>/dev/null; then
info "Testing LLM summarization..."
local summary
summary=$("$webclaw" https://example.com --summarize 2>/dev/null || echo "FAILED")
summary=$("$noxa" https://example.com --summarize 2>/dev/null || echo "FAILED")
if [[ "$summary" == "FAILED" ]]; then
warn "LLM test failed. Check Ollama and model availability."
else
@ -436,17 +436,17 @@ smoke_test() {
# Summary
# ---------------------------------------------------------------------------
print_summary() {
local webclaw="$SCRIPT_DIR/target/release/webclaw"
local server="$SCRIPT_DIR/target/release/webclaw-server"
local mcp="$SCRIPT_DIR/target/release/webclaw-mcp"
local noxa="$SCRIPT_DIR/target/release/noxa"
local server="$SCRIPT_DIR/target/release/noxa-server"
local mcp="$SCRIPT_DIR/target/release/noxa-mcp"
local port
port=$(grep '^WEBCLAW_PORT=' "$SCRIPT_DIR/.env" 2>/dev/null | cut -d= -f2 || echo "3000")
port=$(grep '^NOXA_PORT=' "$SCRIPT_DIR/.env" 2>/dev/null | cut -d= -f2 || echo "3000")
echo
printf "${BOLD}${GREEN} Setup Complete${RESET}\n"
echo
printf " ${BOLD}CLI:${RESET}\n"
printf " %s https://example.com --format llm\n" "$webclaw"
printf " %s https://example.com --format llm\n" "$noxa"
echo
printf " ${BOLD}REST API:${RESET}\n"
printf " %s\n" "$server"
@ -468,7 +468,7 @@ print_summary() {
# ---------------------------------------------------------------------------
main() {
echo
printf "${BOLD}${GREEN} webclaw — Local Setup${RESET}\n"
printf "${BOLD}${GREEN} noxa — Local Setup${RESET}\n"
printf "${DIM} Web extraction toolkit for AI agents${RESET}\n"
echo