diff --git a/OPTIONS.md b/OPTIONS.md
new file mode 100644
index 0000000..9d7c429
--- /dev/null
+++ b/OPTIONS.md
@@ -0,0 +1,244 @@
+# OPTIONS
+
+This document summarizes the current repository's advanced configuration options.
+All options are stored in XML config files under QuickLook data location:
+
+- `%APPDATA%\pooi.moe\QuickLook\` for installed mode
+- `UserData\` next to the executable for portable mode
+
+Each config file is named after its domain, e.g. `QuickLook.config`, `QuickLook.Plugin.ImageViewer.config`, `QuickLook.Plugin.VideoViewer.config`.
+
+## Config file format
+
+The config file is a simple XML document. If the file does not exist, run QuickLook once and then create it.
+
+Example:
+
+```xml
+
+
+ True
+ True
+
+```
+
+## QuickLook.config options
+
+### ``
+- Default: `True`
+- Type: `Boolean`
+- Description: Show or hide the tray icon.
+- Example:
+ - `False` to hide the tray icon.
+
+### ``
+- Default: `True`
+- Type: `Boolean`
+- Description: Enable or disable window transparency for the preview window.
+- Example:
+ - `False` to disable transparency.
+
+### ``
+- Default: `Auto`
+- Type: `String` (enum)
+- Description: Choose the backdrop style for the preview window when transparency is enabled.
+- Supported values:
+ - `Auto`
+ - `None`
+ - `Mica`
+ - `Acrylic`
+ - `Acrylic10`
+ - `Acrylic11`
+ - `Tabbed`
+- Example:
+ - `Acrylic`
+
+### ``
+- Default: empty
+- Type: `String`
+- Description: Custom preview window background color. The value is parsed by WPF `BrushConverter`.
+- Example:
+ - `#FFC0CB`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Keep the preview window on top of other windows.
+- Example:
+ - `True`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Show or hide the preview window in the taskbar.
+- Example:
+ - `True`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Close the preview window when it loses focus.
+- Example:
+ - `True`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Show the Reload button in the preview window UI.
+- Example:
+ - `True`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Automatically reload the preview when the opened file changes on disk.
+- Example:
+ - `True`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Activate the preview window when a file is opened.
+- Example:
+ - `True`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Disable automatic update checks at startup.
+- Example:
+ - `True`
+
+### ``
+- Default: none / internal
+- Type: `Int64`
+- Description: Internal timestamp used to throttle automatic update checks; not usually edited by hand.
+- Example:
+ - `637xxxxxxx000000000`
+
+### ``
+- Default: `0` (`RenderMode.Default`)
+- Type: `Integer`
+- Description: Set process render mode at startup.
+ - `0` = default rendering behavior
+ - `1` = software-only rendering
+- Example:
+ - `1`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Internal flag used by plugin unblock logic after a security block attempt; not normally modified manually.
+- Example:
+ - `True`
+
+### Extension filter options
+These keys are also stored in `QuickLook.config`.
+
+#### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: When `True`, only extensions listed in `ExtensionAllowlist` are allowed for preview. When `False`, `ExtensionBlocklist` is used instead.
+- Example:
+ - `True`
+
+#### ``
+- Default: empty
+- Type: `String`
+- Description: Semicolon/comma-separated list of allowed file extensions in allowlist mode. Use leading dots, e.g. `.txt;.md`.
+- Example:
+ - `.txt;.md;.json`
+
+#### ``
+- Default: contains `.insv`
+- Type: `String`
+- Description: Semicolon/comma-separated list of blocked file extensions in blocklist mode. Use leading dots.
+- Example:
+ - `.insv;.exe`
+
+## QuickLook.Plugin.ImageViewer.config options
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Enable monitor color profile conversion for image preview. This may slow down image loading.
+- Example:
+ - `True`
+
+### ``
+- Default: `True`
+- Type: `Boolean`
+- Description: Use the native image provider for faster but less precise color output. Set to `False` for more accurate colors.
+- Example:
+ - `False`
+
+### ``
+- Default: `True`
+- Type: `Boolean`
+- Description: Enable SVG rendering through the ImageViewer webview handler.
+- Example:
+ - `False`
+
+### ``
+- Default: `1` (`Dark`)
+- Type: `Integer`
+- Description: Remember the last theme used by the ImageViewer web preview.
+ - `0` = None
+ - `1` = Dark
+ - `2` = Light
+- Example:
+ - `2`
+
+## QuickLook.Plugin.VideoViewer.config options
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Loop video playback when the video reaches the end.
+- Example:
+ - `True`
+
+### ``
+- Default: `1.0`
+- Type: `Double`
+- Description: Saved volume level for video playback. Value is clamped between `0.0` and `1.0`.
+- Example:
+ - `0.75`
+
+## QuickLook.Plugin.OfficeViewer.config options
+
+### ``
+- Default: `True`
+- Type: `Boolean`
+- Description: Check the registered Office preview handler before loading OfficeViewer-Native.
+- Example:
+ - `False`
+
+### ``
+- Default: `False`
+- Type: `Boolean`
+- Description: Automatically unblock Protected View Internet zone identifiers for Office files without prompting.
+- Example:
+ - `True`
+
+## QuickLook.Plugin.TextViewer.config options
+
+### ``
+- Default: `True`
+- Type: `Boolean`
+- Description: Enable format detection for the text viewer to improve syntax highlighting choice.
+- Example:
+ - `False`
+
+### ``
+- Default: default theme behavior
+- Type: `Boolean`
+- Description: Allow dark theme usage in the text viewer when the system is in dark mode. If disabled, light theme is used even when the theme would otherwise be dark.
+- Example:
+ - `True`
+
+## Notes
+
+- All option names are case-sensitive and stored as XML element names under ``.
+- Plugin option domain names correspond to config file names, e.g. `QuickLook.Plugin.ImageViewer` → `QuickLook.Plugin.ImageViewer.config`.
+- `LastUpdateTicks` and `TriedUnblock` are internal state values and generally do not need manual editing.