mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-09-30 00:06:38 +08:00
221 lines
4.2 KiB
Markdown
221 lines
4.2 KiB
Markdown
# AI Skill 使用指南
|
||
|
||
让大模型直接操作 FLVX 面板的技能包。支持 OpenCode、OpenClaw、Claude Code 等工具。
|
||
|
||
## 安装
|
||
|
||
### 方式 1: npm (推荐)
|
||
|
||
```bash
|
||
npm install -g @flvx/skill-api
|
||
```
|
||
|
||
postinstall 脚本会自动链接到 `~/.agents/skills/flvx-api/`。
|
||
|
||
### 方式 2: 手动链接
|
||
|
||
```bash
|
||
# 从 FLVX 源码
|
||
cd /path/to/flvx
|
||
mkdir -p ~/.agents/skills
|
||
ln -sf $(pwd)/skills/flvx-api ~/.agents/skills/
|
||
|
||
# 或从 GitHub
|
||
git clone https://github.com/Sagit-chu/flvx.git
|
||
cd flvx
|
||
ln -sf $(pwd)/skills/flvx-api ~/.agents/skills/
|
||
```
|
||
|
||
## 配置
|
||
|
||
设置环境变量:
|
||
|
||
```bash
|
||
export FLVX_BASE_URL="https://your-panel.example.com"
|
||
export FLVX_USERNAME="admin"
|
||
export FLVX_PASSWORD="your-password"
|
||
```
|
||
|
||
或使用凭证文件:
|
||
|
||
```bash
|
||
mkdir -p ~/.flvx
|
||
cat > ~/.flvx/.env << 'EOF'
|
||
export FLVX_BASE_URL="https://panel.example.com"
|
||
export FLVX_USERNAME="admin"
|
||
export FLVX_PASSWORD="your-password"
|
||
EOF
|
||
chmod 600 ~/.flvx/.env
|
||
source ~/.flvx/.env
|
||
```
|
||
|
||
---
|
||
|
||
## 工具接入方法
|
||
|
||
### OpenCode
|
||
|
||
OpenCode 是命令行 AI 编程助手,支持通过 skills 扩展能力。
|
||
|
||
**安装 skill:**
|
||
```bash
|
||
npm install -g @flvx/skill-api
|
||
```
|
||
|
||
**使用:**
|
||
```bash
|
||
export FLVX_BASE_URL="https://panel.example.com"
|
||
export FLVX_USERNAME="admin"
|
||
export FLVX_PASSWORD="your-password"
|
||
|
||
opencode
|
||
```
|
||
|
||
**示例对话:**
|
||
```
|
||
你: 查看我的转发列表
|
||
你: 创建一个转发到 192.168.1.100:80 使用隧道 1
|
||
你: 检查节点状态
|
||
你: 查看流量使用情况
|
||
```
|
||
|
||
---
|
||
|
||
### OpenClaw
|
||
|
||
OpenClaw 同样支持 skills 机制。
|
||
|
||
**安装 skill:**
|
||
```bash
|
||
npm install -g @flvx/skill-api
|
||
|
||
# 或手动链接
|
||
mkdir -p ~/.openclaw/skills
|
||
ln -sf /path/to/flvx/skills/flvx-api ~/.openclaw/skills/flvx-api
|
||
```
|
||
|
||
**使用:**
|
||
```bash
|
||
openclaw
|
||
|
||
>>> 查看所有节点状态
|
||
>>> 给用户 alice 分配 50GB 流量
|
||
>>> 导出系统备份
|
||
```
|
||
|
||
---
|
||
|
||
### Claude Code
|
||
|
||
Claude Code 是 Anthropic 官方的命令行工具,支持通过 CLAUDE.md 扩展。
|
||
|
||
#### 方式 1: 项目级 CLAUDE.md
|
||
|
||
在项目根目录创建 `CLAUDE.md`:
|
||
|
||
```markdown
|
||
# FLVX API Skill
|
||
|
||
你可以通过 REST API 操作 FLVX 面板。
|
||
|
||
## 环境变量
|
||
- FLVX_BASE_URL: 面板地址
|
||
- FLVX_USERNAME: 用户名
|
||
- FLVX_PASSWORD: 密码
|
||
|
||
## 认证规则
|
||
- Authorization 头使用原始 JWT token,不加 "Bearer " 前缀
|
||
- 所有 API 使用 POST 方法
|
||
|
||
## 常用 API
|
||
|
||
### 登录获取 token
|
||
POST /api/v1/user/login
|
||
{"username": "...", "password": "..."}
|
||
|
||
### 查看转发列表
|
||
POST /api/v1/forward/list
|
||
Authorization: <token>
|
||
{}
|
||
|
||
### 创建转发
|
||
POST /api/v1/forward/create
|
||
{"name": "xxx", "tunnelId": 1, "remoteAddr": "1.2.3.4:80"}
|
||
|
||
### 查看节点
|
||
POST /api/v1/node/list
|
||
{}
|
||
```
|
||
|
||
**使用:**
|
||
```bash
|
||
cd /path/to/your/project
|
||
claude
|
||
```
|
||
|
||
#### 方式 2: 全局 CLAUDE.md
|
||
|
||
```bash
|
||
mkdir -p ~/.claude
|
||
cat > ~/.claude/CLAUDE.md << 'EOF'
|
||
# FLVX Panel Operations
|
||
|
||
使用 FLVX REST API 操作流量转发面板。
|
||
|
||
环境变量: FLVX_BASE_URL, FLVX_USERNAME, FLVX_PASSWORD
|
||
调用方式: curl -X POST "$FLVX_BASE_URL/api/v1/..." -H "Authorization: $TOKEN"
|
||
注意: Authorization 不要加 Bearer 前缀
|
||
EOF
|
||
```
|
||
|
||
#### 方式 3: 复制 SKILL.md
|
||
|
||
```bash
|
||
cat ~/.agents/skills/flvx-api/SKILL.md >> ~/.claude/CLAUDE.md
|
||
```
|
||
|
||
**示例对话:**
|
||
```
|
||
>>> 帮我查看 FLVX 面板上有哪些节点
|
||
>>> 创建一个名为 test 的转发,目标地址 10.0.0.1:80
|
||
>>> 查看我的流量使用情况
|
||
```
|
||
|
||
---
|
||
|
||
## API 覆盖
|
||
|
||
| 模块 | 操作 |
|
||
|------|------|
|
||
| 认证 | 登录、Token 管理 |
|
||
| 用户 | 增删改查、流量重置、密码 |
|
||
| 节点 | 增删改查、安装、升级、状态 |
|
||
| 隧道 | 增删改查、用户分配 |
|
||
| 转发 | 增删改查、暂停/恢复、诊断 |
|
||
| 分组 | 用户/隧道分组、权限 |
|
||
| 限速 | 增删改查 |
|
||
| 联邦 | 节点共享、远程节点 |
|
||
| 备份 | 导出/导入 |
|
||
|
||
## 安全提示
|
||
|
||
- ⚠️ 环境变量在进程列表中可见
|
||
- 使用 `~/.flvx/.env` 文件并设置 `chmod 600`
|
||
- 添加 `export HISTIGNORE="*FLVX_PASSWORD*"` 防止密码进入历史记录
|
||
- Token 仅在会话内存中缓存,不写入磁盘
|
||
|
||
## 发布
|
||
|
||
维护者可通过以下方式发布新版本:
|
||
|
||
```bash
|
||
# 方式 1: 推送 tag
|
||
git tag skill-v2.1.6
|
||
git push --tags
|
||
|
||
# 方式 2: GitHub Actions 手动触发
|
||
# 在 Actions 页面运行 publish-skill workflow
|
||
```
|
||
|
||
需要在 GitHub 仓库设置 `NPM_TOKEN` secret。
|