#!/usr/bin/env bash workspace="$HOME/ai_workspace" app="opencode" rebuild=false while [[ $# -gt 0 ]]; do case "$1" in -p|--path) workspace="$(readlink -f "$2")" shift 2 ;; -a|--app) app="$2" shift 2 ;; --rebuild) rebuild=true shift ;; *) echo "Usage: $0 [-p /path/to/workspace] [-a claude|opencode] [--rebuild]" >&2 exit 1 ;; esac done case "$app" in claude) image_name="claude-code-local" npm_pkg="@anthropic-ai/claude-code" cmd="claude" extra_volumes=( -v "$HOME/.claude:/root/.claude" -v "$HOME/.claude.json:/root/.claude.json" ) ;; opencode) image_name="opencode-local" npm_pkg="opencode-ai" cmd="opencode" extra_volumes=( -v "$HOME/.config/opencode:/root/.config/opencode" -v "$HOME/.local/share/opencode:/root/.local/share/opencode" -v "$HOME/.local/state/opencode:/root/.local/state/opencode" ) ;; *) echo "Unknown app '$app'. Choose 'claude' or 'opencode'." >&2 exit 1 ;; esac if $rebuild || ! docker image inspect "$image_name" &>/dev/null; then echo "Building $image_name..." docker build --pull -t "$image_name" - <