opencode-studio

LOW
maintainer pika02 0 votes scanned 2026-10-30 09:57:53.274557
View on AUR
Why flagged

The `npx next build` call runs the locally installed Next.js binary from the project's own `node_modules` (installed via `npm ci` from the project's package.json), not a remote package fetched at build time; the source tarball is from the project's own GitHub repo with a pinned checksum, so this is a normal AUR build with no evidence of malicious behaviour, though it is a low-vote, recently uploaded package from an unknown maintainer.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Low AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (anthropic/claude-sonnet-4.6) reviewed the full PKGBUILD and judged it LOW (confidence 70%): The `npx next build` call runs the locally installed Next.js binary from the project's own `node_modules` (installed via `npm ci` from the project's package.json), not a remote package fetched at build time; the source tarball is from the project's own GitHub repo with a pinned checksum, so this is a normal AUR build with no evidence of malicious behaviour, though it is a low-vote, recently uploaded package from an unknown maintainer.

1 higher static finding superseded - not the current verdict (shown for transparency)
Medium npx/bunx/deno executes a remote package 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:39 npx next build

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: pika02
2
3pkgname=opencode-studio
4pkgver=2.5.1
5pkgrel=1
6pkgdesc='Local GUI for managing OpenCode configurations (MCP, skills, plugins, auth, profiles)'
7# Native binaries from npm packages (sharp, @parcel/watcher, @swc/core) limit arch
8arch=('x86_64')
9url='https://github.com/Microck/opencode-studio'
10license=('MIT')
11depends=('nodejs>=22' 'hicolor-icon-theme')
12optdepends=('opencode: the OpenCode CLI managed by Studio')
13makedepends=('npm')
14options=('!strip')
15source=("$pkgname-$pkgver.tar.gz::https://github.com/Microck/opencode-studio/archive/refs/tags/v$pkgver.tar.gz"
16 "$pkgname.sh"
17 "$pkgname.desktop"
18 "LICENSE")
19sha256sums=('bafdcc4677fd36472f3f2394243f0175b40095da2a6f201b82f9afb7c97fbf05'
20 '157ade89329aa28a1ae016dafd3ebfe9a15a6311fd5e2745155fe78112868e1e'
21 'd45166e04c2e00c3022e81ee8589c91af8d1b145a1a76cc096c753d07c1180c1'
22 '0839da86c99f1925089db74e2dda71b102be8b29bc1a905ad20e3c13b71f1a77')
23
24build() {
25 cd "$srcdir/$pkgname-$pkgver"
26
27 export npm_config_fund=false
28 export npm_config_audit=false
29 export NEXT_TELEMETRY_DISABLED=1
30
31 # Backend (published on npm as opencode-studio-server)
32 (cd server && npm ci)
33
34 # Frontend (Next.js, standalone output)
35 (
36 cd client-next
37 npm ci
38 export NEXT_PUBLIC_APP_VERSION="$pkgver"
39 npx next build
40 )
41}
42
43package() {
44 install -d "$pkgdir/usr/lib/$pkgname"
45
46 # Backend
47 cp -a "$srcdir/$pkgname-$pkgver/server" "$pkgdir/usr/lib/$pkgname/server"
48
49 # Frontend: Next.js standalone server + static assets
50 cd "$srcdir/$pkgname-$pkgver/client-next"
51 cp -a .next/standalone "$pkgdir/usr/lib/$pkgname/client"
52 # Rewrite build-machine paths embedded by the standalone output
53 sed -i "s|$srcdir/$pkgname-$pkgver/client-next|/usr/lib/$pkgname/client|g" \
54 "$pkgdir/usr/lib/$pkgname/client/server.js" \
55 "$pkgdir/usr/lib/$pkgname/client/.next/required-server-files.json"
56 install -d "$pkgdir/usr/lib/$pkgname/client/.next"
57 cp -a .next/static "$pkgdir/usr/lib/$pkgname/client/.next/static"
58 cp -a public "$pkgdir/usr/lib/$pkgname/client/public"
59
60 # Drop prebuilt musl binaries; this package targets Arch (glibc)
61 rm -rf "$pkgdir/usr/lib/$pkgname/client/node_modules/@img/sharp-libvips-linuxmusl-x64" \
62 "$pkgdir/usr/lib/$pkgname/client/node_modules/@img/sharp-linuxmusl-x64"
63
64 # Launcher, desktop entry, icon, license
65 install -Dm755 "$srcdir/$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
66 install -Dm644 "$srcdir/$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
67 install -Dm644 "$srcdir/$pkgname-$pkgver/client-next/public/android-chrome-512x512.png" \
68 "$pkgdir/usr/share/icons/hicolor/512x512/apps/$pkgname.png"
69 install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
70}
71

Scan history

Scanned at (UTC)SeverityRules
2026-10-30 09:57:53 Low 3
2026-10-30 09:55:25 Medium 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion