diff --git a/roles/zsh/tasks/main.yaml b/roles/zsh/tasks/main.yaml
index e6f45df..0f18ed5 100644
--- a/roles/zsh/tasks/main.yaml
+++ b/roles/zsh/tasks/main.yaml
@@ -64,6 +64,19 @@
   loop_control:
     label: '{{item.dest}}'
 
+- name: list commands with available completions
+  command:
+    zsh {{ansible_env.HOME}}/.config/zsh/list-commands-with-available-completions.zsh
+  changed_when: false
+  register: completion_commands
+
+- name: install completions for available commands
+  file:
+    state: link
+    src: '~/.config/zsh/zsh-completions/src/_{{item}}'
+    dest: '~/.local/share/zsh/site-functions/_{{item}}'
+  with_items: '{{completion_commands.stdout}}'
+
 - name: get absolute path
   shell: command -v zsh
   register: zsh