diff --git a/README.md b/README.md
index 829871e..0f4a31d 100644
--- a/README.md
+++ b/README.md
@@ -118,6 +118,47 @@ Windows users need to install manually.
3. Run `handler-install.bat` to register protocol handler
4. Edit `config.toml` and set `mpv` and `ytdl` path
+### Macos
+
+Macos user need to install manually.
+
+#### Manual installation
+
+1. Clone the repo.
+2. Install cargo.
+3. Run `cargo build` in the repo to build the binary.
+4. Move the binary to `/usr/local/bin/mpv-handler` or other path in your `$PATH`.
+5. Move `share/macos/mpv-handler.app` to `/Applications` or `~/Applications` if your binary is in `/usr/local/bin/mpv-handler`, then open it once to register scheme.
+ Or you can create app manually as follows:
+ 1. Install [Platypus](https://github.com/sveinbjornt/Platypus) and then install `platypus` cli.
+ 1. Create a wrapper:
+ ```sh
+ #!/bin/sh
+ exec "/usr/local/bin/mpv-handler" "$@"
+ ```
+ at any position.
+ 1. Run
+ ```zsh
+ platypus \
+ -a "mpv-handler" \
+ -I "io.github.akiirui.mpv-handler" \
+ -U "mpv-handler" \
+ -o None \
+ -B \
+ -R \
+ -y \
+ /path/to/mpv-handler-wrapper.sh \
+ ~/Applications/mpv-handler.app
+ ```
+ to create an app to register scheme.
+
+#### Manual installation
+
+1. Download [latest Windows release][download-windows]
+2. Unzip the archive to the directory you want
+3. Run `handler-install.bat` to register protocol handler
+4. Edit `config.toml` and set `mpv` and `ytdl` path
+
## Configuration
```toml
diff --git a/share/macos/mpv-handler.app/Contents/Info.plist b/share/macos/mpv-handler.app/Contents/Info.plist
new file mode 100644
index 0000000..a49fda9
Binary files /dev/null and b/share/macos/mpv-handler.app/Contents/Info.plist differ
diff --git a/share/macos/mpv-handler.app/Contents/MacOS/mpv-handler b/share/macos/mpv-handler.app/Contents/MacOS/mpv-handler
new file mode 100755
index 0000000..222290d
Binary files /dev/null and b/share/macos/mpv-handler.app/Contents/MacOS/mpv-handler differ
diff --git a/share/macos/mpv-handler.app/Contents/Resources/AppSettings.plist b/share/macos/mpv-handler.app/Contents/Resources/AppSettings.plist
new file mode 100644
index 0000000..298161d
Binary files /dev/null and b/share/macos/mpv-handler.app/Contents/Resources/AppSettings.plist differ
diff --git a/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/MainMenu.nib/designable.nib b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/MainMenu.nib/designable.nib
new file mode 100755
index 0000000..327ee1f
--- /dev/null
+++ b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/MainMenu.nib/designable.nib
@@ -0,0 +1,724 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/MainMenu.nib/keyedobjects.nib b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/MainMenu.nib/keyedobjects.nib
new file mode 100755
index 0000000..9a83186
Binary files /dev/null and b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/MainMenu.nib/keyedobjects.nib differ
diff --git a/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/designable.nib b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/designable.nib
new file mode 100755
index 0000000..327ee1f
--- /dev/null
+++ b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/designable.nib
@@ -0,0 +1,724 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/keyedobjects.nib b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/keyedobjects.nib
new file mode 100755
index 0000000..9a83186
Binary files /dev/null and b/share/macos/mpv-handler.app/Contents/Resources/MainMenu.nib/keyedobjects.nib differ
diff --git a/share/macos/mpv-handler.app/Contents/Resources/script b/share/macos/mpv-handler.app/Contents/Resources/script
new file mode 100755
index 0000000..2783eb2
--- /dev/null
+++ b/share/macos/mpv-handler.app/Contents/Resources/script
@@ -0,0 +1,3 @@
+#!/bin/sh
+exec "/usr/local/bin/mpv-handler" "$@"
+