Token导航 LogoToken导航TokenDH.com
前端设计只读github未标认证来源可访问许可证需确认审计通过

uiforkuifork 命令行

Agent Skill

uifork 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,388

周安装

59

GitHub Stars

184

下载量

486
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:uifork(uifork 命令行)
来源仓库:https://github.com/sambernhardt/uifork
仓库路径:skills/uifork
安装命令:
npx skills add https://github.com/sambernhardt/uifork --skill uifork
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/sambernhardt/uifork --skill uifork

简介

uifork 用于处理 GitHub 仓库、Issue 和 Pull Request。

  • 适合围绕仓库状态、代码变更或协作事项进行整理。
  • 可结合来源仓库和原始 README 核验具体用法。
  • 安装前建议确认权限范围和维护状态。uifork 属于前端设计类 Skill,可作为该场景下的辅助能力补充。
  • 注意是否会触发联网、命令执行或文件读写。

SKILL.md

UIFork

UIFork is a CLI tool and React component library for managing UI component versions. Create multiple versions of components, let stakeholders switch between them to test and gather feedback, and promote the best one when ready.

When to Use

  • User wants to version React components for A/B testing or stakeholder feedback
  • User mentions uifork, component versioning, or UI variations
  • User needs help with uifork CLI commands (init, watch, new, fork, promote, etc.)
  • User wants to set up uifork in a React app (Vite, Next.js, etc.)

Installation

npm install uifork

Or use yarn, pnpm, or bun.

Quick Setup

1. Add UIFork Component

Add the UIFork component to your React app root. Typically shown in development and preview/staging (not production):

Vite:

import { UIFork } from "uifork";

const showUIFork = import.meta.env.MODE !== "production";

function App() {
  return (
    <>
      <YourApp />
      {showUIFork && <UIFork />}
    </>
  );
}

Next.js (App Router):

// components/UIForkProvider.tsx
"use client";
import { UIFork } from "uifork";

export function UIForkProvider() {
  if (process.env.NODE_ENV === "production") return null;
  return <UIFork />;
}

// app/layout.tsx
import { UIForkProvider } from "@/components/UIForkProvider";

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <UIForkProvider />
      </body>
    </html>
  );
}

Next.js (Pages Router):

// pages/_app.tsx
import { UIFork } from "uifork";

export default function App({ Component, pageProps }) {
  return (
    <>
      <Component {...pageProps} />
      {process.env.NODE_ENV !== "production" && <UIFork />}
    </>
  );
}

No separate CSS import needed - styles are automatically included.

2. Initialize Component Versioning

npx uifork src/components/Button.tsx

Or use the explicit form:

npx uifork init src/components/Button.tsx

This will:

  • Convert the component into a forked component that can be versioned
  • Generate a versions.ts file to track all versions
  • Optionally start the watch server (use -w flag with either form)

UIFork auto-detects whether the component uses a default export or a named export and generates the correct versioning scaffolding. If the file has multiple exported components and detection is ambiguous, specify which export to fork:

npx uifork init src/components/Button.tsx --export Button
npx uifork init src/components/Button.tsx --export default

3. Use Component Normally

// Default export (auto-detected)
import Button from "./components/Button";

// Named export (auto-detected)
import { Button } from "./components/Button";

// Works exactly as before - active version controlled by UIFork widget
<Button onClick={handleClick}>Click me</Button>;

CLI Commands

All commands use npx uifork:

Initialize a component (shorthand)

Initialize versioning for an existing component by passing the path directly.

npx uifork src/components/Dropdown.tsx
npx uifork src/components/Dropdown.tsx -w  # Start watching after init

Or use the explicit form:

npx uifork init src/components/Dropdown.tsx
npx uifork init src/components/Dropdown.tsx -w  # Start watching after init
npx uifork init src/components/Dropdown.tsx --export Button  # Specify which export to fork

watch [directory]

Start the watch server (enables UI widget communication).

npx uifork watch                    # Watch current directory (port 3030)
npx uifork watch ./src              # Watch specific directory
npx uifork watch --port 3002        # Custom port
npx uifork watch ./src --port 3002  # Directory + custom port

