Agent skill

Xray UI Dev

by bropines in bropines/xray-config-ui-editor

Development and maintenance of Xray Config UI Editor. An agent skill from bropines/xray-config-ui-editor.

MITAuto-check passedFrontend & Design

Install Xray UI Dev

skills CLI
$ npx skills add bropines/xray-config-ui-editor --skill xray-ui-dev -a claude-code

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

GitHub CLI
$ gh skill install bropines/xray-config-ui-editor xray-ui-dev --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/bropines/xray-config-ui-editor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.gemini/skills/xray-ui-dev .claude/skills/xray-ui-dev && 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
xray-ui-dev
GitHub stars
119
Token cost
~942 tokens
SKILL.md length
402 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Development and maintenance of Xray Config UI Editor. An agent skill from bropines/xray-config-ui-editor.

  • Works in 4 steps: Type Safety: Always maintain strict… → Immutability: Use produce from immer… → Validation: Add validation logic for new… → …
  • Modifying the React frontend
  • SKILL.md covers Tech Stack & Workflow, State Management (Zustand), Xray Configuration Logic and UI Components, plus 2 more sections
  • Calls bun

What it does

Xray UI Dev is an agent skill from bropines/xray-config-ui-editor. Development and maintenance of Xray Config UI Editor. Use this skill when modifying the React frontend, Zustand store, Xray-core configuration logic, or Remnawave integration.

Its SKILL.md is about 940 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 Frontend & Design, covering State management. It works with Zustand and React. The licence is MIT.

When your agent uses it

  • Modifying the React frontend
  • Xray-core configuration logic
  • Remnawave integration

Example prompts

  • “/xray-ui-dev”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Type Safety: Always maintain strict TypeScript types for Xray config objects.
  2. Immutability: Use produce from immer when updating the store to avoid direct state mutation.
  3. Validation: Add validation logic for new config sections to prevent Xray-core from crashing.
  4. Tailwind 4: Use modern Tailwind 4 features for styling.

What it can do on your machine

Read from SKILL.md and the folder at commit 95712f6. 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:

    • bun

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

  • Network

    No URLs in SKILL.md.

    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

Xray UI Dev loads about 942 tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 402 words of instructions outside code blocks.

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

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 bropines/xray-config-ui-editor at commit 95712f6, republished under its MIT licence (© bropines). 402 words, ~942 tokens.

