Mobile Parity
kdlbs/kandev
Ensures Kandev UI work uses native mobile interaction patterns instead of compressed desktop adaptations while preserving desktop/mobile capability parity, responsive behavior, and mobile Playwright…
Test Palot's native Electron renderer with preload, IPC, and OpenCode integration.
$ npx skills add ItsWendell/palot --skill test-palot-desktop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ItsWendell/palot test-palot-desktop --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/ItsWendell/palot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/test-palot-desktop .claude/skills/test-palot-desktop && 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 "test-palot-desktop" agent skill from https://github.com/ItsWendell/palot/tree/main/.agents/skills/test-palot-desktop into .claude/skills/test-palot-desktop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-palot-desktop", 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/ItsWendell/palot/tree/main/.agents/skills/test-palot-desktopType 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 ItsWendell/palot --skill test-palot-desktop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ItsWendell/palot test-palot-desktop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItsWendell/palot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/test-palot-desktop .agents/skills/test-palot-desktop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "test-palot-desktop" agent skill from https://github.com/ItsWendell/palot/tree/main/.agents/skills/test-palot-desktop into .agents/skills/test-palot-desktop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-palot-desktop", 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 ItsWendell/palot --skill test-palot-desktop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ItsWendell/palot test-palot-desktop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItsWendell/palot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/test-palot-desktop .cursor/skills/test-palot-desktop && 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 "test-palot-desktop" agent skill from https://github.com/ItsWendell/palot/tree/main/.agents/skills/test-palot-desktop into .cursor/skills/test-palot-desktop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-palot-desktop", 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/ItsWendell/palot.git --path .agents/skills/test-palot-desktop--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 ItsWendell/palot --skill test-palot-desktop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ItsWendell/palot test-palot-desktop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItsWendell/palot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/test-palot-desktop .gemini/skills/test-palot-desktop && 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 "test-palot-desktop" agent skill from https://github.com/ItsWendell/palot/tree/main/.agents/skills/test-palot-desktop into .gemini/skills/test-palot-desktop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-palot-desktop", 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 ItsWendell/palot test-palot-desktopInstalls 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 ItsWendell/palot --skill test-palot-desktop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ItsWendell/palot.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/test-palot-desktop .github/skills/test-palot-desktop && 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 "test-palot-desktop" agent skill from https://github.com/ItsWendell/palot/tree/main/.agents/skills/test-palot-desktop into .github/skills/test-palot-desktop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-palot-desktop", 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 ItsWendell/palot --skill test-palot-desktop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ItsWendell/palot test-palot-desktop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItsWendell/palot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/test-palot-desktop .opencode/skills/test-palot-desktop && 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 "test-palot-desktop" agent skill from https://github.com/ItsWendell/palot/tree/main/.agents/skills/test-palot-desktop into .opencode/skills/test-palot-desktop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-palot-desktop", 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.
test-palot-desktopTest Palot's native Electron renderer with preload, IPC, and OpenCode integration.
Test Palot Desktop is an agent skill from ItsWendell/palot. Test Palot's native Electron renderer with preload, IPC, and OpenCode integration. Use when adding or running desktop E2E scenarios, interactively inspecting the native UI, checking accessibility, focus, or resizing, capturing screenshots, proving live hydration, or smoke-testing renderer/preload/IPC behavior. Use palot-performance for measurements and palot-desktop-dev for build and channel work.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Testing & QA, covering End-to-end testing and Mobile UI design. The repository describes itself as: Just another desktop client for OpenCode 2. Manage projects, sessions, parallel agents, requests, and changes on Linux and macOS. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5b71bf9. 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.
Shell commands in SKILL.md call:
bungitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Test Palot Desktop loads about 1.9k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 973 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 ItsWendell/palot at commit 5b71bf9, republished under its MIT licence (© ItsWendell). 973 words, ~1,872 tokens.
.claude/skills/test-palot-desktop/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill for the native Electron client. A renderer-only Vite page does not prove the preload, IPC, or OpenCode connection.
Use repository-root ../../../docs/agent-development.md for verification selection, launch, renderer attachment, artifact paths, and cleanup. Read ../../../docs/desktop-testing.md when authoring scenarios or resolving test-architecture questions.
bun run test:e2e -- <scenario>. The harness is hidden, credential-free, isolated, and self-cleaning.--visible.--video (requires ffmpeg, implies --visible --keep). Captures the explicit Electron renderer, not desktop chrome/audio. Retains video.mp4 and video.json; recording adds overhead and is not compositor/FPS evidence. Inspect representative frames before presenting the private recording.--inspect, then run the exact agent-browser connect '<renderer-websocket>' command printed by the harness. Use the renderer target rather than browser-level CDP because Electron cannot create a new target. Stop the retained command with Ctrl-C.List deterministic scenarios with bun run test:e2e:list. Failures retain available evidence under the primary checkout's .local/desktop-e2e/; report the absolute run path and which artifacts exist. Early setup failures may have no screenshot.
Complete only the selected path below. Running an isolated scenario does not require live inspection or a full shell smoke pass.
Use the scenario result as evidence for the behavior it asserts. Scripted data in an isolated OpenCode service is valid integration evidence; it does not prove live provider behavior. Inspect failures before widening the test scope.
Report the scenario command, result, unresolved failures, and retained artifact path when present. A passing nonvisual scenario needs neither real user data nor screenshots. For visual QA, also inspect the affected state and save a screenshot; use before/after images when both states are available.
Use this path only for real-provider behavior or requested live inspection. Follow the live development and renderer attachment commands in ../../../docs/agent-development.md. Reuse a healthy development terminal owned by this task when possible. Keep the terminal or spawned process identifier for cleanup.
Use bun run dev for hidden integration, dev:visible for visual inspection, or dev:focus when focus behavior matters. Use the development launcher rather than signed packaging. An unsigned package check requires the user's request.
Live Palot connects to the user's shared OpenCode 2 service. Start with read-only navigation. Create sessions, submit prompts, interrupt work, or answer requests only when the test scope authorizes those changes, and use a disposable test session.
Run from the repository root. Resolve the primary checkout and create one QA directory:
primary_checkout="$(dirname "$(git rev-parse --path-format=absolute --git-common-dir)")"
qa_stamp="$(date +%Y%m%d-%H%M%S)"
qa_dir="$primary_checkout/.local/desktop-qa/$qa_stamp"
mkdir -p "$qa_dir"
printf '%s\n' "$qa_dir"Keep screenshots, copied logs, and notes in this directory. Do not put project names, session titles, prompt text, credentials, or tokens in artifact names. Inspect each screenshot for sensitive data before you show or attach it.
Attach to the exact renderer WebSocket returned by dev:info, as documented in the development guide. Confirm its URL matches rendererUrl before interacting. A refused connection means Electron is not ready; it does not justify browser auto-discovery or a browser-level CDP connection.
Preserve the launcher's ELECTRON_RUN_AS_NODE removal. If a diagnostic direct launch is necessary, remove that variable from the copied environment first.
Check that the renderer responds and has no main-process or preload error that invalidates the result. For hydration QA, verify loading ends and selecting a real session shows hydrated data, or report the specific empty/connection state. An empty state does not prove successful session hydration. A visible window is required for visual QA, not for hidden integration checks.
Inspect fresh accessibility state after each interaction. Prefer indexed accessibility actions. Use coordinates only when the accessibility tree cannot expose the control.
Test the affected interaction and its reverse state where relevant. Run the following full shell pass only for explicit shell smoke QA or changes that affect these surfaces together:
920 x 640, and check navigation, transcript, composer, and inspector for clipping or inaccessible content.For a visual change, capture before and after images when both builds or states are available. For motion or timing behavior, capture a short video if the available Computer Use surface supports it. Do not claim a native smoke pass from a renderer-only browser preview.
Keep the dev terminal, Electron window, selected OpenCode state, and QA directory alive while the user may inspect the result or request another change. A response boundary does not end the QA lifecycle.
When the user confirms completion, or no review remains, send Ctrl-C to the retained terminal session. Confirm that the terminal process exited. Stop only that owned session or a process identifier captured when it started. Preserve the QA directory unless the user requests removal.
Report:
State what the evidence proves and what remains unverified. A loading screen or mock data cannot establish live hydration; a renderer-only browser preview cannot establish native integration. Visual QA requires a saved native-client screenshot, but nonvisual checks do not.
© ItsWendell, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/test-palot-desktop of ItsWendell/palot.
Open the folder on GitHubat commit 5b71bf9
Test Palot Desktop 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 |
|---|---|---|---|---|---|---|
| Test Palot Desktop this skillItsWendell/palot | 191 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Mobile Paritykdlbs/kandev | 912 | — | ~3.7k | Automated safety check: Pass | AGPL-3.0 | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| Uloop Replay Inputkurotu/VRCQuestTools | 373 | 3 repos | ~615 | Automated safety check: Pass | MIT | |
| Ui4 Convert Testspayloadcms/payload | 45k | — | ~3.5k | Automated safety check: Pass | MIT |
kdlbs/kandev
Ensures Kandev UI work uses native mobile interaction patterns instead of compressed desktop adaptations while preserving desktop/mobile capability parity, responsive behavior, and mobile Playwright…
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
kurotu/VRCQuestTools
Replay recorded PlayMode keyboard and mouse input. An agent skill from kurotu/VRCQuestTools.
payloadcms/payload
A skill your agent uses when UI changes are complete and e2e tests need updating.
stackia/rtp2httpd
Write, run, review, or debug rtp2httpd E2E tests and their harness in e2e/ and scripts/run-e2e.sh.
ItsWendell/palot
A skill your agent uses when changing Palot code, file, or diff rendering built on @pierre/diffs, including the Changes tab, file views, CodeView, parsing, selection, annotations, workers, or Shiki…
ItsWendell/palot
A skill your agent uses when changing Palot file-tree behavior built on @pierre/trees, especially the Changes tab tree, selection, search, rename, drag and drop, Git status, or theme integration.
ItsWendell/palot
A skill your agent uses when adding, updating, composing, or debugging source components managed by shadcn; changing apps/desktop/components.json, registries, or presets; or running the shadcn CLI.
ItsWendell/palot
Check or update Palot's OpenCode CLI, client, protocol/schema and runtime contract.
ItsWendell/palot
Measure and improve Palot desktop runtime performance. An agent skill from ItsWendell/palot.
ItsWendell/palot
Audit Palot's OpenCode 2 operation and event coverage, analyzer or baseline regressions, published contract-surface deltas, or reviewed baseline updates.
Categories
Test Palot's native Electron renderer with preload, IPC, and OpenCode integration. Test Palot Desktop is an agent skill from ItsWendell/palot. Test Palot's native Electron renderer with preload, IPC, and OpenCode integration.
Test Palot Desktop fits situations like: running desktop E2E scenarios; interactively inspecting the native UI; checking accessibility; capturing screenshots.
Run `npx skills add ItsWendell/palot --skill test-palot-desktop -a claude-code`. Or copy the skill folder (.agents/skills/test-palot-desktop in ItsWendell/palot) into .claude/skills/test-palot-desktop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ItsWendell/palot --skill test-palot-desktop -a codex`. Or copy the skill folder (.agents/skills/test-palot-desktop in ItsWendell/palot) into .agents/skills/test-palot-desktop 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 ItsWendell/palot --skill test-palot-desktop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-palot-desktop, .gemini/skills/test-palot-desktop, .github/skills/test-palot-desktop and .opencode/skills/test-palot-desktop in your project.
Going by SKILL.md and its folder, Test Palot Desktop needs the command-line tools its instructions call (bun and git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Test Palot Desktop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k 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 Test Palot Desktop: Mobile Parity (kdlbs/kandev, 912 stars), Web Application Testing (anthropics/skills, 180k stars), TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars) and Uloop Replay Input (kurotu/VRCQuestTools, 373 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ItsWendell (a GitHub user) maintains it in ItsWendell/palot, which has 191 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: ItsWendell/palot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.