#!/bin/bash # IX Store Client — Browse, install, publish models # Usage: ./store.sh [browse|install|publish|rate] STORE_API="https://build.inference-x.com/api/store" IX_HOME="$HOME/.inference-x" case "${1:-browse}" in browse) echo "=== IX Community Model Store ===" curl -s "$STORE_API" | python3 -c " import sys,json d = json.load(sys.stdin) for item in d.get('items',d if isinstance(d,list) else []): print(f" {item.get('name','?')} | {item.get('size_mb','?')}MB | ⭐ {item.get('rating','?')} | {item.get('downloads','?')} downloads") " 2>/dev/null || echo "Store offline - check git.inference-x.com/elmadani/ix-tools" ;; install) [ -z "$2" ] && echo "Usage: store.sh install " && exit 1 echo "Installing $2..." mkdir -p "$IX_HOME/models" curl -sL "$STORE_API/$2/download" -o "$IX_HOME/models/$2.gguf" echo "✓ Installed to $IX_HOME/models/$2.gguf" ;; publish) [ -z "$2" ] && echo "Usage: store.sh publish --token TOKEN" && exit 1 TOKEN="$4" [ -z "$TOKEN" ] && read -rp "Gitea token: " TOKEN echo "Publishing $2..." curl -s -X POST -H "Authorization: token $TOKEN" \ -F "file=@$2" "$STORE_API/publish" ;; *) echo "Usage: store.sh [browse|install |publish --token TOKEN]" ;; esac