#!/usr/bin/env bash set -euo pipefail python3 - "$@" <<'PY' import sys from urllib.parse import urlencode if len(sys.argv) < 2: raise SystemExit("usage: uri.sh [key=value ...]") action = sys.argv[1] params = {} for item in sys.argv[2:]: if "=" not in item: raise SystemExit(f"invalid parameter: {item}") key, value = item.split("=", 1) params[key] = value print(f"obsidian://{action}?{urlencode(params)}") PY