diff --git a/CMakeLists.txt b/CMakeLists.txt
index 049e3b1e4b3aca9954dc2ce021315f090488c1fd..eef3d8298e17fc094dabf3193134144a283f898a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -743,6 +743,7 @@ if(UNIX AND NOT APPLE)
 	install (FILES "resources/nheko.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps" RENAME "nheko.svg")
 	install (FILES "resources/nheko.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
 	install (FILES "resources/nheko.appdata.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo")
+	install (FILES "resources/_nheko" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/zsh/site-functions")
 
 	if(NOT TARGET uninstall)
 		configure_file(
diff --git a/resources/_nheko b/resources/_nheko
new file mode 100644
index 0000000000000000000000000000000000000000..c730b2b3e1836fa39361d2755ef5c010fe1707dc
--- /dev/null
+++ b/resources/_nheko
@@ -0,0 +1,23 @@
+#compdef nheko
+
+_arguments '--help[Displays help on commandline options.]' \
+           '-h[Displays help on commandline options.]' \
+           '--help-all[Displays help including Qt specific options.]' \
+           '--version[Displays version information.]' \
+           '-v[Displays version information.]' \
+           '--debug[Enables debug output.]' \
+           '--profile[Create or select profile.]:profile:_nheko_select_profile' \
+           '-p[Create or select profile.]:profile:_nheko_select_profile'
+
+function _nheko_select_profile()
+{
+    local -a profiles=(default)
+    while read -r line; do
+        [[ ${line} =~ '\\auth\\device_id' ]] && profiles+=(${line%%\\*})
+    done < ${XDG_CONFIG_HOME:-~/.config}/nheko/nheko.conf
+    _values "profile" ${profiles}
+}
+
+# Local Variables:
+# mode: shell-script
+# End: