Agent skill

X Chat Provider

by kqcoxn in kqcoxn/MaaPipelineEditor

专注于自定义 Chat Provider 的实现,帮助将任意流式接口适配为 Ant Design X 标准格式. An agent skill from kqcoxn/MaaPipelineEditor.

MITAuto-check passed

Install X Chat Provider

skills CLI
$ npx skills add kqcoxn/MaaPipelineEditor --skill x-chat-provider -a claude-code

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

GitHub CLI
$ gh skill install kqcoxn/MaaPipelineEditor x-chat-provider --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/kqcoxn/MaaPipelineEditor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ant-design-x/skills/x-chat-provider .claude/skills/x-chat-provider && 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
x-chat-provider
GitHub stars
408
Token cost
~3.1k tokens
SKILL.md length
287 words
Files
2
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

专注于自定义 Chat Provider 的实现,帮助将任意流式接口适配为 Ant Design X 标准格式. An agent skill from kqcoxn/MaaPipelineEditor.

  • SKILL.md covers 目录导航, 步骤1:分析接口格式 ⏱️ 2分钟, 步骤2:创建 Provider 类 ⏱️ 5分钟 and 步骤3:检查验证 ⏱️ 1分钟, plus 7 more sections
  • Calls tsc; reaches api.deepseek.com

What it does

X Chat Provider is an agent skill from kqcoxn/MaaPipelineEditor. 专注于自定义 Chat Provider 的实现,帮助将任意流式接口适配为 Ant Design X 标准格式

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `reference/EXAMPLES.md`).

It works with Ant Design. The repository describes itself as: ✨ 可视化构建 MaaFramework Pipeline 的下一代工作流 审阅&编辑&调试 工具,你的工程师牛牛! ✨. The licence is MIT.

Example prompts

  • “/x-chat-provider”

What it can do on your machine

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

    • tsc

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.deepseek.com

    Also links to:

    • github.com

    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

X Chat Provider loads about 3.1k tokens when it runs. Until then it costs about 18 tokens; SKILL.md has 287 words of instructions outside code blocks.

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

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 kqcoxn/MaaPipelineEditor at commit bbfe0d0, republished under its MIT licence (© kqcoxn). 287 words, ~3,085 tokens.

Download SKILL.mdSave it as .claude/skills/x-chat-provider/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
x-chat-provider
description
专注于自定义 Chat Provider 的实现,帮助将任意流式接口适配为 Ant Design X 标准格式
version
2.9.0

🎯 技能定位

本技能专注解决一个问题:如何将你的流式接口快速适配为 Ant Design X 的 Chat Provider。

不涉及的:useXChat 的使用教程(那是另一个技能)。

目录导航

📦 技术栈概览

层级包名核心作用
UI层@ant-design/xReact UI 组件库
逻辑层@ant-design/x-sdk开发工具包
渲染层@ant-design/x-markdownMarkdown 渲染器
ts
// ✅ 正确导入示例
import { Bubble } from '@ant-design/x';
import { AbstractChatProvider, OpenAIChatProvider, XRequest } from '@ant-design/x-sdk';

🚀 快速开始

🎯 Provider 选择决策树
mermaid
graph TD
    A[开始] --> B{使用标准OpenAI/DeepSeek API?}
    B -->|是| C[使用内置Provider]
    B -->|否| D{消息格式是原始数据格式?}
    D -->|是| E[使用DefaultChatProvider]
    D -->|否| F[自定义Provider]
    C --> G[OpenAIChatProvider / DeepSeekChatProvider]
    E --> H[直接透传,无需转换]
    F --> I[四步创建自定义Provider]
🏭 内置 Provider 速览
Provider 类型适用场景导入方式
OpenAIChatProvider标准 OpenAI API 格式import { OpenAIChatProvider } from '@ant-design/x-sdk'
DeepSeekChatProvider标准 DeepSeek API 格式import { DeepSeekChatProvider } from '@ant-design/x-sdk'
DefaultChatProvider透传原始响应,无需格式转换import { DefaultChatProvider } from '@ant-design/x-sdk'

⚠️ 导出名是 OpenAIChatProvider / DeepSeekChatProvider / DefaultChatProvider,注意拼写

DefaultChatProvider 使用场景

DefaultChatProvider 会透传原始响应数据,不做任何转换。适用于:

  • 接口返回格式已经是你想展示的格式
  • 你想完全控制 Bubble.List 的 contentRender 来渲染消息
ts
import { DefaultChatProvider, XRequest } from '@ant-design/x-sdk';

