Skip to content

Instantly share code, notes, and snippets.

@zikeji
Created February 12, 2026 23:37
Show Gist options
  • Select an option

  • Save zikeji/412b3a852b912d3e8ed1c663d6ca88ab to your computer and use it in GitHub Desktop.

Select an option

Save zikeji/412b3a852b912d3e8ed1c663d6ca88ab to your computer and use it in GitHub Desktop.
#!/bin/env bash
# CONFIG
# Enter your own license key below.
LICENSE_KEY="YOUR-LICENSE-KEY-HERE"
# END CONFIG
if ! command -v jq &> /dev/null
then
echo "jq could not be found. Please install it to continue."
exit
fi
if ! command -v app-manager &> /dev/null
then
echo "app-manager could not be found. Please install it to continue."
exit
fi
APP_MANAGER_INSTALLATIONS_FILE="$HOME/.local/share/app-manager/installations.json"
if [ -f "$APP_MANAGER_INSTALLATIONS_FILE" ]; then
CURRENT_VERSION=$(jq -r '.installations[] | select(.name == "Tinkerwell") | (.version // "")' "$APP_MANAGER_INSTALLATIONS_FILE")
else
CURRENT_VERSION=""
fi
INFO=$(curl -sL "https://api.beyondco.de/api/versions/tinkerwell?license=$LICENSE_KEY&version=$CURRENT_VERSION")
if [ -z "$CURRENT_VERSION" ]; then
echo "Fresh install detected. Proceeding with installation..."
CURRENT_VERSION="none"
else
echo "Current version: $CURRENT_VERSION"
fi
UPDATE_AVAILABLE=$(echo "$INFO" | jq -r '.update_available')
if [ "$UPDATE_AVAILABLE" = "false" ]; then
echo "No updates available. You are running the latest version."
exit 0
fi
LATEST_VERSION=$(echo "$INFO" | jq -r '.latest_version')
DOWNLOAD_BASE_URL=$(echo "$INFO" | jq -r '.license.product.download_base_url')
DOWNLOAD_BASE_NAME=$(echo "$INFO" | jq -r '.license.product.download_base_name')
DOWNLOAD_URL="${DOWNLOAD_BASE_URL}${DOWNLOAD_BASE_NAME}${LATEST_VERSION}.AppImage"
echo "Downloading Tinkerwell $LATEST_VERSION..."
TEMP_FILE=$(mktemp --suffix=.AppImage)
curl -L "$DOWNLOAD_URL" -o "$TEMP_FILE"
if [ $? -ne 0 ]; then
echo "Download failed."
rm -f "$TEMP_FILE"
exit 1
fi
echo "Installing/updating Tinkerwell..."
app-manager install "$TEMP_FILE"
if [ $? -eq 0 ]; then
if [ "$CURRENT_VERSION" = "none" ]; then
echo "Fresh install complete: Tinkerwell $LATEST_VERSION"
else
echo "Update complete: $CURRENT_VERSION -> $LATEST_VERSION"
fi
rm -f "$TEMP_FILE"
else
echo "Installation failed."
rm -f "$TEMP_FILE"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment