diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 65eb6a48..30295f17 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -22,12 +22,12 @@ repos:
       - id: check-docstring-first
 
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.9.5
+    rev: v0.11.8
     hooks:
       - id: ruff
       - id: ruff-format
 
   - repo: https://github.com/woodruffw/zizmor-pre-commit
-    rev: v1.3.0
+    rev: v1.6.0
     hooks:
       - id: zizmor
diff --git a/src/cleo/application.py b/src/cleo/application.py
index 194c0a9e..b02e0d00 100644
--- a/src/cleo/application.py
+++ b/src/cleo/application.py
@@ -201,7 +201,7 @@ def get(self, name: str) -> Command:
         if self._want_helps:
             self._want_helps = False
 
-            help_command: HelpCommand = cast(HelpCommand, self.get("help"))
+            help_command: HelpCommand = cast("HelpCommand", self.get("help"))
             help_command.set_command(command)
 
             return help_command
diff --git a/src/cleo/commands/command.py b/src/cleo/commands/command.py
index 3c595175..c617bc44 100644
--- a/src/cleo/commands/command.py
+++ b/src/cleo/commands/command.py
@@ -219,7 +219,7 @@ def confirm(
         confirmation = ConfirmationQuestion(
             question, default=default, true_answer_regex=true_answer_regex
         )
-        return cast(bool, confirmation.ask(self._io))
+        return cast("bool", confirmation.ask(self._io))
 
     def ask(self, question: str | Question, default: Any | None = None) -> Any:
         """
diff --git a/src/cleo/commands/completions_command.py b/src/cleo/commands/completions_command.py
index e3b964a0..0b60fca8 100644
--- a/src/cleo/commands/completions_command.py
+++ b/src/cleo/commands/completions_command.py
@@ -151,10 +151,10 @@ def _get_prog_name_from_stack() -> str:
         del frame
 
         if f_globals is not None:
-            package_name = cast(str, f_globals.get("__name__"))
+            package_name = cast("str", f_globals.get("__name__"))
 
             if package_name == "__main__":
-                package_name = cast(str, f_globals.get("__package__"))
+                package_name = cast("str", f_globals.get("__package__"))
 
             if package_name:
                 package_name = package_name.partition(".")[0]
diff --git a/src/cleo/io/buffered_io.py b/src/cleo/io/buffered_io.py
index ed605b50..22fd1572 100644
--- a/src/cleo/io/buffered_io.py
+++ b/src/cleo/io/buffered_io.py
@@ -26,23 +26,23 @@ def __init__(
         )
 
     def fetch_output(self) -> str:
-        return cast(BufferedOutput, self._output).fetch()
+        return cast("BufferedOutput", self._output).fetch()
 
     def fetch_error(self) -> str:
-        return cast(BufferedOutput, self._error_output).fetch()
+        return cast("BufferedOutput", self._error_output).fetch()
 
     def clear(self) -> None:
-        cast(BufferedOutput, self._output).clear()
-        cast(BufferedOutput, self._error_output).clear()
+        cast("BufferedOutput", self._output).clear()
+        cast("BufferedOutput", self._error_output).clear()
 
     def clear_output(self) -> None:
-        cast(BufferedOutput, self._output).clear()
+        cast("BufferedOutput", self._output).clear()
 
     def clear_error(self) -> None:
-        cast(BufferedOutput, self._error_output).clear()
+        cast("BufferedOutput", self._error_output).clear()
 
     def supports_utf8(self) -> bool:
-        return cast(BufferedOutput, self._output).supports_utf8()
+        return cast("BufferedOutput", self._output).supports_utf8()
 
     def clear_user_input(self) -> None:
         self._input.stream.truncate(0)
diff --git a/src/cleo/io/outputs/stream_output.py b/src/cleo/io/outputs/stream_output.py
index d5e3f3b3..5a824b4b 100644
--- a/src/cleo/io/outputs/stream_output.py
+++ b/src/cleo/io/outputs/stream_output.py
@@ -145,7 +145,7 @@ def _has_color_support(self) -> bool:
                 return True
 
             return cast(
-                bool,
+                "bool",
                 kernel32.SetConsoleMode(
                     h, mode.value | self.ENABLE_VIRTUAL_TERMINAL_PROCESSING
                 )
diff --git a/src/cleo/ui/progress_bar.py b/src/cleo/ui/progress_bar.py
index 71dd8455..44b87100 100644
--- a/src/cleo/ui/progress_bar.py
+++ b/src/cleo/ui/progress_bar.py
@@ -401,7 +401,7 @@ def _formatter_max(self) -> int:
         return self._max
 
     def _formatter_percent(self) -> int:
-        return int(math.floor(self._percent * 100))
+        return math.floor(self._percent * 100)
 
     def _build_line(self) -> str:
         regex = re.compile(r"(?i)%([a-z\-_]+)(?::([^%]+))?%")