interface ChatInput {
  query: string;
  stream?: boolean;
}

interface ChatOutput {
  choices: Array<{ message: { content: string; role: string } }>;
}

// DefaultChatProvider 泛型:<ChatMessage, Input, Output>
// ChatMessage 就是你的 Output 类型(直接透传)
const provider = new DefaultChatProvider<ChatOutput | ChatInput, ChatInput, ChatOutput>({
  request: XRequest('https://your-api.com/chat', {
    manual: true,
    params: { stream: false },
  }),
});

// 使用时需要在 Bubble.List 的 role.contentRender 中自行渲染
// role={{ assistant: { contentRender(content) { return content?.choices?.[0]?.message?.content } } }}

⚠️ DefaultChatProvider 使用时 ChatMessage 类型通常是你的 Output 类型或联合类型,渲染需要配合 contentRender

📋 四步实现自定义 Provider

步骤1:分析接口格式 ⏱️ 2分钟

信息类型示例值
接口URLhttps://your-api.com/chat
请求格式JSON,POST
响应格式Server-Sent Events
认证方式Bearer Token

步骤2:创建 Provider 类 ⏱️ 5分钟

ts
// MyChatProvider.ts
import { AbstractChatProvider } from '@ant-design/x-sdk';
import type { TransformMessage } from '@ant-design/x-sdk';
import type { XRequestOptions } from '@ant-design/x-sdk';

interface MyInput {
  query: string;
  model?: string;
  stream?: boolean;
}

interface MyOutput {
  content: string;
  finish_reason?: string;
}

interface MyMessage {
  content: string;
  role: 'user' | 'assistant';
}

export class MyChatProvider extends AbstractChatProvider<MyMessage, MyInput, MyOutput> {
  // 参数转换:将 onRequest 传入的参数 + XRequest 配置的默认参数合并
  // options 来自 XRequest(url, options) 中的 options,可取 options.params 等
  transformParams(
    requestParams: Partial<MyInput>,
    options: XRequestOptions<MyInput, MyOutput, MyMessage>,
  ): MyInput {
    return {
      ...(options?.params || {}),
      query: requestParams.query || '',
      model: 'gpt-3.5-turbo',
      stream: true,
    };
  }

  // 本地消息:将 onRequest 的参数转为用户侧展示消息(支持返回数组)
  transformLocalMessage(requestParams: Partial<MyInput>): MyMessage {
    return {
      content: requestParams.query || '',
      role: 'user',
    };
  }

  // 响应转换:
  // info.originMessage:上次该消息的内容(流式累加时用)
  // info.chunk:当前流式片段
  // info.chunks:所有已收到的片段(onSuccess 时使用)
  // info.status:当前状态
  // ⚠️ 只返回 MyMessage 类型,禁止加 status 字段
  transformMessage(info: TransformMessage<MyMessage, MyOutput>): MyMessage {
    const { originMessage, chunk } = info;

    if (!chunk?.content || chunk.content === '[DONE]') {
      return { ...(originMessage || { content: '', role: 'assistant' }) };
    }

    return {
      content: `${originMessage?.content || ''}${chunk.content}`,
      role: 'assistant',
    };
  }
}

步骤3:检查验证 ⏱️ 1分钟

检查项说明
只实现3个方法transformParams、transformLocalMessage、transformMessage
transformParams 签名必须包含第二个参数 options: XRequestOptions<...>
无 status 返回transformMessage 返回值中无 status 字段
无 request 方法确认没有实现 request 方法
类型检查通过tsc --noEmit 无错误

步骤4:使用 Provider ⏱️ 1分钟

ts
import { MyChatProvider } from './MyChatProvider';
import { XRequest } from '@ant-design/x-sdk';

// ⚠️ 必须传 manual: true,否则 AbstractChatProvider 构造函数会抛错
const provider = new MyChatProvider({
  request: XRequest('https://your-api.com/chat', {
    manual: true,
    headers: {
      Authorization: 'Bearer your-token',
      'Content-Type': 'application/json',
    },
    params: {
      model: 'gpt-3.5-turbo',
      stream: true,
    },
  }),
});

export { provider };

🔑 核心类型与导出

从 @ant-design/x-sdk 导出的关键类型:

