steamachievementnotifier
The npx commands are used to run TypeScript compiler and electron-builder on the locally checked-out source code, not to execute arbitrary remote packages; this is a standard part of the build process for Node.js projects.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The npx commands are used to run TypeScript compiler and electron-builder on the locally checked-out source code, not to execute arbitrary remote packages; this is a standard part of the build process for Node.js projects.
1 higher static finding superseded - not the current verdict (shown for transparency)
remote_code_tool
`npx`/`bunx`/`pnpm dlx`/`deno run <url>` downloads AND runs a remote package at build time — the moral equivalent of piping a download into a shell. Severity downgraded: Node.js consumer context.
-
PKGBUILD:32
npx tsc --build --clean && npx tsc && ./node_modules/.bin/electron-builder --linux --x64 --dir -c.electronDist=/usr/lib/$_electron/ -c.electronVersion=$(cat /usr/lib/$_electron/version) -
PKGBUILD:32
npx tsc --build --clean && npx tsc && ./node_modules/.bin/electron-builder --linux --x64 --dir -c.electronDist=/usr/lib/$_electron/ -c.electronVersion=$(cat /usr/lib/$_electron/version)
PKGBUILD
1 offending line(s) highlighted# Maintainer: hawkeye116477 <hawkeye11647 at gmail dot com>
pkgname=steamachievementnotifier
_pkgname="Steam Achievement Notifier"
_mainver=1.9
_subver=48
pkgver="${_mainver}.${_subver}"
_electron=electron44
pkgrel=1
pkgdesc="Shows fully customisable notifications when you unlock any achievement on Steam"
arch=('x86_64')
url="https://github.com/SteamAchievementNotifier/SteamAchievementNotifier"
license=('LicenseRef-unknown')
provides=("${pkgname}=${pkgver}")
conflicts=("${pkgname}")
depends=(
"${_electron}"
)
makedepends=(
'asar'
'git'
'nodejs-lts'
'npm'
'python'
)
source=("git+https://github.com/SteamAchievementNotifier/SteamAchievementNotifier.git#tag=${pkgver}")
sha256sums=('SKIP')
build() {
cd SteamAchievementNotifier
HOME="${srcdir}/.electron-gyp" npm install
npx tsc --build --clean && npx tsc && ./node_modules/.bin/electron-builder --linux --x64 --dir -c.electronDist=/usr/lib/$_electron/ -c.electronVersion=$(cat /usr/lib/$_electron/version)
}
package() {
cd "SteamAchievementNotifier"
install -d "${pkgdir}/usr/lib/${pkgname}"
cp -rf _release/linux-unpacked/resources/* "${pkgdir}/usr/lib/${pkgname}/"
install -Dm755 /dev/stdin "${pkgdir}/usr/bin/${pkgname}" <<EOF
#!/usr/bin/bash
exec $_electron /usr/lib/${pkgname}/app.asar --no-sandbox "\$@"
EOF
for i in 32 512; do
install -d "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps"
done
ln -Ts /usr/lib/${pkgname}/img/sanlogo.png \
"$pkgdir/usr/share/icons/hicolor/512x512/apps/${pkgname}.png"
ln -Ts /usr/lib/${pkgname}/img/32x32.png \
"$pkgdir/usr/share/icons/hicolor/32x32/apps/${pkgname}.png"
install -Dm755 /dev/stdin "${pkgdir}/usr/share/applications/${pkgname}.desktop" <<EOF
[Desktop Entry]
Name=Steam Achievement Notifier
Exec=steamachievementnotifier %U
Terminal=false
Type=Application
Icon=steamachievementnotifier
StartupWMClass=Steam Achievement Notifier
Comment=Steam Achievement Notifier
Categories=Utility;
EOF
}
Changes since previous scan
--- PKGBUILD @ 2026-10-27 00:23+++ PKGBUILD @ 2026-11-01 00:21@@ -2,9 +2,9 @@ pkgname=steamachievementnotifier _pkgname="Steam Achievement Notifier" _mainver=1.9-_subver=46+_subver=48 pkgver="${_mainver}.${_subver}"-_electron=electron42+_electron=electron44 pkgrel=1 pkgdesc="Shows fully customisable notifications when you unlock any achievement on Steam" arch=('x86_64')Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 15:48:05 | Medium | 1 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |
| 2026-10-18 00:06:55 | Low | 2 |
| 2026-10-17 00:21:55 | Low | 2 |
| 2026-10-16 00:12:47 | Low | 2 |
| 2026-10-15 00:28:05 | Low | 2 |
| 2026-10-14 00:06:47 | Low | 2 |