Download SKILL.mdSave it as .claude/skills/xray-ui-dev/SKILL.md (or your agent's skills folder).
name
xray-ui-dev
description
Development and maintenance of Xray Config UI Editor. Use this skill when modifying the React frontend, Zustand store, Xray-core configuration logic, or Remnawave integration.

Xray UI Dev

This skill provides specialized knowledge for developing the Xray Config UI Editor, a static web-based GUI for Xray-core.

Tech Stack & Workflow

  • Runtime: Bun (use bun install, bun run dev, bun run build)
  • Frontend: React 19 (TypeScript), Vite 7
  • Styling: Tailwind CSS 4
  • State Management: Zustand 5 + Immer (see src/store/configStore.ts)
  • Icons: Phosphor Icons (@phosphor-icons/react)
  • Visuals: React Flow (@xyflow/react) for topology visualization
  • Editor: CodeMirror 6 (@codemirror/*, @platformos/lang-jsonc) for JSON/JSONC editing — not Monaco.

State Management (Zustand)

The application state is managed in src/store/configStore.ts.

  • Use useConfigStore to access the Xray configuration and Remnawave state.
  • Most CRUD actions go through the resolveMutableConfig helper (parses rawConfigText, falls back to config) rather than produce directly — see that file's actions for the pattern.
  • Configuration is persisted in IndexedDB (src/utils/indexedDbStorage.ts) under the xray-config-storage key, with a one-time migration from legacy localStorage. The store exposes hasHydrated/setHasHydrated — gate any code that reads/writes the store on mount behind hasHydrated (see App.tsx), since the IndexedDB read is async.
Common Actions
  • updateSection(section, data): Replaces a top-level Xray config section.
  • addItem(section, item): Adds an inbound or outbound.
  • updateItem(section, index, item): Updates a specific item in a list.
  • saveToRemnawave(): Pushes the current config to the linked Remnawave profile.

Xray Configuration Logic

  • Schema: The hand-authored source of truth is Zod, in src/core/xray/schemas/**. A separate JSON Schema (src/utils/config.schema.json, auto-generated by bun run schema:generate from Xray-core's Go sources) backs the raw-JSON editor's Ajv linter — the two can drift, see the plan doc / recent commits before assuming they agree.
  • Validation: src/core/validators/index.ts (Zod-based; validateFullConfig covers the whole config) and src/core/diagnostics/index.ts (runFullDiagnostics, semantic checks like dangling routing targets). saveToRemnawave() and saveActiveProfile() in configStore.ts both gate on runFullDiagnostics critical findings.
  • Protocols: Supports VMess, VLESS, Trojan, Shadowsocks, Hysteria2, Wireguard, etc.
Show full SKILL.md (123 more words)Show less

UI Components

  • Modals: Most editing happens in modals located in src/components/editors/.
  • UI Elements: Reusable components are in src/components/ui/ (Button, Icon, Modal, etc.).
  • Topology: Traffic flow visualization is in src/components/topology/.

Key Files to Reference

  • src/store/configStore.ts: Central state and logic.
  • src/utils/config.schema.json: Auto-generated JSON Schema for the raw-JSON editor's linter (see scripts/generate-xray-schema.cjs).
  • src/core/api/remnawave-client.ts: API client for Remnawave integration.
  • src/core/validators/index.ts: Zod-based configuration validation logic.
  • src/core/diagnostics/index.ts: Semantic diagnostics (dangling tags, incompatible flags) that gate save/push.

Best Practices

  1. Type Safety: Always maintain strict TypeScript types for Xray config objects.
  2. Immutability: Use produce from immer when updating the store to avoid direct state mutation.
  3. Validation: Add validation logic for new config sections to prevent Xray-core from crashing.
  4. Tailwind 4: Use modern Tailwind 4 features for styling.

© bropines, 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 .gemini/skills/xray-ui-dev of bropines/xray-config-ui-editor.

Open the folder on GitHubat commit 95712f6

Compare with similar skills

Xray UI Dev 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.

Xray UI Dev compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Xray UI Dev this skillbropines/xray-config-ui-editor119—~942Automated safety check: PassMIT
Opik Frontend Patternscomet-ml/opik22k—~1.1kAutomated safety check: PassApache-2.0
Zustand Store Patternsstellar/laboratory112—~1.4kAutomated safety check: PassApache-2.0
State Managementemanueleielo/deepagents-open-lovable111—~1.7kAutomated safety check: PassNone
Frontend Large Feature Architecturelangfuse/langfuse35k—~1.4kAutomated safety check: PassCustom licence
React ExpertJeffallan/claude-skills12k—~1.4kAutomated safety check: PassMIT

Similar skills

  • Sets the conventions for the Opik React frontend: TanStack Query for data, Zustand for shared state, one-way layer imports and a fix for Google Translate crashes.

    22k GitHub stars~1.1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Zustand Store Patterns

    stellar/laboratory

    Reference for the two Zustand store patterns in Stellar Lab — main store (querystring) and transaction flow store (sessionStorage).

    112 GitHub stars~1.4k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • State Management

    emanueleielo/deepagents-open-lovable

    State management patterns - Zustand, Jotai, Context. An agent skill from emanueleielo/deepagents-open-lovable.

    111 GitHub stars~1.7k tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • Architect large or state-heavy Langfuse frontend features. An agent skill from langfuse/langfuse.

    35k GitHub stars~1.4k tokensUpdated today
    Frontend & DesignAuto-check passed
  • React Expert

    Jeffallan/claude-skills

    Builds React 19 components in TypeScript with Server Components, useActionState forms, custom hooks and state libraries, checked with tsc and React Testing Library.

    12k GitHub stars~1.4k tokensUpdated 4 days ago
    Frontend & DesignAuto-check passed
  • React Flow Node TS

    microsoft/skills

    Official

    Create React Flow node components with TypeScript types, handles, and Zustand integration.

    3.1k GitHub starsUsed in 6 repos~502 tokens
    Frontend & DesignAuto-check passed

Works with

Questions about Xray UI Dev

What does Xray UI Dev do?

Development and maintenance of Xray Config UI Editor. An agent skill from bropines/xray-config-ui-editor. Xray UI Dev is an agent skill from bropines/xray-config-ui-editor. Development and maintenance of Xray Config UI Editor.

When should I use Xray UI Dev?

Xray UI Dev fits situations like: modifying the React frontend; xray-core configuration logic; remnawave integration.

How do I install Xray UI Dev in Claude Code?

Run `npx skills add bropines/xray-config-ui-editor --skill xray-ui-dev -a claude-code`. Or copy the skill folder (.gemini/skills/xray-ui-dev in bropines/xray-config-ui-editor) into .claude/skills/xray-ui-dev in your project. Claude Code loads it when a task matches its description.

How do I install Xray UI Dev in Codex?

Run `npx skills add bropines/xray-config-ui-editor --skill xray-ui-dev -a codex`. Or copy the skill folder (.gemini/skills/xray-ui-dev in bropines/xray-config-ui-editor) into .agents/skills/xray-ui-dev in your project. Codex loads it when a task matches its description.

Can I use Xray UI Dev 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 bropines/xray-config-ui-editor --skill xray-ui-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/xray-ui-dev, .gemini/skills/xray-ui-dev, .github/skills/xray-ui-dev and .opencode/skills/xray-ui-dev in your project.

What does Xray UI Dev need to run?

Going by SKILL.md and its folder, Xray UI Dev needs the command-line tools its instructions call (bun).

Does Xray UI Dev access the network?

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.

Is Xray UI Dev 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 Xray UI Dev use?

Xray UI Dev 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 Xray UI Dev use?

About 942 tokens (SKILL.md is roughly 3.8k 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 Xray UI Dev?

Skills that share tags, products or a category with Xray UI Dev: Opik Frontend Patterns (comet-ml/opik, 22k stars), Zustand Store Patterns (stellar/laboratory, 112 stars), State Management (emanueleielo/deepagents-open-lovable, 111 stars) and Frontend Large Feature Architecture (langfuse/langfuse, 35k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Xray UI Dev?

bropines (a GitHub user) maintains it in bropines/xray-config-ui-editor, which has 119 GitHub stars. The repository was last updated on October 1, 2026.

Source: bropines/xray-config-ui-editor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.