ts
import type {
  // OpenAI 标准消息格式
  XModelMessage, // { role: string; content: string | { text: string; type: string } }
  XModelParams, // 完整的 OpenAI 请求参数类型(model, messages, stream, temperature 等)
  XModelResponse, // 完整的 OpenAI 响应类型(choices, usage 等)

  // SSE 流式字段类型
  SSEFields, // 'data' | 'event' | 'id' | 'retry'
  SSEOutput, // Partial<Record<SSEFields, any>>

  // Provider 相关
  TransformMessage, // { originMessage, chunk, chunks, status, responseHeaders }

  // XRequest 相关
  XRequestOptions, // 完整请求配置
  XRequestCallbacks, // { onUpdate, onSuccess, onError }

  // 消息相关
  MessageInfo, // { id, message, status, extraInfo }
} from '@ant-design/x-sdk';
XModelMessage 结构(OpenAI 消息格式)
ts
// XModelMessage 就是标准 OpenAI 消息格式
// 用于 OpenAIChatProvider / DeepSeekChatProvider 的 ChatMessage 泛型
const userMessage: XModelMessage = { role: 'user', content: 'Hello' };
const systemMessage: XModelMessage = { role: 'system', content: '你是一个助手' };
const developerMessage: XModelMessage = { role: 'developer', content: '系统提示词' };
SSEOutput 与 SSEFields
ts
// SSEOutput 是 SSE 流式原始数据的类型
// { data?: string; event?: string; id?: string; retry?: number }
// DeepSeekChatProvider 使用的是 Partial<Record<SSEFields, XModelResponse>>

import { DeepSeekChatProvider, XRequest } from '@ant-design/x-sdk';
import type { SSEFields, XModelParams, XModelResponse } from '@ant-design/x-sdk';

const provider = new DeepSeekChatProvider({
  request: XRequest<XModelParams, Partial<Record<SSEFields, XModelResponse>>>(
    'https://api.deepseek.com/v1/chat/completions',
    {
      manual: true,
      params: { model: 'deepseek-chat', stream: true },
    },
  ),
});

⚙️ XRequest 进阶配置

callbacks 回调

callbacks 允许在 Provider 层面监听请求事件。回调中的第三个参数是经过 transformMessage 处理后的 MessageInfo:

ts
const provider = new OpenAIChatProvider({
  request: XRequest<XModelParams, XModelResponse, XModelMessage>(BASE_URL, {
    manual: true,
    callbacks: {
      // onUpdate: 每个流式片段到达时触发
      // chunk: 当前片段;responseHeaders: 响应头;message: 当前消息的 MessageInfo
      onUpdate: (chunk, responseHeaders, message) => {
        console.log('流式更新:', message?.message?.content);
      },
      // onSuccess: 所有片段接收完成时触发
      // chunks: 所有片段数组;message: 最终消息的 MessageInfo
      onSuccess: (chunks, responseHeaders, message) => {
        console.log('请求完成:', message?.message?.content);
        // 可以在这里做数据上报、日志记录等
      },
      // onError: 请求失败时触发(包括 AbortError)
      // error: 错误对象;errorInfo: 额外错误信息;message: 失败时的消息 MessageInfo
      onError: (error, errorInfo, responseHeaders, message) => {
        console.error('请求失败:', error.message);
      },
    },
    params: { model: 'gpt-4o', stream: true },
  }),
});

⚠️ callbacks 与 useXChat 的 requestFallback 不冲突,两者都会执行。callbacks 更适合日志/上报,requestFallback 用于控制 UI 展示

retryInterval 重试

ts
const request = XRequest('https://your-api.com/chat', {
  manual: true,
  // 请求失败后重试间隔(毫秒)
  retryInterval: 3000,
  // 最大重试次数限制(不设置则无限重试)
  retryTimes: 3,
  // onError 也可以返回数字来动态设置重试间隔
  callbacks: {
    onError: (error) => {
      if (error.name === 'AbortError') return; // 主动取消不重试
      return 5000; // 返回数字 = 5秒后重试(优先级高于 retryInterval)
    },
  },
});

transformStream 自定义流

当服务端返回的流格式不是标准 SSE 时使用:

ts
const request = XRequest('https://your-api.com/chat', {
  manual: true,
  // 固定 TransformStream
  transformStream: new TransformStream({
    transform(chunk, controller) {
      controller.enqueue(JSON.parse(chunk));
    },
  }),
  // 或基于 URL 和响应头动态决定
  transformStream: (baseURL, responseHeaders) => {
    if (responseHeaders.get('x-stream-type') === 'ndjson') {
      return new TransformStream({/* ... */});
    }
    return undefined; // 使用默认 SSE 解析
  },
});

🔧 常见场景适配

📖 完整示例:EXAMPLES.md

