Agent skill · Testing & QA

nexu-e2e-test

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".

nexu95,528★ · +2,037/wk · 5 repos on radarProfile →
claude-codecodexMIT
Install
npx skills add nexu-io/nexu --skill nexu-e2e-test --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 7 KB
Bundled scripts: none
Path: skills/localdev/nexu-e2e-test/SKILL.md
Open the folder on GitHub →
Where it comes from
Source: nexu-io/nexu
Stars: 3,239
Language: TypeScript
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# 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.** | Approach | Blocker | Status | |----------|---------|--------| | HTTP `POST /v1/chat/completions` | Endpoint exists (`openai-http.ts`) but uses `agentCommand()` — same embedded agent path as CLI, bypasses session store | Works for smoke tests (same as CLI) | | HTTP `POST /v1/responses` | Endpoint exists (`openresponses-http.ts`) but also uses `agentCommand()` | Works for smoke tests (same as CLI) | | WebSocket `chat.send` | Requires device pairing for `operator.write` scope — `clearUnboundScopes()` in `message-handler.ts:483-488` clears all self-declared scopes without device identity | Dead end without device keys | | `openclaw agent --session-id` | Uses embedded agent path (`sessionKey=unknown`), bypasses session store cache | Works for smoke tests, NOT for session-store bugs | | Direct module import from dist | Rollup bundles with hashed filenames, can't import individual modules | Dead end | | `tsx` from `/tmp`

What's inside
Steps it walks through
  1. Known Constraints
  2. Viable Test Methods
  3. 1. Vitest Unit/Integration Tests (Primary)
  4. 2. openclaw agent CLI or HTTP Smoke Tests
  5. 3. Connected Channel (Slack/Discord)
  6. Gateway Setup for Testing
  7. Config Pitfall: /data/ workspace path
  8. Start gateway with test config
  9. Wait for port readiness (not just process start)
  10. WebSocket Protocol Reference
  11. Restart Verification Checklist
  12. Session Store Locations
Commands it runs
cd <OPENCLAW_WORKTREE>
openclaw agent --session-id "<session>" --message "<msg>" --json --timeout 60
curl -s http://localhost:18789/v1/chat/completions \
import json,sys
cat ~/.openclaw/openclaw.json | python3 -c "
import json, sys
cfg = json.load(sys.stdin)
openclaw gateway run --allow-unconfigured --bind loopback --port 18789 --force --verbose
for i in $(seq 1 15); do
lsof -i :18789 -P 2>/dev/null | grep -q LISTEN && break
More from nexu
All skills →
About this skill
What does the nexu-e2e-test skill do?

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".

How do I install it?

Run `npx skills add nexu-io/nexu --skill nexu-e2e-test --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From nexu-io/nexu, a repository with 3,239 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going