diff --git a/datalad/ui/dialog.py b/datalad/ui/dialog.py
index cf86ecdba..7bed97683 100644
--- a/datalad/ui/dialog.py
+++ b/datalad/ui/dialog.py
@@ -72,11 +72,13 @@ class ConsoleLog(object):
 
     def message(self, msg, cr='\n'):
         from datalad.log import log_progress
-        log_progress(lgr.info, None, 'Clear progress bars', maint='clear')
+        log_progress(lgr.info, None, 'Clear progress bars', maint='clear',
+                     noninteractive_level=5)
         self.out.write(msg)
         if cr:
             self.out.write(cr)
-        log_progress(lgr.info, None, 'Refresh progress bars', maint='refresh')
+        log_progress(lgr.info, None, 'Refresh progress bars', maint='refresh',
+                     noninteractive_level=5)
 
     def error(self, error):
         self.out.write("ERROR: %s\n" % error)

[INFO] Clear progress bars [INFO] Refresh progress bars on 0.13.0rc2
#### What is the problem?
Just a quick report. I run the following code to search for missing local annex files:
```bash
echo "Searching for missing files" ; \
datalad -f json status --recursive --annex all | \
jq '. | select(.has_content == false).path'
```
Works as before on 0.12.7, but shows the following messages in 0.13.0.rc2
```bash
[INFO] Clear progress bars
[INFO] Refresh progress bars
[INFO] Clear progress bars
[INFO] Refresh progress bars
[INFO] Clear progress bars
[INFO] Refresh progress bars
[INFO] Clear progress bars
```
Not sure if this is just temporary code you put to debug stuff, but just wanted to report it for now.

#### What steps will reproduce the problem?
See above.

#### What version of DataLad are you using (run `datalad --version`)? On what operating system (consider running `datalad wtf`)?
See above.

#### Is there anything else that would be useful to know in this context?
No

#### Have you had any success using DataLad before? (to assess your expertise/prior luck.  We would welcome your testimonial additions to https://github.com/datalad/datalad/wiki/Testimonials as well)
Yes
diff --git a/datalad/ui/tests/test_dialog.py b/datalad/ui/tests/test_dialog.py
index c7b5e9ea1..f104af9c2 100644
--- a/datalad/ui/tests/test_dialog.py
+++ b/datalad/ui/tests/test_dialog.py
@@ -17,6 +17,8 @@ from unittest.mock import (
     call,
     patch,
 )