场景类型难度说明
标准OpenAI🟢直接使用内置 OpenAIChatProvider
标准DeepSeek🟢直接使用内置 DeepSeekChatProvider
透传原始数据🟢使用 DefaultChatProvider
私有SSE API🟡四步实现自定义 Provider
多字段响应🟡自定义 Provider + 复杂 ChatMessage
非SSE流🔴自定义 Provider + transformStream

⚠️ 重要提醒

🚨 强制规则:禁止自己写 request 方法!
ts
// ❌ 严重错误
class MyProvider extends AbstractChatProvider {
  async request(params: any) {
    /* 禁止! */
  }
}

// ✅ 唯一正确方式:只实现三个转换方法
class MyProvider extends AbstractChatProvider {
  transformParams(params, options) {
    /* ... */
  }
  transformLocalMessage(params) {
    /* ... */
  }
  transformMessage(info) {
    /* ... */
  }
}
⚠️ transformMessage 禁止返回 status
ts
// ❌ 错误
transformMessage(info) {
  return { content: '...', status: 'error' }; // ❌ status 由框架管理
}

// ✅ 正确
transformMessage(info) {
  return { content: '...' }; // ✅
}
⚠️ Provider 实例化注意事项
ts
// ✅ 在 React 组件中,用 useState 保证只创建一次
const [provider] = React.useState(
  new MyChatProvider({
    request: XRequest(URL, { manual: true }),
  }),
);

// ❌ 不要在渲染函数中直接创建(每次渲染都会新建)
// const provider = new MyChatProvider(...); // 放在组件体内会导致问题

⚡ 快速检查清单

创建 Provider 前:

  • 已获取接口文档和响应格式
  • 已确认是否需要自定义(还是内置 Provider 够用)
  • 已定义好 Input、Output、ChatMessage 类型

完成后:

  • 只实现了三个必需方法
  • transformParams 包含第二个参数 options
  • transformMessage 返回值中无 status 字段
  • XRequest 配置了 manual: true
  • 绝对禁止实现 request 方法
  • Provider 在 React 组件中用 useState 包裹
  • 类型检查通过(tsc --noEmit)

🚨 开发规则

  • 如果用户没有明确需要测试用例,则不要添加测试文件
  • 完成编写后必须检查类型:运行 tsc --noEmit 确保无类型错误
  • 保持代码整洁:移除所有未使用的变量和导入

🔗 参考资源

📚 核心参考文档

🌐 SDK 官方文档

💻 示例代码

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

Files

SKILL.md and 1 other file in .agents/skills/ant-design-x/skills/x-chat-provider of kqcoxn/MaaPipelineEditor.

  • SKILL.md
  • reference/EXAMPLES.md

Open the folder on GitHubat commit bbfe0d0

Compare with similar skills

X Chat Provider 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.

X Chat Provider compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
X Chat Provider this skillkqcoxn/MaaPipelineEditor408—~3.1kAutomated safety check: PassMIT
LobeHub Interactive Prototypelobehub/lobehub83k—~1.6kAutomated safety check: PassCustom licence
Version ReleaseNG-ZORRO/ng-zorro-antd9.2k—~3.1kAutomated safety check: PassMIT
Ant Design Mobile Releaseant-design/ant-design-mobile12k—~497Automated safety check: PassMIT
Lobe Designlobehub/lobe-ui2.2k—~2.2kAutomated safety check: PassMIT
Feature SyncNG-ZORRO/ng-zorro-antd9.2k—~840Automated safety check: PassMIT

Similar skills

  • Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.

    83k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Version Release

    NG-ZORRO/ng-zorro-antd

    NG-ZORRO/ng-zorro-antd repository release workflow. An agent skill from NG-ZORRO/ng-zorro-antd.

    9.2k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Ant Design Mobile Release

    ant-design/ant-design-mobile

    Prepares an npm release of ant-design-mobile up to the version commit, then tags and publishes the GitHub Release after you run the publish command yourself.

    12k GitHub stars~497 tokensUpdated 26 days ago
    DevelopmentAuto-check passed
  • Lobe Design

    lobehub/lobe-ui

    Build UI with the LobeHub design system — @lobehub/ui/base-ui, the controlled form at @lobehub/ui/base-ui/form, and the chat, mobile, dashboard, awesome, brand, mdx, and i18n namespaces, plus…

    2.2k GitHub stars~2.2k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Feature Sync

    NG-ZORRO/ng-zorro-antd

    Sync an Ant Design React component or feature into NG-ZORRO.

    9.2k GitHub stars~840 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Ant Design Vue UI

    lazzyfu/goInsight

    Build, refactor, or review production-grade admin interfaces with Vue 3 + JavaScript + Ant Design Vue 4.x.

    729 GitHub stars~2k tokensUpdated 6 mo ago
    DatabasesAuto-check passed

