AURWatch watches the Arch User Repository so you don't have to read every PKGBUILD yourself: it scans every package for dangerous patterns (remote code execution, curl | sh, obfuscated payloads, untrusted download hosts) with static rules plus an AI second opinion, and re-scans every 2 hours.
It's a one-person side project that I build, run and pay for myself. If a package ever gets flagged wrongly, that's an honest mistake on my end and never an accusation against the maintainer. Just hit Report a package and I'll sort it out.
Wrong verdict, or a package we missed?
Recently flagged (last 24h)
All packages →| Package | Maintainer | Votes | Severity | Triggered rules |
|---|---|---|---|---|
| ttf-symbola-bin | arianesteckel | 14 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| xfwm4-themes-bin | brunoharing | 11 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| archutil | susannakoskela | 2 | HIGH broken | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| sonicthehedgehog2 | gameslayer | 2 | HIGH piracy | External download from an untrusted host, not in source=(), AI review of an ambiguous pattern |
| aksusbd-bin | - | 1 | HIGH | pip install of an external package, AI review of an ambiguous pattern |
| altirra | imcb | 1 | HIGH piracy | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| chandler-bin | janahasler | 1 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| com.seewo.easinote5 | - | 1 | HIGH piracy | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| cstrike-appimage | azzbcc | 1 | HIGH piracy | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| cxstudy-wine | jingluwei | 1 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| deeploy-bin | antoniopereira | 1 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| eden-nightly | annabjorklund | 1 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| editorconfiger | melaniecastro | 1 | HIGH | External install via pipx/uv/poetry/cargo/go/gem, Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| jazzjackrabbit | gameslayer | 1 | HIGH piracy | External download from an untrusted host, not in source=(), AI review of an ambiguous pattern |
| python-numkong | tamasszabo | 1 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-parallax | camilamoles | 1 | HIGH broken | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python2-parallax | matthewq337 | 1 | HIGH broken | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| sm64ex-redrawn-60fps-git | - | 1 | HIGH piracy | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| solv | mariahaverinen | 1 | HIGH | External install via pipx/uv/poetry/cargo/go/gem, Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| ampere-git | verakadlec | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| android-armv7a-eabi-libxrandr | krystianzwara | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| android-riscv64-libxmu | andraspataki | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| android-x86-64-libxmu | sabinamata | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| bili-tools | oresteargento | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| boringssl-git | alicejohansson | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| calendula-git | francoisbeurret | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| censawayapp-bin | montserratcorrea | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| flymaster | cavernico | 0 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| gitio-git | gameplayer | 0 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| irreader | AsukaMinato | 0 | HIGH piracy | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| ld64 | Dralanjhgi | 0 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| libfprint-crfpmoc-git | zdislavaruzicka | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| mcc | zyriu1 | 0 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| mimosa | lisaduvanel | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| mingw-w64-libcerf | matskuijpers | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| newitemmonitor | AsukaMinato | 0 | HIGH piracy | npm/yarn/pnpm install of an undeclared external package, AI review of an ambiguous pattern |
| nice-boat | kokokoshka | 0 | HIGH piracy | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| pandoc-eisvogel-template | tapanilaaksonen | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| polytrack | elodieferreira | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| proxypin | annabarman | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| pylnker-git | tizianobajardi | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-chatterbot | unnihaug | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-dlib-cuda-git | miroslavasedlak | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-google-cloud-monitoring | nicolasamo | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-importlab | agnesballa | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-libipld-git | norahbave | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-libpysal | marianaoliveira | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| python-roman-numerals | idajarvinen | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| qoder-cli | Pakrohk | 0 | HIGH | External download from an untrusted host, not in source=(), AI review of an ambiguous pattern |
| ramses-git | florinacabello | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| rootvim | realSUDO | 0 | HIGH | npm/yarn/pnpm install of an undeclared external package, AI review of an ambiguous pattern |
| spiritfarer-appimage | azzbcc | 0 | HIGH piracy | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| symantec-ghost | severach | 0 | HIGH piracy broken | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| waybar-minimal-nosystemd-git | zofiabutte | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| ydict | DreamSaddle | 0 | HIGH | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| garlic-decompiler-gui | fabianbastiaanse | 0 | HIGH | Recently orphaned & re-adopted, AI review of an ambiguous pattern |
| imago-bin | rayanderoos | 0 | HIGH | Recently orphaned & re-adopted, Few votes, recently uploaded, AI review of an ambiguous pattern |
| duhh | nataszazach | 0 | HIGH | Recently orphaned & re-adopted, Few votes, recently uploaded, AI review of an ambiguous pattern |
| juicebox-plus-git | nataszazach | 0 | HIGH | Recently orphaned & re-adopted, Few votes, recently uploaded, AI review of an ambiguous pattern |
| accounts-qml-module-bin | milanfarkas | 0 | HIGH | Few votes, recently uploaded, AI review of an ambiguous pattern |
| arch-update-bin | alfredoamaldi | 0 | HIGH broken | Few votes, recently uploaded, AI review of an ambiguous pattern |
| gnu-netcat-bin | demivanloon | 0 | HIGH | Few votes, recently uploaded, AI review of an ambiguous pattern |
| gtk2-ng-git-bin | mairemakela | 0 | HIGH | source=() URL on a non-standard host, Few votes, recently uploaded, AI review of an ambiguous pattern |
| openssl-1.1-bin | geraldbraun | 0 | HIGH | source=() URL on a non-standard host, Few votes, recently uploaded, AI review of an ambiguous pattern |
| plasma6-applets-panel-colorizer-bin | laloarranz | 0 | HIGH | Few votes, recently uploaded, AI review of an ambiguous pattern |
| python-steam-bin | sussiesteffensen | 0 | HIGH broken | Few votes, recently uploaded, AI review of an ambiguous pattern |
| qt5-location-bin | thomasandresen | 0 | HIGH | Few votes, recently uploaded, AI review of an ambiguous pattern |
| aurscan-manticore-release-git-bin | rudolfhorak | 0 | HIGH | Few votes, recently uploaded, AI review of an ambiguous pattern |
| botan2-bin | curthornig | 0 | HIGH | source=() URL on a non-standard host, Few votes, recently uploaded, AI review of an ambiguous pattern |
| libkolabxml-bin | masontammerijn | 0 | HIGH | source=() URL on a non-standard host, Few votes, recently uploaded, AI review of an ambiguous pattern |
| qt5-sensors-bin | piotrrembisz | 0 | HIGH | Few votes, recently uploaded, AI review of an ambiguous pattern |
| qt5-websockets-bin | mahulenakrejcova | 0 | HIGH | Few votes, recently uploaded, AI review of an ambiguous pattern |
| chromium-snapshot-bin | mrxx | 495 | MEDIUM | External download from an untrusted host, not in source=(), source=() URL on a non-standard host, AI review of an ambiguous pattern |
| wps-office | Universebenzene | 489 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| wps-office-mime | Universebenzene | 489 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| insync | thenaterhood | 325 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| spideroak-one | warnem2 | 263 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| enemy-territory | The_Loko | 259 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| enemy-territory-data | The_Loko | 259 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| vmware-workstation | JulianXhokaxhiu | 247 | MEDIUM | source=() URL on a non-standard host, Privileged / out-of-pacman install (sudoers, setuid, or self-update), AI review of an ambiguous pattern |
| epsxe | hav3lock | 226 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| 1password | 1Password | 148 | MEDIUM | source=() URL on a non-standard host, Privileged / out-of-pacman install (sudoers, setuid, or self-update), AI review of an ambiguous pattern |
| acestream-engine | qark | 131 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| fcitx-sogoupinyin | qft | 112 | MEDIUM | External download from an untrusted host, not in source=(), AI review of an ambiguous pattern |
| jdk8 | severach | 103 | MEDIUM | source=() URL on a non-standard host, AI review of an ambiguous pattern |
| pcloud-drive | zbe | 94 | MEDIUM | External download from an untrusted host, not in source=(), source=() URL on a non-standard host, AI review |
| opera-developer | MojArch | 91 | MEDIUM | Privileged / out-of-pacman install (sudoers, setuid, or self-update), AI review |
| amdapp-sdk | rigred | 84 | MEDIUM | source=() URL on a non-standard host, AI review |
| amdapp-sdk-opencv | rigred | 84 | MEDIUM | source=() URL on a non-standard host, AI review |
| amdapp-sdk-nocatalyst | rigred | 84 | MEDIUM | source=() URL on a non-standard host, AI review |
| amdapp-sdk-docs | rigred | 84 | MEDIUM | source=() URL on a non-standard host, AI review |
| wemeet-bin | sukanka | 82 | MEDIUM | source=() URL on a non-standard host, AI review |
| bouml | yngvelevin | 80 | MEDIUM | source=() URL on a non-standard host, AI review |
| kindlegen | alerque | 78 | MEDIUM | source=() URL on a non-standard host, AI review |
| cloudflare-warp-bin | solatis | 75 | MEDIUM | source=() URL on a non-standard host, AI review |
| staruml | CookieUniverse | 72 | MEDIUM | source=() URL on a non-standard host, AI review |
| savage2 | Slash | 65 | MEDIUM | source=() URL on a non-standard host, AI review |
| ledger-live-bin | phnx47 | 62 | MEDIUM | source=() URL on a non-standard host, AI review |
| parsec-bin | zen | 58 | MEDIUM | source=() URL on a non-standard host, AI review |
| quake4 | Slash | 55 | MEDIUM | source=() URL on a non-standard host, AI review |
| noip | runnytu | 54 | MEDIUM | source=() URL on a non-standard host, AI review |
| xmind | bacteriostat | 54 | MEDIUM | source=() URL on a non-standard host, AI review |
| yandex-browser | labaman | 49 | MEDIUM | source=() URL on a non-standard host, AI review |
| freedownloadmanager | rizwan486 | 47 | MEDIUM | source=() URL on a non-standard host, AI review |
| warsaw-bin | tioguda | 47 | MEDIUM | source=() URL on a non-standard host, AI review |
| hybrid-encoder | JohnyRi | 46 | MEDIUM | source=() URL on a non-standard host, AI review |
| feedthebeast-classic | FurTabs | 45 | MEDIUM | source=() URL on a non-standard host, AI review |
| pulse-secure | akosmolnar | 41 | MEDIUM | source=() URL on a non-standard host, AI review |
| ultravnc-viewer | Muflone | 40 | MEDIUM | source=() URL on a non-standard host, AI review |
| mikutter | gomasy | 39 | MEDIUM | External install via pipx/uv/poetry/cargo/go/gem, source=() URL on a non-standard host, AI review |
| warsaw | nicolascomman | 39 | MEDIUM | source=() URL on a non-standard host, AI review |
| nx3-all | filipprochazkova | 38 | MEDIUM | source=() URL on a non-standard host, AI review |
| termius | tbk | 37 | MEDIUM | source=() URL on a non-standard host, AI review |
| slimjet | ahmedmoselhi | 36 | MEDIUM | External download from an untrusted host, not in source=(), AI review |
| valentina-studio | bobolin | 36 | MEDIUM | source=() URL on a non-standard host, AI review |
| xp-pen-tablet | labaman | 36 | MEDIUM | source=() URL on a non-standard host, AI review |
| oracle-instantclient-basic | Malvineous | 32 | MEDIUM | source=() URL on a non-standard host, AI review |
| jpcsp | soimort | 31 | MEDIUM | source=() URL on a non-standard host, AI review |
| microsoft-edge-beta-bin | bittin | 30 | MEDIUM | source=() URL on a non-standard host, AI review |
| ayugram-desktop-bin | RSG245 | 29 | MEDIUM | source=() URL on a non-standard host, AI review |
| devin-desktop | gerliczkowalczuk | 29 | MEDIUM | Recently orphaned & re-adopted, AI review |
| ida-free | fatalis | 29 | MEDIUM | source=() URL on a non-standard host, AI review |
| notion-app-electron | AsukaMinato | 29 | MEDIUM | source=() URL on a non-standard host, AI review |
| surfshark-client | otaj | 29 | MEDIUM | source=() URL on a non-standard host, AI review |
| wolf | Slash | 29 | MEDIUM | source=() URL on a non-standard host, AI review |
| clash-for-windows-bin | Jat | 28 | MEDIUM | source=() URL on a non-standard host, AI review |
| imagescan-plugin-networkscan | buzo | 28 | MEDIUM | source=() URL on a non-standard host, AI review |
| localwp | airdiz | 27 | MEDIUM | source=() URL on a non-standard host, AI review |
| nodejs-mkdirp | annikkitikkanen | 27 | MEDIUM | npm/yarn/pnpm install of an undeclared external package, AI review |
| vk-messenger | CryZFix | 27 | MEDIUM | source=() URL on a non-standard host, AI review |
| 8188eu-dkms | julieiversen | 26 | MEDIUM | source=() URL on a non-standard host, AI review |
| z-library-bin | macdems | 26 | MEDIUM | source=() URL on a non-standard host, AI review |
| kdrive-bin | Frankkkkk | 25 | MEDIUM | source=() URL on a non-standard host, AI review |
| editix-free | Geballin | 24 | MEDIUM | source=() URL on a non-standard host, AI review |
| local-by-flywheel-bin | peddamax | 24 | MEDIUM | source=() URL on a non-standard host, AI review |
| obinskit | ScoopNewsworthy | 24 | MEDIUM | source=() URL on a non-standard host, AI review |
| flirc-bin | jsteel | 23 | MEDIUM | source=() URL on a non-standard host, AI review |
| r-linux | mrxx | 23 | MEDIUM | source=() URL on a non-standard host, AI review |
| samsung_magician-consumer-ssd | oberon2007 | 23 | MEDIUM | source=() URL on a non-standard host, AI review |
| synergy2-bin | jaap | 23 | MEDIUM | source=() URL on a non-standard host, AI review |
| plex-desktop | username227 | 22 | MEDIUM | source=() URL on a non-standard host, AI review |
| soundwire | Max-P | 22 | MEDIUM | source=() URL on a non-standard host, AI review |
| wechat-devtools | theahermann | 22 | MEDIUM | npm/yarn/pnpm install of an undeclared external package, source=() URL on a non-standard host, AI review downgraded a static finding |
| curseforge | txtsd | 21 | MEDIUM | source=() URL on a non-standard host, AI review |
| forticlient | rhysperry111 | 21 | MEDIUM | source=() URL on a non-standard host, AI review |
| max-bin | kuhtoxo | 21 | MEDIUM | source=() URL on a non-standard host, AI review |
| ticktick | Aerz | 21 | MEDIUM | source=() URL on a non-standard host, AI review |
| wootility | AlphaLynx | 21 | MEDIUM | source=() URL on a non-standard host, AI review |
| hayase-desktop-bin | Duwangel | 20 | MEDIUM | source=() URL on a non-standard host, AI review |
| microchip-mplabxc8-bin | rexploits | 20 | MEDIUM | Privileged / out-of-pacman install (sudoers, setuid, or self-update), AI review |
| sunloginclient | TimWcx | 20 | MEDIUM | source=() URL on a non-standard host, AI review |
| tableplus | sistematico | 20 | MEDIUM | source=() URL on a non-standard host, AI review |
| texturepacker | konez2k | 20 | MEDIUM | source=() URL on a non-standard host, AI review |
| typora-free | irgendwr | 20 | MEDIUM | source=() URL on a non-standard host, AI review |
| ancient-packages | Xavion | 19 | MEDIUM | source=() URL on a non-standard host, AI review |
| courier-maildrop | runnytu | 19 | MEDIUM | Privileged / out-of-pacman install (sudoers, setuid, or self-update), AI review |
| popular-packages | Xavion | 19 | MEDIUM | source=() URL on a non-standard host, AI review |
| whatsdesk-bin | Abzie | 19 | MEDIUM | source=() URL on a non-standard host, AI review |
| encryptr | svantehedlund | 18 | MEDIUM | source=() URL on a non-standard host, AI review |
| iriunwebcam-bin | xiota | 18 | MEDIUM | source=() URL on a non-standard host, AI review |
| lunacy-bin | smowtenshi | 18 | MEDIUM | source=() URL on a non-standard host, AI review |
| torguard | ABOhiccups | 18 | MEDIUM | source=() URL on a non-standard host, AI review |
| gdlauncher-bin | inetol | 17 | MEDIUM | source=() URL on a non-standard host, AI review |
| aftershotpro3 | ava1ar | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| atomicwallet | Bink | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| clickup | alhirzel | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| dangerzone-bin | username227 | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| hdsentinel | Archttila | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| jriver-media-center | blackhole | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| nosqlbooster-mongodb | Dani0x1B | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| sendanywhere | nailington | 16 | MEDIUM | source=() URL on a non-standard host, AI review |
| hoffice | 00ein00 | 15 | MEDIUM | source=() URL on a non-standard host, AI review |
| huiontablet | jhon | 15 | MEDIUM | source=() URL on a non-standard host, AI review |
| luxcorerender | bartus | 15 | MEDIUM | External install via pipx/uv/poetry/cargo/go/gem, AI review |
| qqmusic-bin | Rukkhadevata123 | 15 | MEDIUM | source=() URL on a non-standard host, AI review |
| f5vpn-ng | zrhoffman | 15 | MEDIUM | source=() URL on a non-standard host, Privileged / out-of-pacman install (sudoers, setuid, or self-update), AI review |
| baidunetdisk-electron | KafCoppelia | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| bootstrap-studio | nathawat_a | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| chatbox-bin | richin13 | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| citra-appimage | AlphaJack | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| ecodms-client | cmuench | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| eddie-ui-git | Eddie.website | 14 | MEDIUM | External download from an untrusted host, not in source=(), AI review |
| f5vpn | zrhoffman | 14 | MEDIUM | source=() URL on a non-standard host, Privileged / out-of-pacman install (sudoers, setuid, or self-update), AI review |
| filebot47 | carolinedroz | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| lkeyholetv | tomoaki | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| sir | szlachar | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| superbeam | a-ludi | 14 | MEDIUM | source=() URL on a non-standard host, AI review |
| doom3-bin | Slash | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| gfxbench | laetitiavermeil | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| gopanda | dakling | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| keeper-password-manager | malina | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| mattercontrol | unlimitedbacon | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| muse-sounds-manager-bin | aliu | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| o3de-bin | xaque | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| picoscope | mti | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| remote-desktop-manager | tgm4883 | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| vuze-extreme-mod | thilodoring | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| ynab4 | Eeems | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| yozo-office | zxp19821005 | 13 | MEDIUM | source=() URL on a non-standard host, AI review |
| yozo-office-fonts | zxp19821005 | 13 | MEDIUM | source=() URL on a non-standard host, AI review |