Install this version:
emerge -a =dev-util/qwen-code-0.23.3
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =dev-util/qwen-code-0.23.3
Or alternatively:
emerge --autounmask-write -a =dev-util/qwen-code-0.23.3
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Qwen Code, Alibaba's terminal coding agent"
HOMEPAGE="https://qwenlm.github.io/qwen-code-docs/ https://github.com/QwenLM/qwen-code"
QWEN_BASE="https://github.com/QwenLM/qwen-code/releases/download/v${PV}"
# Upstream also publishes "-opentui-preview" builds of every target; those are
# an experimental UI and are not tracked here.
SRC_URI="
amd64? (
${QWEN_BASE}/qwen-code-linux-x64.tar.gz
-> ${P}-amd64.tar.gz
)
arm64? (
${QWEN_BASE}/qwen-code-linux-arm64.tar.gz
-> ${P}-arm64.tar.gz
)
"
S="${WORKDIR}/qwen-code"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm64"
RESTRICT="bindist mirror strip"
# The bundle is JavaScript executed by Node; the private runtime it ships with
# is discarded in src_prepare, so a system Node is required at runtime.
RDEPEND="net-libs/nodejs:*"
QA_PREBUILT="*"
src_prepare() {
default
# Upstream bundles a complete private Node.js -- 199 MiB of a 303 MiB
# tarball, two thirds of the package. Shipping a second Node runtime is
# not a distribution's job when net-libs/nodejs is right there, so the
# bundle goes and the launcher is rewritten to use the system one.
#
# Asserted rather than assumed: sed exits 0 when it matches nothing, so
# an upstream launcher change would otherwise leave a script pointing at
# a directory this ebuild deleted.
grep -qF 'ROOT/node/bin/node' bin/qwen ||
die "bin/qwen no longer invokes the bundled node -- re-check it"
rm -r node || die
}
src_install() {
insinto /usr/share/${PN}
doins -r lib manifest.json package.json
# A hand-written launcher instead of upstream's: theirs derives its root
# from dirname "$0", which resolves to /usr/bin when reached through a
# symlink and would look for lib/ in the wrong place.
cat > "${T}"/qwen <<-EOF || die
#!/bin/sh
QWEN_CODE_LAUNCHER_PATH=/usr/bin/qwen \\
exec node /usr/share/${PN}/lib/cli-entry.js "\$@"
EOF
dobin "${T}"/qwen
dodoc README.md
}
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | qwen-code-0.23.3-amd64.tar.gz | 85808468 bytes | https://github.com/QwenLM/qwen-code/releases/download/v0.23.3/qwen-code-linux-x64.tar.gz |
| DIST | qwen-code-0.23.3-arm64.tar.gz | 85604031 bytes | https://github.com/QwenLM/qwen-code/releases/download/v0.23.3/qwen-code-linux-arm64.tar.gz |