More from kqcoxn/MaaPipelineEditor

All 12 skills in this repo
  • Ant Design

    kqcoxn/MaaPipelineEditor

    Decision guide for antd 6.x, Ant Design Pro 5/ProComponents, Ant Design X v2, and the offline @ant-design/cli.

    408 GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Maafw

    kqcoxn/MaaPipelineEditor

    MaaFramework 开发与集成指南。当任务涉及 MaaFramework 项目结构、Pipeline 协议、ProjectInterface V2 协议、自定义识别/动作(Custom/Agent)、Python/NodeJS/CSharp 等语言 Binding 集成、控制器配置、回调协议或运行时行为时使用。

    408 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Mpe Background Art

    kqcoxn/MaaPipelineEditor

    为 MPE 桌面端策划、生成或修改版本主题背景图,复用机械动力牛牛与章鱼猫的定稿形象;也用于维护这两个角色的设定与三视图。不用于普通界面样式修改或无关插画。

    408 GitHub stars~410 tokensUpdated yesterday
    Auto-check passed
  • Use X Chat

    kqcoxn/MaaPipelineEditor

    专注讲解如何使用 useXChat Hook,包括自定义 Provider 的集成、消息管理、错误处理、多会话管理等. An agent skill from kqcoxn/MaaPipelineEditor.

    408 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed
  • X Card

    kqcoxn/MaaPipelineEditor

    当需要用 @ant-design/x-card 让 AI Agent 动态渲染富交互 UI 时使用——涵盖 XCard.Box、XCard.Card、A2UI v0.9 命令、数据绑定、Catalog、Actions 和流式渲染模式。

    408 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • X Components

    kqcoxn/MaaPipelineEditor

    使用 @ant-design/x 组件库构建 AI 对话 UI 时使用 —— 涵盖 Bubble、Sender、Conversations、Prompts、ThoughtChain、Actions、Welcome、Attachments、Sources、Suggestion、Think、FileCard、CodeHighlighter、Mermaid、Folder、XProvider 和…

    408 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about X Chat Provider

What does X Chat Provider do?

专注于自定义 Chat Provider 的实现,帮助将任意流式接口适配为 Ant Design X 标准格式. An agent skill from kqcoxn/MaaPipelineEditor. X Chat Provider is an agent skill from kqcoxn/MaaPipelineEditor.

How do I install X Chat Provider in Claude Code?

Run `npx skills add kqcoxn/MaaPipelineEditor --skill x-chat-provider -a claude-code`. Or copy the skill folder (.agents/skills/ant-design-x/skills/x-chat-provider in kqcoxn/MaaPipelineEditor) into .claude/skills/x-chat-provider in your project. Claude Code loads it when a task matches its description.

How do I install X Chat Provider in Codex?

Run `npx skills add kqcoxn/MaaPipelineEditor --skill x-chat-provider -a codex`. Or copy the skill folder (.agents/skills/ant-design-x/skills/x-chat-provider in kqcoxn/MaaPipelineEditor) into .agents/skills/x-chat-provider in your project. Codex loads it when a task matches its description.

Can I use X Chat Provider 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 kqcoxn/MaaPipelineEditor --skill x-chat-provider -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/x-chat-provider, .gemini/skills/x-chat-provider, .github/skills/x-chat-provider and .opencode/skills/x-chat-provider in your project.

What does X Chat Provider need to run?

Going by SKILL.md and its folder, X Chat Provider needs the command-line tools its instructions call (tsc).

Does X Chat Provider access the network?

SKILL.md names 2 domains. In commands or code: api.deepseek.com; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is X Chat Provider 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 X Chat Provider use?

X Chat Provider 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 X Chat Provider use?

About 3.1k tokens (SKILL.md is roughly 12k 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 X Chat Provider?

Skills that share tags, products or a category with X Chat Provider: LobeHub Interactive Prototype (lobehub/lobehub, 83k stars), Version Release (NG-ZORRO/ng-zorro-antd, 9.2k stars), Ant Design Mobile Release (ant-design/ant-design-mobile, 12k stars) and Lobe Design (lobehub/lobe-ui, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains X Chat Provider?

kqcoxn (a GitHub user) maintains it in kqcoxn/MaaPipelineEditor, which has 408 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 9, 2026.

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