diff --git a/README.md b/README.md index b703bde..d9b2d03 100644 --- a/README.md +++ b/README.md @@ -32,13 +32,16 @@ action: done (412ms) ## setup -you need **bun**, **adb**, and either [ollama](https://ollama.com) for local models or an api key for a cloud provider. +```bash +curl -fsSL https://droidclaw.ai/install.sh | sh +``` + +installs bun and adb if missing, clones the repo, sets up `.env`. or do it manually: ```bash -# install adb if you don't have it -brew install android-platform-tools - -bun install +brew install android-platform-tools # adb +git clone https://github.com/unitedbyai/droidclaw.git +cd droidclaw && bun install cp .env.example .env ``` diff --git a/site/index.html b/site/index.html index 1be92aa..3dc266b 100644 --- a/site/index.html +++ b/site/index.html @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -758,19 +758,12 @@ bun run src/kernel.ts --workflow morning.json
1 -

install adb

-

adb (android debug bridge) is how droidclaw talks to your phone - every tap, type, and swipe goes through it.

-
brew install android-platform-tools
+

install

+

one command. installs bun and adb if missing, clones the repo, sets up .env.

+
curl -fsSL https://droidclaw.ai/install.sh | sh
2 -

clone and install

-
git clone https://github.com/unitedbyai/droidclaw.git
-cd droidclaw && bun install
-cp .env.example .env
-
-
- 3

configure an llm provider

edit .env - fastest way is ollama (fully local, no api key):

# local (no api key needed)
@@ -792,14 +785,14 @@ GROQ_API_KEY=gsk_your_key_here
- 4 + 3

connect your phone

enable usb debugging in developer options, plug in via usb.

adb devices   # should show your device
-bun run src/kernel.ts
+cd droidclaw && bun run src/kernel.ts
- 5 + 4

tune (optional)

diff --git a/site/install.sh b/site/install.sh new file mode 100755 index 0000000..8438e06 --- /dev/null +++ b/site/install.sh @@ -0,0 +1,122 @@ +#!/bin/sh +set -e + +# droidclaw installer +# curl -fsSL https://droidclaw.ai/install.sh | sh + +REPO="https://github.com/unitedbyai/droidclaw.git" +INSTALL_DIR="droidclaw" + +# colors +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +CYAN='\033[0;36m' +BOLD='\033[1m' +DIM='\033[2m' +RESET='\033[0m' + +info() { printf "${CYAN}>${RESET} %s\n" "$1"; } +success() { printf "${GREEN}>${RESET} %s\n" "$1"; } +warn() { printf "${YELLOW}>${RESET} %s\n" "$1"; } +error() { printf "${RED}>${RESET} %s\n" "$1"; exit 1; } + +printf "\n${BOLD}droidclaw${RESET} ${DIM}— ai agent for android${RESET}\n\n" + +# ─── check git ─── +if ! command -v git >/dev/null 2>&1; then + error "git is required. install it first: https://git-scm.com" +fi + +# ─── check/install bun ─── +if command -v bun >/dev/null 2>&1; then + success "bun $(bun --version) found" +else + info "installing bun..." + curl -fsSL https://bun.sh/install | bash + export BUN_INSTALL="$HOME/.bun" + export PATH="$BUN_INSTALL/bin:$PATH" + if command -v bun >/dev/null 2>&1; then + success "bun installed" + else + error "bun install failed. install manually: https://bun.sh" + fi +fi + +# ─── check adb ─── +if command -v adb >/dev/null 2>&1; then + success "adb found" +else + warn "adb not found — installing..." + OS="$(uname -s)" + case "$OS" in + Darwin) + if command -v brew >/dev/null 2>&1; then + brew install --cask android-platform-tools + success "adb installed via homebrew" + else + warn "homebrew not found. install adb manually:" + warn " brew install --cask android-platform-tools" + warn " or download from: https://developer.android.com/tools/releases/platform-tools" + fi + ;; + Linux) + if command -v apt-get >/dev/null 2>&1; then + sudo apt-get update -qq && sudo apt-get install -y -qq android-tools-adb + success "adb installed via apt" + elif command -v dnf >/dev/null 2>&1; then + sudo dnf install -y android-tools + success "adb installed via dnf" + elif command -v pacman >/dev/null 2>&1; then + sudo pacman -S --noconfirm android-tools + success "adb installed via pacman" + else + warn "could not auto-install adb. install manually:" + warn " https://developer.android.com/tools/releases/platform-tools" + fi + ;; + *) + warn "unknown os. install adb manually:" + warn " https://developer.android.com/tools/releases/platform-tools" + ;; + esac +fi + +# ─── clone ─── +if [ -d "$INSTALL_DIR" ]; then + info "droidclaw directory exists, pulling latest..." + cd "$INSTALL_DIR" && git pull --quiet && cd .. +else + info "cloning droidclaw..." + git clone --quiet "$REPO" "$INSTALL_DIR" +fi + +# ─── install deps ─── +cd "$INSTALL_DIR" +info "installing dependencies..." +bun install --silent + +# ─── setup env ─── +if [ ! -f .env ]; then + cp .env.example .env + success ".env created from .env.example" +else + success ".env already exists, skipping" +fi + +# ─── done ─── +printf "\n${GREEN}${BOLD}done!${RESET}\n\n" +printf "next steps:\n\n" +printf " ${BOLD}1.${RESET} configure an llm provider in ${CYAN}.env${RESET}\n\n" +printf " ${DIM}# local with ollama (no api key needed)${RESET}\n" +printf " ollama pull llama3.2\n" +printf " ${DIM}# set in .env:${RESET} LLM_PROVIDER=ollama\n\n" +printf " ${DIM}# or cloud with groq (free tier)${RESET}\n" +printf " ${DIM}# set in .env:${RESET} LLM_PROVIDER=groq\n" +printf " ${DIM}# ${RESET} GROQ_API_KEY=gsk_...\n\n" +printf " ${BOLD}2.${RESET} connect your android phone (usb debugging on)\n\n" +printf " adb devices\n\n" +printf " ${BOLD}3.${RESET} run it\n\n" +printf " cd droidclaw && bun run src/kernel.ts\n\n" +printf "docs: ${CYAN}https://droidclaw.ai${RESET}\n" +printf "repo: ${CYAN}https://github.com/unitedbyai/droidclaw${RESET}\n\n"
keydefaultwhat