Agent skill

Nexu E2E Test

by nexu-io in nexu-io/nexu

A skill your agent uses when verifying OpenClaw gateway fixes end-to-end, testing skill loading after restart, or running integration tests against the local Nexu+OpenClaw stack.

MITAuto-check passedTesting & QA

Install Nexu E2E Test

skills CLI
$ npx skills add nexu-io/nexu --skill nexu-e2e-test -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nexu-io/nexu nexu-e2e-test --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nexu-io/nexu.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/localdev/nexu-e2e-test .claude/skills/nexu-e2e-test && rm -rf skills-src

Use ~/.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/

Facts

Skill name
nexu-e2e-test
GitHub stars
3.3k
Token cost
~1.7k tokens
SKILL.md length
562 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when verifying OpenClaw gateway fixes end-to-end, testing skill loading after restart, or running integration tests against the local Nexu+OpenClaw stack.

  • Works in 3 steps: Vitest Unit/Integration Tests (Primary) → openclaw agent CLI or HTTP Smoke Tests → Connected Channel (Slack/Discord)
  • Verifying OpenClaw gateway fixes end-to-end
  • SKILL.md covers Known Constraints, Viable Test Methods, Gateway Setup for Testing and WebSocket Protocol Reference, plus 2 more sections
  • Calls python3, pnpm and npx

What it does

Nexu E2E Test is an agent skill from nexu-io/nexu. Use when verifying OpenClaw gateway fixes end-to-end, testing skill loading after restart, or running integration tests against the local Nexu+OpenClaw stack. Triggers on "e2e test", "verify fix", "test gateway", "test skills loading".

Its SKILL.md is about 1.7k 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 and Integration testing. It works with Slack, Discord, Vitest and WeChat. The repository describes itself as: The simplest desktop client for OpenClaw 🦞 — bridge your Agent to WeChat, Feishu, Slack & Discord in one click. Works with Claude Code, Codex & any LLM. BYOK, Oauth… The licence is MIT.

When your agent uses it

  • Verifying OpenClaw gateway fixes end-to-end
  • Testing skill loading after restart
  • Running integration tests against the local Nexu+OpenClaw stack
  • Test skills loading

Example prompts

  • “e2e test”
  • “verify fix”
  • “test gateway”
  • “/nexu-e2e-test”

Requirements

  • Python 3
  • Node.js

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Vitest Unit/Integration Tests (Primary)
  2. openclaw agent CLI or HTTP Smoke Tests
  3. Connected Channel (Slack/Discord)

What it can do on your machine

Read from SKILL.md and the folder at commit dadfb1c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • python3
    • pnpm
    • npx
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, npx and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Nexu E2E Test loads about 1.7k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 562 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from nexu-io/nexu at commit dadfb1c, republished under its MIT licence (© nexu-io). 562 words, ~1,687 tokens.

