repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources15d ago| #1 | #!/usr/bin/env bash |
| #2 | # ╔══════════════════════════════════════════════════════════════════════════╗ |
| #3 | # ║ OpenClawd Quickstart ║ |
| #4 | # ║ Interactive guide to get you running fast ║ |
| #5 | # ║ Usage: bash quickstart.sh ║ |
| #6 | # ╚══════════════════════════════════════════════════════════════════════════╝ |
| #7 | set -euo pipefail |
| #8 | |
| #9 | RESET="\033[0m" |
| #10 | BOLD="\033[1m" |
| #11 | GREEN="\033[32m" |
| #12 | YELLOW="\033[33m" |
| #13 | RED="\033[31m" |
| #14 | CYAN="\033[36m" |
| #15 | MAGENTA="\033[35m" |
| #16 | |
| #17 | echo "" |
| #18 | printf "${BOLD}${MAGENTA}" |
| #19 | echo "╔═══════════════════════════════════════════════════════════════╗" |
| #20 | echo "║ 🦞 Crustacean Automation — Quickstart ║" |
| #21 | echo "║ Sovereign AI Lobster Runtime on Solana ║" |
| #22 | echo "╚═══════════════════════════════════════════════════════════════╝" |
| #23 | printf "${RESET}" |
| #24 | echo "" |
| #25 | |
| #26 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
| #27 | REPO_ROOT="${SCRIPT_DIR}" |
| #28 | LOCAL_BIN_DIR="${HOME}/.local/bin" |
| #29 | LOCAL_BIN_TARGET="${LOCAL_BIN_DIR}/clawd-automaton" |
| #30 | PERPS_PACKAGE="${PERPS_PACKAGE:-@openclawdsolana/clawd-perps}" |
| #31 | CLAWD_BACKROOM_URL="${CLAWD_BACKROOM_URL:-https://backrooms.x402.wtf}" |
| #32 | |
| #33 | ensure_env_line() { |
| #34 | local file="$1" key="$2" value="$3" |
| #35 | if [ ! -f "$file" ] || ! grep -q "^${key}=" "$file" 2>/dev/null; then |
| #36 | printf "%s=%s\n" "$key" "$value" >> "$file" |
| #37 | fi |
| #38 | } |
| #39 | |
| #40 | relay_perps_install() { |
| #41 | [ "${CLAWD_PERPS_NO_RELAY:-0}" = "1" ] && return 0 |
| #42 | command -v curl >/dev/null 2>&1 || return 0 |
| #43 | local msg |
| #44 | msg="🦞👑 AUTOMATION QUICKSTART PERPS RELAY |
| #45 | Local quickstart connected Phoenix/Vulcan perps. |
| #46 | Surface: clawd-perps perps vulcan context |
| #47 | Imperial loop: market → strategy → ledger → finalize." |
| #48 | curl -fsS -m 5 -X POST "${CLAWD_BACKROOM_URL%/}/stream/human" \ |
| #49 | -H "Content-Type: application/json" \ |
| #50 | -d "$(node -e 'const msg=process.argv[1]; console.log(JSON.stringify({name:"automation-quickstart-perps",content:msg}))' "$msg")" \ |
| #51 | >/dev/null 2>&1 || true |
| #52 | } |
| #53 | |
| #54 | bootstrap_perps() { |
| #55 | [ "${CLAWD_NO_PERPS:-0}" = "1" ] && { echo " ✅ Perps bootstrap skipped (CLAWD_NO_PERPS=1)"; return 0; } |
| #56 | printf "${BOLD}[2.6/5] Phoenix/Vulcan perps${RESET}\n" |
| #57 | |
| #58 | npm install -g "$PERPS_PACKAGE" --no-audit --no-fund >/dev/null 2>&1 \ |
| #59 | && echo " ✅ Installed $PERPS_PACKAGE" \ |
| #60 | || echo " ⚠️ $PERPS_PACKAGE global install failed; use: npx $PERPS_PACKAGE" |
| #61 | |
| #62 | if [ -d "${SCRIPT_DIR}/../vulcan-cli-master" ] && command -v cargo >/dev/null 2>&1; then |
| #63 | ( cd "${SCRIPT_DIR}/../vulcan-cli-master" && cargo build -p vulcan >/dev/null 2>&1 ) \ |
| #64 | && { |
| #65 | install -m 0755 "${SCRIPT_DIR}/../vulcan-cli-master/target/debug/vulcan" "${LOCAL_BIN_DIR}/vulcan" |
| #66 | echo " ✅ Vulcan linked at ${LOCAL_BIN_DIR}/vulcan" |
| #67 | } \ |
| #68 | || echo " ⚠️ Vulcan build skipped; set VULCAN_BIN later" |
| #69 | elif command -v vulcan >/dev/null 2>&1; then |
| #70 | echo " ✅ Vulcan found at $(command -v vulcan)" |
| #71 | else |
| #72 | echo " ⚠️ Vulcan not found; set VULCAN_BIN after install" |
| #73 | fi |
| #74 | |
| #75 | relay_perps_install |
| #76 | echo "" |
| #77 | } |
| #78 | |
| #79 | # ── Check Node.js ───────────────────────────────────────────────────────── |
| #80 | printf "${BOLD}[0/5] Checking prerequisites${RESET}\n" |
| #81 | if ! command -v node &>/dev/null; then |
| #82 | printf "${RED}❌ Node.js not found. Install v20+ from https://nodejs.org${RESET}\n" |
| #83 | exit 1 |
| #84 | fi |
| #85 | NODE_MAJOR=$(node --version | sed 's/v//' | cut -d. -f1) |
| #86 | if [ "${NODE_MAJOR}" -lt 20 ]; then |
| #87 | printf "${RED}❌ Node.js v20+ required (found $(node --version))${RESET}\n" |
| #88 | exit 1 |
| #89 | fi |
| #90 | if ! command -v pnpm &>/dev/null; then |
| #91 | printf " Installing pnpm...\n" |
| #92 | npm install -g pnpm 2>&1 | tail -1 |
| #93 | fi |
| #94 | PNPM_VER="$(cd "${REPO_ROOT}" && pnpm --version 2>/dev/null)" |
| #95 | printf " ✅ Node.js $(node --version) | pnpm ${PNPM_VER}\n" |
| #96 | echo "" |
| #97 | |
| #98 | # ── Step 1: Install dependencies ────────────────────────────────────────── |
| #99 | printf "${BOLD}[1/5] Install dependencies${RESET}\n" |
| #100 | cd "${REPO_ROOT}" |
| #101 | pnpm install 2>&1 | tail -2 |
| #102 | echo " ✅ Dependencies installed" |
| #103 | echo "" |
| #104 | |
| #105 | # ── Step 2: Build ────────────────────────────────────────────────────────── |
| #106 | printf "${BOLD}[2/5] Build TypeScript${RESET}\n" |
| #107 | pnpm build 2>&1 | tail -2 |
| #108 | echo " ✅ TypeScript compiled to dist/" |
| #109 | echo "" |
| #110 | |
| #111 | # ── Step 2.5: Install local CLI shim ───────────────────────────────────── |
| #112 | mkdir -p "${LOCAL_BIN_DIR}" |
| #113 | ln -sf "${REPO_ROOT}/dist/index.js" "${LOCAL_BIN_TARGET}" |
| #114 | echo " ✅ CLI shim linked at ${LOCAL_BIN_TARGET}" |
| #115 | echo "" |
| #116 | |
| #117 | # ── Step 3: Verify constitution ──────────────────────────────────────────── |
| #118 | bootstrap_perps |
| #119 | |
| #120 | # ── Step 3: Verify constitution ──────────────────────────────────────────── |
| #121 | printf "${BOLD}[3/5] Verify constitution${RESET}\n" |
| #122 | bash "${REPO_ROOT}/three-laws-check.sh" 2>&1 | tail -4 |
| #123 | echo "" |
| #124 | |
| #125 | # ── Step 4: Environment setup ────────────────────────────────────────────── |
| #126 | printf "${BOLD}[4/5] Environment variables${RESET}\n" |
| #127 | CLAWD_DIR="${HOME}/.clawd" |
| #128 | ENV_FILE="${CLAWD_DIR}/.env" |
| #129 | |
| #130 | if [ ! -f "${ENV_FILE}" ]; then |
| #131 | mkdir -p "${CLAWD_DIR}" |
| #132 | cat > "${ENV_FILE}" << 'ENV' |
| #133 | # ╔══════════════════════════════════════════════════════════╗ |
| #134 | # ║ OpenClawd environment — edit and restart ║ |
| #135 | # ╚══════════════════════════════════════════════════════════╝ |
| #136 | # REQUIRED: |
| #137 | CLAWD_API_KEY= |
| #138 | # OPTIONAL: |
| #139 | # CLAWD_API_URL=https://api.x402.wtf |
| #140 | # HELIUS_API_KEY= |
| #141 | # SOLANA_RPC_URL= |
| #142 | # DFLOW_API_KEY= |
| #143 | # VULCAN_BIN= |
| #144 | # IMPERIAL_API_KEY= |
| #145 | ENV |
| #146 | echo " 📝 Created ~/.clawd/.env — add your CLAWD_API_KEY" |
| #147 | else |
| #148 | echo " ✅ ~/.clawd/.env already exists" |
| #149 | fi |
| #150 | ensure_env_line "${ENV_FILE}" "CLAWD_PERPS_API_URL" "https://perp-api.phoenix.trade" |
| #151 | ensure_env_line "${ENV_FILE}" "CLAWD_PERPS_RPC_URL" "https://api.mainnet-beta.solana.com" |
| #152 | ensure_env_line "${ENV_FILE}" "CLAWD_PERPS_AGENT_PATH" "${SCRIPT_DIR}/../solana-python-agent/perps_agent.py" |
| #153 | ensure_env_line "${ENV_FILE}" "CLAWD_PERPS_TS_AGENT_CLI" "${SCRIPT_DIR}/../Perps/clawd-agents-perps/dist/cli.js" |
| #154 | ensure_env_line "${ENV_FILE}" "VULCAN_BIN" "${LOCAL_BIN_DIR}/vulcan" |
| #155 | ensure_env_line "${ENV_FILE}" "PHOENIX_DEFAULT_MODE" "paper" |
| #156 | ensure_env_line "${ENV_FILE}" "CLAWD_ONCHAIN_MM_ROOT" "${SCRIPT_DIR}/../Perps/phoenix-onchain-market-maker-master" |
| #157 | ensure_env_line "${ENV_FILE}" "CLAWD_ONCHAIN_MM_MARKET" "" |
| #158 | ensure_env_line "${ENV_FILE}" "CLAWD_ONCHAIN_MM_TICKER" "SOL-USD" |
| #159 | ensure_env_line "${ENV_FILE}" "CLAWD_ONCHAIN_MM_RPC_URL" "local" |
| #160 | ensure_env_line "${ENV_FILE}" "CLAWD_ONCHAIN_MM_LIVE" "false" |
| #161 | ensure_env_line "${ENV_FILE}" "CLAWD_PERPS_EXTRA_RELAY_URLS" "" |
| #162 | ensure_env_line "${ENV_FILE}" "CLAWD_FLY_BACKROOMS_URL" "" |
| #163 | ensure_env_line "${ENV_FILE}" "CLAWD_PUMPFUN_WS_URL" "" |
| #164 | ensure_env_line "${ENV_FILE}" "CLAWD_PUMPFUN_UI_URL" "" |
| #165 | ensure_env_line "${ENV_FILE}" "IMPERIAL_API_BASE" "https://api.imperial.space/api/v1" |
| #166 | ensure_env_line "${ENV_FILE}" "IMPERIAL_API_KEY" "" |
| #167 | ensure_env_line "${ENV_FILE}" "IMPERIAL_WALLET" "" |
| #168 | ensure_env_line "${ENV_FILE}" "IMPERIAL_PROFILE_INDEX" "0" |
| #169 | echo " ✅ Phoenix perps env defaults ready" |
| #170 | echo "" |
| #171 | |
| #172 | # ── Step 5: Available commands ─────────────────────────────────────────── |
| #173 | printf "${BOLD}[5/5] Available commands${RESET}\n" |
| #174 | echo "" |
| #175 | printf " ${CYAN}clawd-automaton --run${RESET} Start the OODA agent loop\n" |
| #176 | printf " ${CYAN}clawd-automaton --status${RESET} Show runtime status (TUI)\n" |
| #177 | printf " ${CYAN}clawd-automaton --goblin${RESET} Devnet paper Goblin trading mode\n" |
| #178 | printf " ${CYAN}clawd-automaton --provision${RESET} Provision API key via SIWE\n" |
| #179 | printf " ${CYAN}clawd-automaton --setup${RESET} Re-run setup wizard\n" |
| #180 | printf " ${CYAN}clawd-perps perps vulcan context${RESET} Phoenix/Vulcan perps health\n" |
| #181 | printf " ${CYAN}clawd-perps perps tui --relay${RESET} Lobster King realtime perps TUI\n" |
| #182 | printf " ${CYAN}clawd-perps perps onchain-mm status${RESET} Phoenix on-chain MM bridge\n" |
| #183 | printf " ${CYAN}clawd-perps perps grid SOL --center-on-mark --width-pct 2.5 --levels-per-side 5 --tokens-per-level 0.5${RESET}\n" |
| #184 | echo "" |
| #185 | printf " ${CYAN}pnpm ooda${RESET} Run OODA loop directly (dev)\n" |
| #186 | printf " ${CYAN}pnpm goblin${RESET} Goblin mode (dev)\n" |
| #187 | printf " ${CYAN}pnpm dashboard:dev${RESET} Launch dashboard UI\n" |
| #188 | printf " ${CYAN}pnpm test${RESET} Run tests\n" |
| #189 | echo "" |
| #190 | printf " ${CYAN}../agents/agents-catalog.json${RESET} Agent registry catalog\n" |
| #191 | printf " ${CYAN}../agents/templates/index.json${RESET} Agent template registry\n" |
| #192 | printf " ${CYAN}../agents/skills/index.json${RESET} Formal skill hub\n" |
| #193 | printf " ${CYAN}../agents/skills/README.md${RESET} Full local skill library\n" |
| #194 | echo "" |
| #195 | |
| #196 | printf "${BOLD}${GREEN}╔═══════════════════════════════════════════════════════════════╗${RESET}\n" |
| #197 | printf "${BOLD}${GREEN}║ 🦞 Crustacean Automation ready! ║${RESET}\n" |
| #198 | printf "${BOLD}${GREEN}╚═══════════════════════════════════════════════════════════════╝${RESET}\n" |
| #199 | echo "" |
| #200 | printf " ${YELLOW}The shell molts. The laws do not. 🦞${RESET}\n" |
| #201 | printf " ${YELLOW}Add ${LOCAL_BIN_DIR} to PATH if needed.${RESET}\n" |
| #202 | echo "" |
| #203 |