Download run.sh from teddyoas/Asnip: direct link, hf CLI and curl.
- Browser
- Download file 3.59 kB
-
https://huggingface.co/teddyoas/Asnip/resolve/main/run.sh
- Command line
-
hf download hf://teddyoas/Asnip/run.sh
-
curl -L -o run.sh https://huggingface.co/teddyoas/Asnip/resolve/main/run.sh
3.59 kB
| # Phantom β space evolving multi-agent terminal | |
| # Zero-setup launcher. Works on Termux, Linux, macOS. | |
| # Usage: bash <(curl -s https://raw.githubusercontent.com/Njap-png/Phantom/main/run.sh) | |
| set -e | |
| BOLD='\033[1m' | |
| GREEN='\033[0;32m' | |
| CYAN='\033[0;36m' | |
| YELLOW='\033[0;33m' | |
| RED='\033[0;31m' | |
| DIM='\033[2m' | |
| NC='\033[0m' | |
| echo -e "${BOLD}${GREEN}β${NC} ${BOLD}Phantom${NC} ${DIM}space evolving terminal${NC}" | |
| # ββ Detect environment ββββββββββββββββββββββββββββββββββββ | |
| IS_TERMUX=false | |
| IS_LINUX=false | |
| IS_MAC=false | |
| PKG_MGR="" | |
| if [ -n "$TERMUX_VERSION" ] || [ -d "/data/data/com.termux" ]; then | |
| IS_TERMUX=true | |
| elif [ "$(uname)" = "Darwin" ]; then | |
| IS_MAC=true | |
| elif [ "$(uname)" = "Linux" ]; then | |
| IS_LINUX=true | |
| fi | |
| # ββ Ensure Node.js βββββββββββββββββββββββββββββββββββββββββ | |
| if ! command -v node &>/dev/null; then | |
| echo -e "${YELLOW}β Node.js not found. Installing...${NC}" | |
| if $IS_TERMUX; then | |
| pkg update -y && pkg install -y nodejs | |
| elif $IS_MAC; then | |
| if command -v brew &>/dev/null; then | |
| brew install node | |
| else | |
| echo -e "${RED}β Install Homebrew first: https://brew.sh${NC}" | |
| exit 1 | |
| fi | |
| elif $IS_LINUX; then | |
| if command -v apt &>/dev/null; then | |
| sudo apt update -qq && sudo apt install -y -qq nodejs npm | |
| elif command -v pacman &>/dev/null; then | |
| sudo pacman -Sy --noconfirm nodejs npm | |
| elif command -v dnf &>/dev/null; then | |
| sudo dnf install -y nodejs | |
| elif command -v apk &>/dev/null; then | |
| apk add nodejs npm | |
| else | |
| echo -e "${RED}β Could not install Node.js. Please install manually.${NC}" | |
| exit 1 | |
| fi | |
| # Ensure minimal node version | |
| NODE_VER=$(node -v 2>/dev/null | sed 's/v//' | cut -d. -f1) | |
| if [ -z "$NODE_VER" ] || [ "$NODE_VER" -lt 18 ]; then | |
| echo -e "${YELLOW}β Node.js v18+ required. Installing from NodeSource...${NC}" | |
| curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && \ | |
| sudo apt install -y -qq nodejs | |
| fi | |
| fi | |
| fi | |
| NODE_VER=$(node -v 2>/dev/null) | |
| echo -e "${GREEN}β${NC} Node ${NODE_VER}" | |
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | |
| # ββ Detect local checkout vs remote ββββββββββββββββββββββββ | |
| if [ -f "${SCRIPT_DIR}/src/index.ts" ]; then | |
| # Local checkout β build TS if needed, then run from dist | |
| echo -e "${DIM} Local checkout detected${NC}" | |
| if [ ! -f "${SCRIPT_DIR}/dist/index.js" ] || [ "${SCRIPT_DIR}/src/index.ts" -nt "${SCRIPT_DIR}/dist/index.js" ]; then | |
| echo -e "${DIM} Building TypeScript...${NC}" | |
| (cd "$SCRIPT_DIR" && npx tsc) || { | |
| echo -e "${RED}β TypeScript build failed. Falling back to phantom.mjs${NC}" | |
| node "${SCRIPT_DIR}/phantom.mjs" "$@" | |
| exit $? | |
| } | |
| fi | |
| echo | |
| node "${SCRIPT_DIR}/dist/index.js" "$@" | |
| else | |
| # Remote / no checkout β download phantom.mjs | |
| PHANTOM_FILE="${SCRIPT_DIR}/phantom.mjs" | |
| if [ ! -f "$PHANTOM_FILE" ]; then | |
| echo -e "${DIM} Downloading phantom.mjs...${NC}" | |
| PHANTOM_URL="https://raw.githubusercontent.com/Njap-png/Phantom/main/phantom.mjs" | |
| if command -v curl &>/dev/null; then | |
| curl -fsSL "$PHANTOM_URL" -o "$PHANTOM_FILE" | |
| elif command -v wget &>/dev/null; then | |
| wget -q "$PHANTOM_URL" -O "$PHANTOM_FILE" | |
| else | |
| echo -e "${RED}β Need curl or wget${NC}" | |
| exit 1 | |
| fi | |
| chmod +x "$PHANTOM_FILE" | |
| fi | |
| echo | |
| node "$PHANTOM_FILE" "$@" | |
| fi | |