Download SKILL.mdSave it as .claude/skills/nexu-e2e-test/SKILL.md (or your agent's skills folder).
name
nexu-e2e-test
description
Use when verifying OpenClaw gateway fixes end-to-end, testing skill loading after restart, or running integration tests against the local Nexu+OpenClaw stack. Triggers on "e2e test", "verify fix", "test gateway", "test skills loading".

Nexu E2E Testing — OpenClaw Gateway

Run end-to-end verification of the Nexu → OpenClaw gateway stack locally.

Known Constraints

The OpenClaw gateway has architectural constraints that block naive E2E approaches. Read this before attempting any gateway testing.

ApproachBlockerStatus
HTTP POST /v1/chat/completionsEndpoint exists (openai-http.ts) but uses agentCommand() — same embedded agent path as CLI, bypasses session storeWorks for smoke tests (same as CLI)
HTTP POST /v1/responsesEndpoint exists (openresponses-http.ts) but also uses agentCommand()Works for smoke tests (same as CLI)
WebSocket chat.sendRequires device pairing for operator.write scope — clearUnboundScopes() in message-handler.ts:483-488 clears all self-declared scopes without device identityDead end without device keys
openclaw agent --session-idUses embedded agent path (sessionKey=unknown), bypasses session store cacheWorks for smoke tests, NOT for session-store bugs
Direct module import from distRollup bundles with hashed filenames, can't import individual modulesDead end
tsx from /tmpModule resolution fails for imports outside project rootDead end
Vitest in-project .test.tsFull module resolution, mocking, TypeScript supportPrimary method

Key insight: All HTTP and CLI approaches use the embedded agent path via agentCommand() (imported from commands/agent.js). Only messages arriving through connected channels (Slack/Discord) go through dispatchInboundMessage() → auto-reply pipeline → ensureSkillSnapshot(), which is the code path that uses the session store.

Viable Test Methods

1. Vitest Unit/Integration Tests (Primary)

Write .test.ts files inside the OpenClaw worktree and run with vitest. This is the only reliable way to test internal functions like ensureSkillsWatcher, getSkillsSnapshotVersion, ensureSkillSnapshot.

bash
cd <OPENCLAW_WORKTREE>
OPENCLAW_TEST_FAST=1 npx vitest run src/agents/skills/refresh.test.ts

Key patterns:

  • Mock chokidar with vi.mock("chokidar", ...)
  • Use await import("./refresh.js") for dynamic imports after mocking
  • Use unique workspace paths per test (/tmp/test-<name>-${Date.now()})
  • OPENCLAW_TEST_FAST=1 skips filesystem scanning in session-updates
2. openclaw agent CLI or HTTP Smoke Tests

For "do skills load after restart" verification. Does NOT test session-store caching logic (all use embedded agent path).

CLI approach:

bash
# Prerequisites: gateway must be running with a valid workspace
OPENCLAW_STATE_DIR=~/.openclaw \
OPENCLAW_CONFIG_PATH=<config-with-local-workspace> \
openclaw agent --session-id "<session>" --message "<msg>" --json --timeout 60

HTTP approach (OpenAI-compatible):

bash
curl -s http://localhost:18789/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <gw-token>" \
  -d '{"model":"default","messages":[{"role":"user","content":"list your skills"}]}'

Parse results (CLI JSON output):

bash
| python3 -c "
import json,sys
d=json.load(sys.stdin)
entries=d.get('result',{}).get('meta',{}).get('systemPromptReport',{}).get('skills',{}).get('entries',[])
managed=[e['name'] for e in entries if e['name'] in ('static-deploy','test-greeting')]
print(f'Skills: {len(entries)}, Managed: {managed}')
"
3. Connected Channel (Slack/Discord)

The only way to test the full auto-reply pipeline with session-store caching. Requires a running channel with active bot.

Gateway Setup for Testing

Config Pitfall: /data/ workspace path

Production configs have "workspace": "/data/openclaw/workspaces/..." which doesn't exist locally. Create a test config:

bash
cat ~/.openclaw/openclaw.json | python3 -c "
import json, sys
cfg = json.load(sys.stdin)
cfg['agents']['list'][0]['workspace'] = '/tmp/openclaw-test-workspace'
json.dump(cfg, sys.stdout, indent=2)
" > /tmp/openclaw-test-config.json
Show full SKILL.md (218 more words)Show less
Start gateway with test config
bash
OPENCLAW_STATE_DIR=~/.openclaw \
OPENCLAW_CONFIG_PATH=/tmp/openclaw-test-config.json \
openclaw gateway run --allow-unconfigured --bind loopback --port 18789 --force --verbose
Wait for port readiness (not just process start)
bash
for i in $(seq 1 15); do
  lsof -i :18789 -P 2>/dev/null | grep -q LISTEN && break
  sleep 1
done

WebSocket Protocol Reference

If you ever need to attempt WS testing (e.g., after implementing device pairing):

DetailValue
Frame format{"type": "req", "id": "<uuid>", "method": "...", "params": {...}} (NOT JSON-RPC)
Protocol version3 (as of 2026.2.25)
Valid client IDsgateway-client, cli, webchat-ui, openclaw-control-ui, node-host, test, webchat, fingerprint, openclaw-probe, openclaw-macos, openclaw-ios, openclaw-android (defined in protocol/client-info.ts)
Valid client modeswebchat, cli, ui, backend, node, probe, test
Auth flowChallenge → connect RPC with nonce → needs device identity for write scopes
Scope for chat.sendoperator.write — requires device pairing, token-only auth gets zero scopes
Scope exceptioncontrolUiAuthPolicy.allowBypass: true preserves scopes without device identity (dev/control-UI only, see message-handler.ts:489-542)

Restart Verification Checklist

When verifying a fix that involves skills/sessions after gateway restart:

  1. Build the fix: cd <worktree> && pnpm build
  2. Link globally: cd <worktree> && pnpm link --global
  3. Verify version: openclaw --version
  4. Write unit tests in the worktree for core logic (vitest)
  5. Run smoke test: gateway restart → openclaw agent → check skill count
  6. Check sessions.json at ~/.openclaw/agents/<agent>/sessions/sessions.json for snapshot versions
  7. Check logs at gateway stdout for skill watcher events

Session Store Locations

~/.openclaw/agents/<agent-id>/sessions/sessions.json   # Session entries with skillsSnapshot
~/.openclaw/agents/<agent-id>/sessions/<session-id>.jsonl  # Session transcript

Key fields in session entry:

  • skillsSnapshot.version — timestamp, should be non-zero after fix
  • skillsSnapshot.skills[] — array of loaded skill names and locations
  • skillsSnapshot.prompt — the <available_skills> XML injected into system prompt

© nexu-io, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/localdev/nexu-e2e-test of nexu-io/nexu.

Open the folder on GitHubat commit dadfb1c

Compare with similar skills

Nexu E2E Test 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.

Nexu E2E Test compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nexu E2E Test this skillnexu-io/nexu3.3k—~1.7kAutomated safety check: PassMIT
Use Avibeavibe-bot/avibe622—~2.5kAutomated safety check: PassMIT
Designing TestsCloudAI-X/claude-workflow-v21.4k1 repos~1.5kAutomated safety check: PassMIT
Testing Guidemobazha/mobazha-unified165—~1.7kAutomated safety check: PassMPL-2.0
Core Testingmacalbert/envilder138—~1.4kAutomated safety check: PassMIT
Angular TestingKilo-Org/kilo-marketplace190—~2.9kAutomated safety check: PassMIT

Similar skills

  • Use Avibe

    avibe-bot/avibe

    Safely inspect and modify local Avibe configuration, routing, runtime settings, watches, scheduled tasks, Avibe Cloud remote access, and operational state.

    622 GitHub stars~2.5k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Designing Tests

    CloudAI-X/claude-workflow-v2

    Designs and implements testing strategies for any codebase. An agent skill from CloudAI-X/claude-workflow-v2.

    1.4k GitHub starsUsed in 1 repo~1.5k tokens
    Testing & QAAuto-check passed
  • Testing Guide

    mobazha/mobazha-unified

    Guide for writing unit tests (Vitest), integration tests, and E2E tests (Playwright) following Mobazha project conventions.

    165 GitHub stars~1.7k tokensUpdated 5 days ago
    Testing & QAAuto-check passed
  • Core Testing

    macalbert/envilder

    Apply Envilder testing conventions when a verification contract selects Vitest unit tests, integration tests, or LocalStack e2e evidence for command handlers, domain entities, adapters, CLI, or…

    138 GitHub stars~1.4k tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • Angular Testing

    Kilo-Org/kilo-marketplace

    Write unit and integration tests for Angular v20+ applications using Vitest or Jasmine with TestBed and modern testing patterns.

    190 GitHub stars~2.9k tokensUpdated 10 days ago
    Testing & QAAuto-check passed
  • Electron App Automation

    vercel-labs/agent-browser

    Official

    Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.

    44k GitHub starsUsed in 5 repos~1.7k tokens
    Productivity & AutomationAuto-check passed

More from nexu-io/nexu

All 10 skills in this repo
  • Libtv Video

    nexu-io/nexu

    Seedance 2.0 video & image generation via LibTV Gateway - AI text-to-video, image-to-video, video continuation, style transfer, and text-to-image using Seedance 2.0 model.

    3.3k GitHub stars~3.5k tokensUpdated 5 mo ago
    Auto-check passed
  • Nano Banana

    nexu-io/nexu

    Generate or edit images via Nano Banana image models. An agent skill from nexu-io/nexu.

    3.3k GitHub stars~757 tokensUpdated 5 mo ago
    Auto-check passed
  • All-in-one image generation with Gemini models. An agent skill from nexu-io/nexu.

    3.3k GitHub stars~870 tokensUpdated 5 mo ago
    Auto-check passed
  • 一句话生成大师级海报、书籍封面、专辑封面和各类设计作品。无需懂PS、配色或艺术史,AI自动选择最佳风格(基于33+位传奇设计师)。支持多平台多比例:公众号封面(21:9)、小红书配图(3:4)、文章配图(16:9)、书籍封面(9:16)、专辑封面(1:1)、电影海报(9:16)。包含AI提示词优化、风格对比、图生图转换功能。触发词:"Mondo风格"、"书籍封面设计"、"专辑封面"、"海报设计"…

    3.3k GitHub starsUsed in 1 repo~4.1k tokens
    Auto-check passed
  • Static Deploy

    nexu-io/nexu

    Deploy static pages to nexu.space. An agent skill from nexu-io/nexu.

    3.3k GitHub stars~989 tokensUpdated 5 mo ago
    Auto-check passed
  • Process PR Reviews

    nexu-io/nexu

    A skill your agent uses when the user asks to process, triage, fetch, view, count, list, or resolve review feedback in a GitHub PR.

    3.3k GitHub stars~2.5k tokensUpdated 5 mo ago
    Auto-check passed

Categories

Questions about Nexu E2E Test

What does Nexu E2E Test do?

A skill your agent uses when verifying OpenClaw gateway fixes end-to-end, testing skill loading after restart, or running integration tests against the local Nexu+OpenClaw stack. Nexu E2E Test is an agent skill from nexu-io/nexu. Use when verifying OpenClaw gateway fixes end-to-end, testing skill loading after restart, or running integration tests against the local Nexu+OpenClaw stack.

When should I use Nexu E2E Test?

Nexu E2E Test fits situations like: verifying OpenClaw gateway fixes end-to-end; testing skill loading after restart; running integration tests against the local Nexu+OpenClaw stack; test skills loading.

How do I install Nexu E2E Test in Claude Code?

Run `npx skills add nexu-io/nexu --skill nexu-e2e-test -a claude-code`. Or copy the skill folder (skills/localdev/nexu-e2e-test in nexu-io/nexu) into .claude/skills/nexu-e2e-test in your project. Claude Code loads it when a task matches its description.

How do I install Nexu E2E Test in Codex?

Run `npx skills add nexu-io/nexu --skill nexu-e2e-test -a codex`. Or copy the skill folder (skills/localdev/nexu-e2e-test in nexu-io/nexu) into .agents/skills/nexu-e2e-test in your project. Codex loads it when a task matches its description.

Can I use Nexu E2E Test in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nexu-io/nexu --skill nexu-e2e-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nexu-e2e-test, .gemini/skills/nexu-e2e-test, .github/skills/nexu-e2e-test and .opencode/skills/nexu-e2e-test in your project.

What does Nexu E2E Test need to run?

Going by SKILL.md and its folder, Nexu E2E Test needs the command-line tools its instructions call (python3, pnpm, npx and curl). Our summary lists: Python 3; Node.js.

Does Nexu E2E Test access the network?

SKILL.md contains no URLs. Its commands use npx and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Nexu E2E Test safe to install?

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.

What licence does Nexu E2E Test use?

Nexu E2E Test is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Nexu E2E Test use?

About 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Nexu E2E Test?

Skills that share tags, products or a category with Nexu E2E Test: Use Avibe (avibe-bot/avibe, 622 stars), Designing Tests (CloudAI-X/claude-workflow-v2, 1.4k stars), Testing Guide (mobazha/mobazha-unified, 165 stars) and Core Testing (macalbert/envilder, 138 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Nexu E2E Test?

nexu-io (a GitHub organization) maintains it in nexu-io/nexu, which has 3,282 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on April 26, 2026.

Source: nexu-io/nexu on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.