diff --git a/local/opencode.sh b/local/opencode.sh new file mode 100644 index 00000000..cfee66e6 --- /dev/null +++ b/local/opencode.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -eo pipefail + +# Source common functions - try local file first, fall back to remote +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)" +if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then + source "${SCRIPT_DIR}/lib/common.sh" +else + eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/local/lib/common.sh)" +fi + +log_info "OpenCode on local machine" +echo "" + +agent_install() { + install_agent "OpenCode" "$(opencode_install_cmd)" cloud_run +} + +agent_env_vars() { + generate_env_config \ + "OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" +} + +agent_launch_cmd() { + echo 'source ~/.zshrc 2>/dev/null; opencode' +} + +spawn_agent "OpenCode" diff --git a/manifest.json b/manifest.json index c62f0b8e..03d97fda 100644 --- a/manifest.json +++ b/manifest.json @@ -232,7 +232,7 @@ "local/openclaw": "implemented", "local/zeroclaw": "implemented", "local/codex": "implemented", - "local/opencode": "missing", + "local/opencode": "implemented", "local/kilocode": "implemented", "hetzner/claude": "implemented", "hetzner/openclaw": "implemented",