diff --git a/update_libchdb.sh b/update_libchdb.sh
new file mode 100755
index 0000000..6b2c14f
--- /dev/null
+++ b/update_libchdb.sh
@@ -0,0 +1,46 @@
+
+#!/bin/bash
+set -e
+cd $(dirname "${BASH_SOURCE[0]}")
+
+# Get the newest release version
+LATEST_RELEASE=$(curl --silent "https://api.github.com/repos/chdb-io/chdb/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
+
+# Download the correct version based on the platform
+case "$(uname -s)" in
+    Linux)
+        if [[ $(uname -m) == "aarch64" ]]; then
+            PLATFORM="linux-aarch64-libchdb.tar.gz"
+        else
+            PLATFORM="linux-x86_64-libchdb.tar.gz"
+        fi
+        ;;
+    Darwin)
+        if [[ $(uname -m) == "arm64" ]]; then
+            PLATFORM="macos-arm64-libchdb.tar.gz"
+        else
+            PLATFORM="macos-x86_64-libchdb.tar.gz"
+        fi
+        ;;
+    *)
+        echo "Unsupported platform"
+        exit 1
+        ;;
+esac
+
+DOWNLOAD_URL="https://github.com/chdb-io/chdb/releases/download/$LATEST_RELEASE/$PLATFORM"
+
+echo "Downloading $PLATFORM from $DOWNLOAD_URL"
+
+# Download the file
+curl -L -o libchdb.tar.gz $DOWNLOAD_URL
+
+# Untar the file
+tar -xzf libchdb.tar.gz
+
+# Set execute permission for libchdb.so
+chmod +x libchdb.so
+
+# Clean up
+rm -f libchdb.tar.gz
+rm -f chdb.h