diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh
index 1ecab5c0..35391ea7 100644
--- a/tools/check_for_upgrade.sh
+++ b/tools/check_for_upgrade.sh
@@ -27,7 +27,7 @@ zstyle -s ':omz:update' mode update_mode || {
 # - $ZSH is not a git repository
 if [[ "$update_mode" = disabled ]] \
    || [[ ! -w "$ZSH" || ! -O "$ZSH" ]] \
-   || [[ ! -t 1 ]] \
+   || [[ ! -t 1 && ${POWERLEVEL9K_INSTANT_PROMPT:-off} == off ]] \
    || ! command git --version 2>&1 >/dev/null \
    || (builtin cd -q "$ZSH"; ! command git rev-parse --is-inside-work-tree &>/dev/null); then
   unset update_mode
@@ -112,6 +112,11 @@ function update_ohmyzsh() {
   local verbose_mode
   zstyle -s ':omz:update' verbose verbose_mode || verbose_mode=default
 
+  # Force verbose mode to silent if p10k instant prompt is enabled
+  if [[ ${POWERLEVEL9K_INSTANT_PROMPT:-off} != "off" ]]; then
+    verbose_mode=silent
+  fi
+
   if [[ "$update_mode" != background-alpha ]] \
     && LANG= ZSH="$ZSH" zsh -f "$ZSH/tools/upgrade.sh" -i -v $verbose_mode; then
     update_last_updated_file