Qwen Code E2E Testing
QwenLM/qwen-code
Guides end-to-end testing of the Qwen Code CLI in headless mode with real model calls, MCP test servers and inspection of raw API traffic.
Verify a built wally binary against a pinned C++ desktop kit on macOS and Windows.
$ npx skills add RunanywhereAI/wally --skill wally-e2e -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install RunanywhereAI/wally wally-e2e --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/RunanywhereAI/wally.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/wally-e2e .claude/skills/wally-e2e && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "wally-e2e" agent skill from https://github.com/RunanywhereAI/wally/tree/main/.agents/skills/wally-e2e into .claude/skills/wally-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wally-e2e", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/RunanywhereAI/wally/tree/main/.agents/skills/wally-e2eType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add RunanywhereAI/wally --skill wally-e2e -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install RunanywhereAI/wally wally-e2e --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RunanywhereAI/wally.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/wally-e2e .agents/skills/wally-e2e && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "wally-e2e" agent skill from https://github.com/RunanywhereAI/wally/tree/main/.agents/skills/wally-e2e into .agents/skills/wally-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wally-e2e", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add RunanywhereAI/wally --skill wally-e2e -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install RunanywhereAI/wally wally-e2e --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RunanywhereAI/wally.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/wally-e2e .cursor/skills/wally-e2e && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "wally-e2e" agent skill from https://github.com/RunanywhereAI/wally/tree/main/.agents/skills/wally-e2e into .cursor/skills/wally-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wally-e2e", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/RunanywhereAI/wally.git --path .agents/skills/wally-e2e--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add RunanywhereAI/wally --skill wally-e2e -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install RunanywhereAI/wally wally-e2e --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RunanywhereAI/wally.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/wally-e2e .gemini/skills/wally-e2e && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "wally-e2e" agent skill from https://github.com/RunanywhereAI/wally/tree/main/.agents/skills/wally-e2e into .gemini/skills/wally-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wally-e2e", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install RunanywhereAI/wally wally-e2eInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add RunanywhereAI/wally --skill wally-e2e -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/RunanywhereAI/wally.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/wally-e2e .github/skills/wally-e2e && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "wally-e2e" agent skill from https://github.com/RunanywhereAI/wally/tree/main/.agents/skills/wally-e2e into .github/skills/wally-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wally-e2e", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add RunanywhereAI/wally --skill wally-e2e -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install RunanywhereAI/wally wally-e2e --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/RunanywhereAI/wally.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/wally-e2e .opencode/skills/wally-e2e && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "wally-e2e" agent skill from https://github.com/RunanywhereAI/wally/tree/main/.agents/skills/wally-e2e into .opencode/skills/wally-e2e/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wally-e2e", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
wally-e2eVerify a built wally binary against a pinned C++ desktop kit on macOS and Windows.
Wally E2E is an agent skill from RunanywhereAI/wally. Verify a built wally binary against a pinned C++ desktop kit on macOS and Windows. Use when CI smoke/e2e is red, backends are missing, DLLs fail to load, or the Apple MLX host fails to link.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering End-to-end testing. It works with C++, macOS and Qwen. The repository describes itself as: Get up and running with GLM-5.3-flash, DeepSeek, Gemma and other open source frontier models. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 39b923e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Wally E2E loads about 3.8k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 1,806 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from RunanywhereAI/wally at commit 39b923e, republished under its MIT licence (© RunanywhereAI). 1,806 words, ~3,776 tokens.
.claude/skills/wally-e2e/SKILL.md (or your agent's skills folder).Entry: scripts/test/e2e.sh <path-to-wally>. Always runs scripts/test/smoke.sh, then
scripts/test/e2e-modalities.sh (engine-agnostic primitives). Public CI leaves
modality knobs unset so every round-trip skips. Device runs set
WALLY_E2E_<MOD> / WALLY_E2E_MODEL_ROOTS / WALLY_E2E_AUTO=1. See
wally-device-e2e for ANE/NPU.
| Env | Primitive | Example |
|---|---|---|
WALLY_E2E_LLM / WALLY_E2E_MODEL | llm | mlx-qwen3 or a *_HNPU dir |
WALLY_E2E_STT | stt | whisper-tiny or whisper_base_HNPU |
WALLY_E2E_TTS | tts | piper or kitten_micro_0_8_HNPU |
WALLY_E2E_VLM | vlm | smolvlm2 (SDK inserts the media marker) |
WALLY_E2E_EMBED | embed | minilm or embeddinggemma_300m_HNPU |
WALLY_E2E_IMAGE | image | compiled SD1.5 tree / sd15 |
WALLY_E2E_NEURT_MODEL | classified by path | sd15, a Parakeet ANE tree, or lfm2-230m-ane |
WALLY_E2E_VAD | vad | silero |
WALLY_E2E_RERANK | rerank | bge-reranker |
WALLY_E2E_SEGMENT | segment | segformer (P6 PPM) |
WALLY_E2E_ENGINE | override only | qhexrt / neurt / mlx |
Legacy WALLY_E2E_MLX_MODEL / WALLY_E2E_NEURT_MODEL / WALLY_E2E_QHEXRT_MODEL
are classified by path/id into a primitive (not always image). Do not add new
engine-named knobs.
scripts/test/assert-binary-backends.sh greps nm/llvm-nm/dumpbin/strings
for registrar symbols (raMLXRegisterRuntime, rac_plugin_entry_neurt,
rac_plugin_entry_qhexrt, …) so a backends() listing cannot pass without
the engine actually being linked into the bottle.
Pass WALLY_SDK_KIT so overlay backends (neurt / qhexrt) are required
when those libs are in the kit. CMAKE_PREFIX_PATH is only used for
HAS_* flags and Windows DLL staging — an ambient overlay prefix must
not make a public OSS bottle fail for missing NeuRT.
scripts/test/assert-backends.sh requires every engine the kit actually ships:
| Condition | Required wally --json backends name |
|---|---|
| no kit Config (public OSS bottle) | llamacpp + onnx + sherpa |
kit RunAnywhere_HAS_LLAMACPP TRUE | llamacpp |
kit RunAnywhere_HAS_ONNX TRUE | onnx |
kit RunAnywhere_HAS_SHERPA TRUE | sherpa |
Darwin arm64 product binary wally (not wally-cxx) | mlx |
overlay lib/librac_backend_neurt.a / rac_backend_neurt.lib | neurt |
overlay lib/librac_backend_qhexrt.a / rac_backend_qhexrt.lib | qhexrt |
Do not drop sherpa from the expected list to make 0.20.26 Windows green
while HAS_SHERPA is TRUE. That kit compiled sherpa with speech ops off
(RAC_SHERPA_ROUTABLE=0): rac_backend_sherpa_register() returned SUCCESS,
capability_check returned BACKEND_UNAVAILABLE, the registry refused the
plugin. The fix is pin a routable kit (0.20.28+), not weaken the assertion.
backends must walk every live primitivesrc/commands/cmd_backends.rs iterates 1 .. RAC_PRIMITIVE_COUNT-1, skipping
retired wire value 6. ONNX without RAG only advertises SEGMENT / DIARIZE. A
hardcoded GENERATE_TEXT / TRANSCRIBE / EMBED list made onnx invisible even when
the plugin was registered. Do not reintroduce a primitive allow-list.
Win32 LoadLibrary searches the exe directory, then PATH. e2e.sh copies
third_party / bin / lib *.dll next to wally.exe and prepends those
dirs to PATH before smoke. Skipping that produces "llamacpp only" even when
the kit contains rac_backend_onnx.lib + onnxruntime.dll.
Never pass onnxruntime.dll to link.exe (LNK1107) — link the import lib;
stage the DLL at runtime.
GitHub Windows: GITHUB_WORKSPACE is D:\a\...; msys tar -C needs
cygpath -u (fetch-kit.sh already does).
cmake/WallyRust.cmake gets the kit's link line without hand-parsing Ninja: it
queries the CMake file API (cmake_file_api(QUERY API_VERSION 1 CODEMODEL 2))
against wally_link_probe, a target configured
but never built that carries the same kit closure the old C++ wally
executable had. build.rs (link_native/probe_link_args) reads that reply,
drops compile-only fragments (-D/-I/-O/…), hands the rest to cargo as
rustc-link-args for every artifact it links, and — when
WALLY_NATIVE_LINK_ARGS_OUT is set (CMake sets it) — writes the same list to
build/wally-native-link-args.txt. scripts/build/build-mlx.sh reads that
file and turns each fragment into an xcodebuild OTHER_LDFLAGS token, then
links build/cargo/release/libwally.a (the crate's staticlib, built with the
same fragments) against it. No manual ninja -t commands harvesting, no
bundle-core.sh merge step — both are gone.
-Wl, options and ignores bare archive paths
in OTHER_LDFLAGS, so build-mlx.sh sends everything aimed at ld through
-Xlinker; -l/-L/-F and -framework are swiftc options and pass
through as-is.scripts/build/build-mlx.sh must dump the xcodebuild log on failure (Undefined symbols does not contain error:). Do not grep bare error: — every
CompileC line contains -Werror=. Observed CI 32786359915: grep
error:|Metal|BUILD left only clang: error: linker command failed.
Never put # comments in a \-continued xcodebuild invocation. Bash
cuts the command there, so OTHER_LDFLAGS and the log redirect never
run (empty xcodebuild-mlx.log, status taken from a later assignment).
Link flags that must survive the Swift host:
wally_link_probe — build-mlx.sh does not
re-derive which archives need -force_load, it replays what CMake linked.-L$KIT/third_party -lonnxruntime and -Wl,-rpath,$KIT/third_party must
both survive the flag rewrite, or the Swift host abort-traps at launch
(Library not loaded: @rpath/libonnxruntime.dylib).Security.framework, -liconv) and the C++ runtime (-lc++, the kit links
through the C++ driver) go on the link line after the kit's own flags
(build-mlx.sh's rust_native array).WALLY_SDK_SWIFT_PATH with cd && pwd. SwiftPM's local package
identity is the directory name, so …/EXTERNAL/Wally/../.. registers as
... Nested checkouts named sdks1 must use that name in
.product(..., package:).Do not point WALLY_SDK_SWIFT_PATH at an unreleased Package.swift whose
sdkVersion zips 404 (v0.20.28 before publish). CI checks out the tagged
SDK tree (ref: v$SDK) whose binaryTargets already exist.
CI macOS runner is macos-26 (Xcode 26 / Swift 6.2). The MLX host resolves
RunanywhereAI/runanywhere-sdks Package.swift, which is
swift-tools-version: 6.2. macos-15 is Xcode 16.4 / Swift 6.1 and fails after
a successful libtool merge with package 'runanywhere-sdks' is using Swift tools version 6.2.0 but the installed version is 6.1.0. macos-14 is Swift
5.10. release.yml must use the same runner as ci.yml.
Linux bottles are not a v1 merge blocker. Windows x64 and macOS arm64 are.
scripts/test/e2e-linux.sh exists for later.
NeuRT / QHexRT only appear in backends when the overlay was applied.
scripts/test/e2e.sh requires neurt / qhexrt when
lib/librac_backend_neurt.a or lib/rac_backend_qhexrt.lib exists — not by
grepping packaged HAS_NEURT FALSE (that stays false; find_package flips it
when the archive is present). Public CI must pass without overlays. Image gen
(cmd_image.rs, gated #[cfg(wally_has_neurt)]) is compiled out unless NeuRT is present.
Public bottles never list neurt or qhexrt. That is the product, not a
test gap. Overlay-rebuild the product binary (WALLY_APPLE_MLX_HOST=ON on
Mac; ARM64 MSVC + QHexRT overlay on Snapdragon).
CMAKE_PREFIX_PATH is not an overlay opt-in. Only WALLY_SDK_KIT
makes e2e require neurt/qhexrt. An ambient overlay prefix from a
previous rebuild will otherwise fail a public-bottle run.nm | grep -q under pipefail (SIGPIPE → false
FAIL). Stream strings -a / nm -a. Darwin MLX proof is
mlx-swift_Cmlx.bundle next to product wally (nm -gU misses Swift
host symbols). First C++ rac_plugin_register(mlx) logs -811; Swift
callbacks then register MLX — noisy, not a miss.HAS_LLAMACPP FALSE. Do not
require llamacpp in e2e. Overlay wally.exe listing only qhexrt
(priority 150) is correct. On-disk GGUF (qwen3.5-2b) cannot run there.QNN_SDK_ROOT +
ADSP_LIBRARY_PATH=%QNN_SDK_ROOT%\lib\hexagon-v81\unsigned, copy
aarch64-windows-msvc QnnHtp.dll / QnnHtpPrepare.dll /
QnnHtpV81Stub.dll / QnnHtpV81CalculatorStub.dll / QnnSystem.dll
next to wally.exe. Overlay 2.47 DLLs vs device 2.41 skels fail; QAIRT
2.48 worked. Pass the *_HNPU directory (--engine qhexrt), not a
GGUF. FastRPC openSession timeouts (~90s) then user-driver fallback
are normal; a second generate while DSP is wedged fails with
Skel failed to process context binary / 0x3ea — taskkill wally.exe
and use a .bat with fully expanded ADSP_LIBRARY_PATH (nested
%QNN_SDK_ROOT% in cmd /c "set A=…&& set B=%A%\…" does not expand).C:\Program Files\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvarsarm64.bat.
CMake/Ninja live under VS CMake extensions; they are not on default PATH.libcurl.lib. Copy from
arm64-windows-static into the kit lib/ before linking (fixed in the
SDK packager for the next kit; do not retag 0.20.28). Wally already
links kit libcurl.lib when present.wally-$V-macos-arm64.tar.gz, Windows
x86_64 zip, Windows arm64 zip, and Linux x86_64
wally-$V-linux-x86_64.tar.gz. NPU (NeuRT/QHexRT) is overlay-only on any
platform..dll/.lib, no .so/.cat) — rac-cli's own overlay build could not
run qwen3.8-27b-1bit-npu (the Bonsai/Maple ternary decoder) out of the
box; validating it required hand-copying librun_main_on_hexagon_skel.so.cat in from the electron-qhexrt npm package as a workaround. Fixed
in runanywhere-sdks' scripts/build/package-private-engine-overlay.sh
(widened the copy filter and added a pass for dsp/win-arm64/). Wally
itself never had the ADSP_LIBRARY_PATH bug the Electron binding had —
fastrpc_win.cpp's exe_dir() fallback naturally resolves for wally.exe
because dependent DLLs/skels are staged flat beside the executable by this
repo's own packaging convention — but that protection is a property of the
packaging layout, not of Wally's code, so it is not something to assume
going forward. Always build a fresh overlay from the actual release
script and run the ternary model against it after any SDK kit-pin bump
that touches QHexRT — do not assume last time's manually-patched overlay
is still representative of what a real user's overlay build produces.kit/, merging
into the same directory tree (overlay/bin/* → kit/bin/, overlay/lib/*
→ kit/lib/, overlay/include/* → kit/include/, overlay/share/... →
kit/share/...) — never kept as a separate sibling overlay/ directory
fed to CMake via a second CMAKE_PREFIX_PATH entry. wally_stage_windows_runtime_dlls()
(cmake/RunAnywhereSDK.cmake) only ever copies from
${RunAnywhere_LIBRARY_DIR}/../bin — i.e. kit/bin — so a same-named
overlay/bin sitting next to kit/ is silently never consulted. Worse,
this fails completely silently: the build succeeds, wally.exe links,
and wally backends --json returns {"backends":[]} with no error naming
QHexRT at all (find_library-style detection in RunAnywhereSDK.cmake
just doesn't find kit/lib/rac_backend_qhexrt.lib because it was never
copied there). If a fresh overlay build reports zero backends, check this
BEFORE suspecting the overlay tarball's contents.qwen3.8-27b-1bit-npu's HostOpFailed had THREE compounding causes,
found and fixed one at a time — a kit-pin bump to v0.20.31 alone was NOT
enough; Wally needed its own additional fix (below) even with a perfectly
merged overlay.runanywhere-sdks' overlay packaging script.qhexrt::qnn::Backend::profile() — called (via the same
engines/qhexrt/qhexrt_session.cpp this repo statically links, same as
the Electron binding) to pick the v75/v79/v81 manifest directory
before the manifest is even parsed — shared its device query with the
code path that opens a real QNN HTP device, so the ternary decoder's
host_only manifest paid for a live QNN device it never needed. Fixed
in neurun v0.20.31 (Backend::profile() no longer shares
ensure_device() with device()) — see that repo's
qhexrt-profile-must-not-create-live-device KB finding.copy-overlay-dlls.cmake globbed *.dll only, so even a correctly
merged overlay (per the bullet above) left the Bonsai skel's .so/
.cat sitting in kit/bin/ and NEVER staged next to wally.exe — the
one place fastrpc_win.cpp's ADSP_LIBRARY_PATH ∪ exe_dir() search
actually looks. Fixed by widening the glob to *.dll *.so *.cat.
fastrpc_win.cpp's SET_PATH/GET_PATH both returning a non-zero rc
(0x14/AEE_EUNSUPPORTED) is EXPECTED and HARMLESS on this driver
(libcdsprpc 11.1.4 simply doesn't implement that control call — see that
file's own header comment) — do not treat it as a symptom of anything.
This was chased as a diagnostic signal once and wasted real device time;
the only signal that matters is whether remote_handle64_open for the
skel itself returns non-zero (0x80000406 = AEE_EUNABLETOLOAD, which
that same file's header comment exhaustively catalogs the causes of —
missing skel, missing/wrong/stale .cat, or — as this entry adds — the
pair never being in the searched directory at all).
Confirmed fixed end to end on a Snapdragon X2 Elite with all three fixes
in place: wally run --engine qhexrt against qwen3.8-27b-1bit-npu opens
the cDSP session and generates correctly ("The capital of France is
Paris.", 0.105 tok/s, 12425 DSP linears).© RunanywhereAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/wally-e2e of RunanywhereAI/wally.
Open the folder on GitHubat commit 39b923e
Wally E2E next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Wally E2E this skillRunanywhereAI/wally | 1.6k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Qwen Code E2E TestingQwenLM/qwen-code | 28k | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Cherry Studio Regression TestsCherryHQ/cherry-studio | 52k | — | ~1.2k | Automated safety check: Pass | AGPL-3.0 | |
| Kane CLI Browser TestingLambdaTest/kane-cli | 247 | — | ~8.4k | Automated safety check: Pass | Apache-2.0 | |
| tmux Real User TestingQwenLM/qwen-code | 28k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| E2E Session Testst0012/cctop | 154 | — | ~727 | Automated safety check: Pass | MIT |
QwenLM/qwen-code
Guides end-to-end testing of the Qwen Code CLI in headless mode with real model calls, MCP test servers and inspection of raw API traffic.
CherryHQ/cherry-studio
Runs Cherry Studio's critical-path regression suite as deterministic Playwright E2E tests through a GitHub workflow on macOS and Windows runners.
LambdaTest/kane-cli
Drives a real browser through the kane-cli tool and designs requirement-linked test suites from a PRD or a plain description, with mobile and cloud-grid runs.
QwenLM/qwen-code
Drives Qwen Code in a real tmux session the way a user would and saves a readable step-by-step transcript of each screen for maintainers to review.
st0012/cctop
A skill your agent uses when smoke-testing cctop end to end — verifying a real coding-agent session is tracked and shows in the panel.
sgl-project/sglang
Generate an e2e profiling trace of an SGLang server run. An agent skill from sgl-project/sglang.
RunanywhereAI/wally
Where Wally logic belongs — command layering, proto as SOT, kit vs CLI ownership, Apple MLX host vs wally-cxx.
RunanywhereAI/wally
Run wally's LLM e2e on Apple Neural Engine (NeuRT) and Snapdragon Hexagon NPU (QHexRT) devices.
RunanywhereAI/wally
Cut an Wally product release (independent of SDK version) — version bump, release:patch label, merge, auto-tag, bottles.
RunanywhereAI/wally
Bump cmake/sdk-pin.cmake to a new published SDK C++ desktop kit (version + SHA-256 + IDL lock).
Categories
Verify a built wally binary against a pinned C++ desktop kit on macOS and Windows. Wally E2E is an agent skill from RunanywhereAI/wally. Verify a built wally binary against a pinned C++ desktop kit on macOS and Windows.
Wally E2E fits situations like: CI smoke/e2e is red; backends are missing; DLLs fail to load; the Apple MLX host fails to link.
Run `npx skills add RunanywhereAI/wally --skill wally-e2e -a claude-code`. Or copy the skill folder (.agents/skills/wally-e2e in RunanywhereAI/wally) into .claude/skills/wally-e2e in your project. Claude Code loads it when a task matches its description.
Run `npx skills add RunanywhereAI/wally --skill wally-e2e -a codex`. Or copy the skill folder (.agents/skills/wally-e2e in RunanywhereAI/wally) into .agents/skills/wally-e2e in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add RunanywhereAI/wally --skill wally-e2e -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wally-e2e, .gemini/skills/wally-e2e, .github/skills/wally-e2e and .opencode/skills/wally-e2e in your project.
SKILL.md names no scripts, command-line tools or credentials: Wally E2E is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Wally E2E is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Wally E2E: Qwen Code E2E Testing (QwenLM/qwen-code, 28k stars), Cherry Studio Regression Tests (CherryHQ/cherry-studio, 52k stars), Kane CLI Browser Testing (LambdaTest/kane-cli, 247 stars) and tmux Real User Testing (QwenLM/qwen-code, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
RunanywhereAI (a GitHub organization) maintains it in RunanywhereAI/wally, which has 1,564 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.
Source: RunanywhereAI/wally on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.