+
+from datalad.utils import swallow_logs
 from ...tests.utils import (
     assert_in,
     assert_not_in,
@@ -27,6 +29,7 @@ from ...tests.utils import (
     ok_startswith,
 )
 from ..dialog import (
+    ConsoleLog,
     DialogUI,
     IPythonUI,
 )
@@ -187,4 +190,23 @@ def test_silent_question():
     # additional kwargs, no title, choices
     with assert_raises(RuntimeError) as cme:
         ui.question("q", choices=['secret1'])
-    assert_in('secret1', str(cme.exception))
\ No newline at end of file
+    assert_in('secret1', str(cme.exception))
+
+
+@patch("datalad.log.is_interactive", lambda: False)
+def test_message_pbar_state_logging_is_demoted():
+    from datalad.log import LoggerHelper
+
+    name = "dl-test"
+    lgr = LoggerHelper(name).get_initialized_logger()
+    ui = ConsoleLog()
+
+    with patch("datalad.ui.dialog.lgr", lgr):
+        with swallow_logs(name=name, new_level=20) as cml:
+            ui.message("testing 0")
+            assert_not_in("Clear progress bars", cml.out)
+            assert_not_in("Refresh progress bars", cml.out)
+        with swallow_logs(name=name, new_level=5) as cml:
+            ui.message("testing 1")
+            assert_in("Clear progress bars", cml.out)
+            assert_in("Refresh progress bars", cml.out)

pip install -e .[full]
parse_log_pytest
requirements.txt
nose coverage pytest
apt-get update apt-get install -y eatmydata p7zip
3.7
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
annexremote==1.6.6
appdirs==1.4.4
beautifulsoup4==4.13.3
boto==2.49.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
cffi==1.15.1
chardet==5.2.0
charset-normalizer==3.4.1
citeproc-py==0.6.0
coverage==7.2.7
cryptography==44.0.2
-e git+https://github.com/datalad/datalad.git@a3a154bcbc980c152657886870b32a87f42afe0f#egg=datalad
Deprecated==1.2.18
duecredit==0.9.3
exceptiongroup==1.2.2
ExifRead==3.0.0
fasteners==0.19
httpretty==1.1.4
humanize==4.6.0
idna==3.10
importlib-metadata==6.7.0
importlib-resources==5.12.0
iniconfig==2.0.0
iso8601==2.1.0
jaraco.classes==3.2.3
jeepney==0.9.0
jsmin==3.0.1
keyring==24.1.1
keyrings.alt==4.2.0
lxml==5.3.1
more-itertools==9.1.0
msgpack==1.0.5
multidict==6.0.5
mutagen==1.47.0
nose==1.3.7
packaging==24.0
patool==1.12
Pillow==9.5.0
pluggy==1.2.0
pycparser==2.21
PyGithub==2.3.0
PyJWT==2.8.0
PyNaCl==1.5.0
pyperclip==1.9.0
pytest==7.4.4
python-dateutil==2.9.0.post0
python-xmp-toolkit==2.0.2
pytz==2025.2
PyYAML==6.0.1
requests==2.31.0
requests-ftp==0.3.1
SecretStorage==3.3.3
simplejson==3.20.1
six==1.17.0
soupsieve==2.4.1
swebench-matterhorn @ file:///swebench_matterhorn
tomli==2.0.1
tqdm==4.67.1
typing_extensions==4.7.1
urllib3==1.26.20
vcrpy==4.4.0
Whoosh==2.7.4
wrapt==1.16.0
yarl==1.9.4
zipp==3.15.0

name: datalad
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - annexremote==1.6.6
      - appdirs==1.4.4
      - beautifulsoup4==4.13.3
      - boto==2.49.0
      - cffi==1.15.1
      - chardet==5.2.0
      - charset-normalizer==3.4.1
      - citeproc-py==0.6.0
      - coverage==7.2.7
      - cryptography==44.0.2
      - deprecated==1.2.18
      - duecredit==0.9.3
      - exceptiongroup==1.2.2
      - exifread==3.0.0
      - fasteners==0.19
      - httpretty==1.1.4
      - humanize==4.6.0
      - idna==3.10
      - importlib-metadata==6.7.0
      - importlib-resources==5.12.0
      - iniconfig==2.0.0
      - iso8601==2.1.0
      - jaraco-classes==3.2.3
      - jeepney==0.9.0
      - jsmin==3.0.1
      - keyring==24.1.1
      - keyrings-alt==4.2.0
      - lxml==5.3.1
      - more-itertools==9.1.0
      - msgpack==1.0.5
      - multidict==6.0.5
      - mutagen==1.47.0
      - nose==1.3.7
      - packaging==24.0
      - patool==1.12
      - pillow==9.5.0
      - pluggy==1.2.0
      - pycparser==2.21
      - pygithub==2.3.0
      - pyjwt==2.8.0
      - pynacl==1.5.0
      - pyperclip==1.9.0
      - pytest==7.4.4
      - python-dateutil==2.9.0.post0
      - python-xmp-toolkit==2.0.2
      - pytz==2025.2
      - pyyaml==6.0.1
      - requests==2.31.0
      - requests-ftp==0.3.1
      - secretstorage==3.3.3
      - simplejson==3.20.1
      - six==1.17.0
      - soupsieve==2.4.1
      - swebench-matterhorn==0.0.0
      - tomli==2.0.1
      - tqdm==4.67.1
      - typing-extensions==4.7.1
      - urllib3==1.26.20
      - vcrpy==4.4.0
      - whoosh==2.7.4
      - wrapt==1.16.0
      - yarl==1.9.4
      - zipp==3.15.0
prefix: /opt/conda/envs/datalad

datalad/ui/tests/test_dialog.py::test_message_pbar_state_logging_is_demoted
datalad/ui/tests/test_dialog.py::test_yesno datalad/ui/tests/test_dialog.py::test_question_choices datalad/ui/tests/test_dialog.py::test_hidden_doubleentry datalad/ui/tests/test_dialog.py::test_IPythonUI datalad/ui/tests/test_dialog.py::test_silent_question
datalad/ui/dialog.py
datalad/ui/dialog.py