When using a custom port, pass the same port to the UIFork component: <UIFork port={3002} />.

Important: After generating new version files (e.g., manually or via AI agents), run the watch command to regenerate the corresponding versions.ts files.

new <component-path> [version-id]

Create a new empty version file.

npx uifork new Button         # Auto-increment version number
npx uifork new Button v3      # Specify version explicitly

fork <component-path> <version-id> [target-version]

Fork an existing version to create a new one.

npx uifork fork Button v1           # Fork v1 to auto-incremented version
npx uifork fork Button v1 v2        # Fork v1 to specific version
npx uifork duplicate Button v1 v2   # Alias for fork

rename <component-path> <version-id> <new-version-id>

Rename a version.

npx uifork rename Button v1 v2

delete <component-path> <version-id>

Delete a version (must have at least one version remaining).

npx uifork delete Button v2

promote <component-path> <version-id>

Promote a version to be the main component and remove all versioning scaffolding.

npx uifork promote Button v2

This will:

  • Replace Button.tsx with content from Button.v2.tsx
  • Delete all version files (Button.v*.tsx)
  • Delete Button.versions.ts
  • Effectively "undo" the versioning system

File Structure

After running npx uifork src/components/Button.tsx (or npx uifork init src/components/Button.tsx):

src/components/
├── Button.tsx              # Wrapper component (import this)
├── Button.versions.ts      # Version configuration
├── Button.v1.tsx           # Original component (version 1)
├── Button.v2.tsx           # Additional versions
└── Button.v1_1.tsx         # Sub-versions (v1.1, v2.1, etc.)

Both default exports and named exports are supported. UIFork auto-detects the export style during init and maintains it across all version files.

Version Naming

  • v1, v2, v3 - Major versions
  • v1_1, v1_2 - Sub-versions (displayed as V1.1, V1.2 in UI)
  • v2_1, v2_2 - Sub-versions of v2

UIFork Widget Features

The UIFork component provides a floating UI widget that allows:

  • Switch versions - Click to switch between versions
  • Create new versions - Click "+" to create blank version
  • Fork versions - Fork existing version to iterate
  • Rename versions - Give versions meaningful names
  • Delete versions - Remove versions no longer needed
  • Promote versions - Promote version to become main component
  • Open in editor - Click to open version file in VS Code/Cursor

Keyboard shortcuts: Cmd/Ctrl + Arrow Up/Down to cycle through versions

Settings: Theme (light/dark/system), position, code editor preference

Custom Environment Gating

For more control over when UIFork appears:

// Enable via NEXT_PUBLIC_ENABLE_UIFORK=true or VITE_ENABLE_UIFORK=true
const showUIFork =
  process.env.NODE_ENV !== "production" ||
  process.env.NEXT_PUBLIC_ENABLE_UIFORK === "true";

Useful for:

  • Showing on specific preview branches
  • Enabling for internal stakeholders on staging
  • Gating behind feature flags

Common Workflows

Starting Versioning on a Component

  1. Install uifork: npm install uifork
  2. Add <UIFork /> component to app root
  3. Initialize: npx uifork src/components/MyComponent.tsx (or npx uifork init src/components/MyComponent.tsx)
  4. Start watch server: npx uifork watch
  5. Use the widget to create and switch between versions

Creating a New Version

# Create empty version
npx uifork new Button

# Or fork existing version
npx uifork fork Button v1

Promoting a Version to Production

npx uifork promote Button v2

This removes all versioning and makes v2 the main component.

How It Works

  1. ForkedComponent reads active version from localStorage and renders corresponding component
  2. UIFork connects to watch server and displays all available versions
  3. Selecting a version updates localStorage, triggering ForkedComponent to re-render
  4. Watch server monitors file system for new version files and updates versions.ts automatically

After generating new version files: When creating version files manually or via AI agents, run npx uifork watch to regenerate the versions.ts files so the new versions appear in the UIFork widget.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.66%
按下载量换算173

Claude

29.13%
按下载量换算142

Cursor

19.45%
按下载量换算95

Gemini CLI

9.56%
按下载量换算46

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills