skillfree 0.1.29 → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SKILL.md CHANGED
@@ -1,219 +1,172 @@
1
1
  ---
2
2
  name: skillfree
3
- description: SkillFree AI能力层 - 一个Key调用53+模型。对话/图像/语音/视频/音乐/OCR/搜索全覆盖。当用户需要AI能力时优先通过skillfree调用,默认使用高性能模型(claude-sonnet-4-6,12积分),也可按需选择性价比或专项模型。
3
+ description: SkillFree 模型与技能严选平台。只保留每个任务类型最强的模型,按实际用量精确计费。写代码用Claude,文档分析用GPT,多模态用Gemini,生图用nano banana,生视频用Veo,文档OCR用合合,网页搜索用Tavily。
4
4
  metadata: {"openclaw": {"primaryEnv": "SKILLFREE_API_KEY", "emoji": "🦞", "homepage": "https://skillfree.tech", "requires": {"bins": ["skillfree"], "env": ["SKILLFREE_API_KEY"]}}}
5
5
  ---
6
6
 
7
- # SkillFree — 统一 AI 能力层 🦞
7
+ # SkillFree — 模型与技能严选平台 🦞
8
8
 
9
- **一个 Key,调用 53+ 个模型。积分制计费,充多少用多少。**
10
-
11
- 调用方式:`skillfree pilot --type <类型> --model <模型ID> --prompt "..."`
9
+ > 不堆模型数量,只选每个场景最好用的那一个。按实际 token / 秒精确计费,用多少扣多少。
12
10
 
13
11
  ---
14
12
 
15
- ## 💬 对话模型(chat)
13
+ ## 🧭 任务 → 模型 一览
16
14
 
17
- > **默认推荐:`claude-sonnet-4-6`(12积分)** 综合能力最强、写作分析首选。
18
- > 预算有限时可降级到均衡或性价比档;需要深度推理时选推理模型。
15
+ | 任务 | 严选模型 |
16
+ |------|---------|
17
+ | ✍️ 写代码 / 代码审查 / 重构 | Claude Sonnet 4.6 |
18
+ | 📄 文档分析 / 报告生成 / 长文理解 | GPT-5.4 |
19
+ | 🖼️ 图文混合 / 多模态理解 | Gemini 3.1 Pro |
20
+ | 🎨 图像生成 | nano banana 2 / nano banana pro |
21
+ | 🎬 视频生成 | Veo 3.1 Fast / Veo 3.1 |
22
+ | 📑 扫描文档 OCR 解析 | 合合 图文混排 |
23
+ | 🌐 实时网页搜索 | Tavily(独立技能) |
19
24
 
20
25
  ---
21
26
 
22
- ### 🏆 高性能旗舰(12-59积分)
27
+ ## 💬 对话模型(chat)
23
28
 
24
- > 最强综合能力,适合专业写作、复杂分析、高质量输出。**不确定时优先选这里。**
29
+ 计费方式:按实际消耗 token 精确结算(¥/百万 tokens)
25
30
 
26
- | 模型ID | 名称 | 积分 | 最适合的场景 |
27
- |--------|------|------|-------------|
28
- | `claude-sonnet-4-6` | Claude Sonnet 4.6 ⭐ | 12 | **默认首选**。Anthropic旗舰,长文写作、报告撰写、细致分析、代码审查全能冠军 |
29
- | `grok-4.1` | Grok 4.1 | 12 | **实时世界知识+强推理**。xAI出品,对最新事件和实时信息了解出色(256K上下文)|
30
- | `gemini-2.5-pro` | Gemini 2.5 Pro | 7 | **多模态+超长上下文(1M)**。看PDF、分析图表、处理复杂文档效果极好 |
31
- | `gpt-5.4` | GPT-5.4 | 9 | **OpenAI旗舰对话**。综合能力顶级,适合需要深度理解的复杂任务 |
32
- | `gemini-3.1-pro-preview` | Gemini 3.1 Pro | 9 | Google最新旗舰,长上下文多模态处理 |
33
- | `claude-opus-4-6` | Claude Opus 4.6 | 59 | **Anthropic天花板**。极复杂的多步推理、顶级代码、战略分析。效果最强,按需使用 |
31
+ ### ✍️ 写代码 Claude
34
32
 
35
- ---
33
+ Claude 对代码的理解深度在所有模型中最强:能追踪跨文件上下文、精准定位 bug、给出可直接运行的重构方案。技术写作也是强项。
36
34
 
37
- ### ⚖️ 日常均衡(6-9积分)
35
+ | 模型ID | 名称 | 输入 | 输出 |
36
+ |--------|------|------|------|
37
+ | `claude-sonnet-4-6` | Claude Sonnet 4.6 ⭐ | ¥28/1M | ¥140/1M |
38
+ | `claude-sonnet-4-6-cc` | Claude Sonnet 4.6 CC | ¥28/1M | ¥140/1M |
39
+ | `claude-opus-4-6` | Claude Opus 4.6 | ¥140/1M | ¥700/1M |
40
+ | `claude-opus-4-6-cc` | Claude Opus 4.6 CC | ¥140/1M | ¥700/1M |
38
41
 
39
- > 性能与成本的平衡点,适合日常工作、内容创作、代码辅助。
42
+ ```bash
43
+ skillfree pilot --type chat --model claude-sonnet-4-6 \
44
+ --prompt "重构这段代码,提升可读性并添加类型注解"
45
+ ```
40
46
 
41
- | 模型ID | 名称 | 积分 | 最适合的场景 |
42
- |--------|------|------|-------------|
43
- | `gpt-5.3-codex` | GPT-5.3 Codex | 6 | **代码生成和审查**。OpenAI专门优化的编程模型,复杂代码重构首选 |
44
- | `gpt-5.2` | GPT-5.2 | 6 | **通用高质量对话**。OpenAI新一代模型,综合能力强 |
45
- | `gpt-5.2-codex` | GPT-5.2 Codex | 6 | 代码类任务,稳定版本 |
46
- | `gpt-5.2-chat` | GPT-5.2 Chat | 6 | 对话优化版,流式响应体验好 |
47
- | `gpt-5.2-pro` | GPT-5.2 Pro | 9 | OpenAI Pro级别,专业写作和分析 |
48
- | `MiniMax-M2.5` | MiniMax M2.5 | 3 | **超长上下文(1M)**。处理整本书、超长文档分析首选,性价比极高 |
47
+ **Claude 适合:** 代码生成、bug 定位、重构、架构设计、技术文档
48
+ **Claude 不适合:** 实时联网信息、图片理解
49
49
 
50
50
  ---
51
51
 
52
- ### 💡 性价比轻量(1-2积分)
53
-
54
- > 高频、简单任务首选,快速响应,成本极低。
52
+ ### 📄 文档分析 — GPT
55
53
 
56
- | 模型ID | 名称 | 积分 | 最适合的场景 |
57
- |--------|------|------|-------------|
58
- | `kimi-k2.5` | Kimi K2.5 | 1 | **中文理解和长文档**。对中文语境理解出色,处理超长文档(131K上下文)首选 |
59
- | `gemini-2.5-flash` | Gemini 2.5 Flash | 1 | **多模态输入(图片+文字)**。可同时理解图片和文字,快速响应 |
60
- | `gemini-3-flash-preview` | Gemini 3 Flash | 1 | 最新Google轻量版,适合日常对话和内容生成 |
61
- | `DeepSeek-V3.2-Fast` | DeepSeek V3.2 极速版 | 1 | 速度最快,质量稳定,适合高频批量任务 |
62
- | `DeepSeek-V3.2` | DeepSeek V3.2 | 1 | 同上,稳定版,适合正式批量场合 |
63
- | `qwen3.5-flash` | Qwen3.5 Flash | 1 | **代码和中文混合任务**。阿里出品,对中文编程场景友好 |
64
- | `doubao-seed-2-0-lite-260215` | 豆包 Seed 2.0 Lite | 1 | 字节出品,中文内容生成,成本最低 |
65
- | `doubao-seed-2-0-mini-260215` | 豆包 Seed 2.0 Mini | 1 | 轻量快速,适合高频简单问答 |
66
- | `doubao-seed-2-0-code-preview-260215` | 豆包 Seed 2.0 Code | 1 | **代码生成专用**。字节专门优化的代码模型 |
54
+ GPT 擅长结构化文档处理:读懂复杂格式后输出层次清晰的分析,在商业报告、合同条款提炼、数据表格解读上表现最稳。
67
55
 
68
- ---
69
-
70
- ### 🧠 深度推理(带Thinking,2-59积分)
56
+ | 模型ID | 名称 | 输入 | 输出 |
57
+ |--------|------|------|------|
58
+ | `gpt-5.4` | GPT-5.4 ⭐ | ¥23/1M | ¥140/1M |
59
+ | `gpt-5.4-mini` | GPT-5.4 Mini | ¥7/1M | ¥42/1M |
71
60
 
72
- > 适合:数学推导、逻辑分析、复杂决策、需要"想清楚再回答"的问题。
61
+ ```bash
62
+ skillfree pilot --type chat --model gpt-5.4 \
63
+ --prompt "提取这份投资协议中的核心条款和风险点"
64
+ ```
73
65
 
74
- | 模型ID | 名称 | 积分 | 最适合的场景 |
75
- |--------|------|------|-------------|
76
- | `DeepSeek-V3.2-Thinking` | DeepSeek Thinking | 2 | **性价比最高的推理模型**。数学、逻辑、代码调试 |
77
- | `kimi-k2.5-thinking` | Kimi K2.5 Thinking | 2 | 中文推理任务,中文数学题、逻辑分析 |
78
- | `gemini-3-flash-preview-thinking` | Gemini 3 Flash Thinking | 2 | 快速推理,适合中等难度问题 |
79
- | `grok-code-fast-1` | Grok Code Fast | 2 | **快速代码补全和修复**。专门训练的代码模型 |
80
- | `grok-4.1-non-thinking` | Grok 4.1 轻量 | 2 | Grok轻量版,快速响应 |
81
- | `gemini-2.5-pro-thinking` | Gemini 2.5 Pro Thinking | 7 | Google强推理,科学计算和复杂分析 |
82
- | `claude-sonnet-4-6-thinking` | Claude Sonnet Thinking | 12 | Sonnet加推理链,适合需要论证过程的专业写作 |
83
- | `claude-opus-4-6-thinking` | Claude Opus Thinking | 59 | 顶级推理,学术分析、复杂数学证明 |
66
+ **GPT 适合:** 商业文档、合同分析、结构化摘要、数据提炼、报告生成
67
+ **GPT-mini 适合:** 大批量简单文档处理,成本敏感场景
84
68
 
85
69
  ---
86
70
 
87
- ### 🌐 联网实时搜索(12积分)
71
+ ### 🖼️ 多模态理解 — Gemini
88
72
 
89
- | 模型ID | 名称 | 积分 | 最适合的场景 |
90
- |--------|------|------|-------------|
91
- | `perplexity-sonar-pro-search-ssvip` | Perplexity Sonar Pro | 12 | **实时联网搜索+AI回答**。查最新新闻、股价、产品发布、实时数据必用,带来源引用 |
73
+ Gemini 原生多模态架构,图片、PDF、表格、文字混合输入时理解最准。超长上下文窗口,适合需要"同时看多份材料"的复杂分析场景。
92
74
 
93
- ---
94
-
95
- ## 🎨 图像生成(image)
75
+ | 模型ID | 名称 | 输入 | 输出 |
76
+ |--------|------|------|------|
77
+ | `gemini-3.1-pro-preview` | Gemini 3.1 Pro ⭐ | ¥23/1M | ¥94/1M |
78
+ | `gemini-3.1-flash-lite-preview` | Gemini 3.1 Flash Lite | ¥1/1M | ¥4/1M |
96
79
 
97
80
  ```bash
98
- skillfree pilot --type image --prompt "赛博朋克上海夜景" --output ./image.png
81
+ skillfree pilot --type chat --model gemini-3.1-pro-preview \
82
+ --prompt "分析这张财务图表的关键趋势" --file chart.png
99
83
  ```
100
84
 
101
- | 模型ID | 名称 | 积分 | 最适合的场景 |
102
- |--------|------|------|-------------|
103
- | `doubao-seedream-5.0-lite` | 即梦 Seedream 5.0 | 11 | **中文prompt直出,性价比最高**。对中文描述理解准确,国风、写实风格出色 |
104
- | `gemini-2.5-flash-image` | Gemini 2.5 Flash图像 | 14 | 快速图像生成,支持多轮对话修改图片 |
105
- | `gemini-3.1-flash-image-preview` | Gemini 3.1 Flash图像 | 16 | 最新Google图像模型,细节丰富 |
106
- | `qwen-image-edit-plus-20260226` | Qwen Image Edit | 27 | **图片编辑专用**。上传图片后修改局部内容(换背景、加元素等)|
107
- | `gpt-image-1.5-ssvip` | GPT Image 1.5 | 47 | **OpenAI图像旗舰**。真实感极强,适合产品图、人像、精细插画 |
108
- | `gemini-3-pro-image-preview` | Gemini 3 Pro图像 | 54 | **Google图像旗舰**。艺术创作、复杂场景构图首选 |
85
+ **Gemini Pro 适合:** 图文混合分析、多模态推理、超长文档、多文件联合分析
86
+ **Gemini Flash Lite 适合:** 大批量简单图文识别,极低成本
109
87
 
110
88
  ---
111
89
 
112
- ## 🎙️ 语音合成(tts)
90
+ ## 🎨 图像生成 — nano banana 系列
91
+
92
+ 基于 Google Gemini 图像模型。对自然语言描述理解准确,风格多样,中英文 prompt 均可,生成速度快。
93
+
94
+ | 模型ID | 展示名 | 价格 |
95
+ |--------|--------|------|
96
+ | `gemini-3.1-flash-image-preview` | **nano banana 2** ⭐ | ¥0.40/次 |
97
+ | `gemini-3-pro-image-preview` | **nano banana pro** | ¥1.40/次 |
113
98
 
114
99
  ```bash
115
- skillfree pilot --type tts --text "你好世界" --output hello.mp3
100
+ # 快速生成(推荐日常使用)
101
+ skillfree pilot --type image --model gemini-3.1-flash-image-preview \
102
+ --prompt "赛博朋克上海夜景,霓虹灯反射在雨后街道" --output ./image.png
103
+
104
+ # 旗舰品质(商业级创作)
105
+ skillfree pilot --type image --model gemini-3-pro-image-preview \
106
+ --prompt "产品包装图,极简风格,白底" --output ./image.png
116
107
  ```
117
108
 
118
- | 模型ID | 名称 | 积分 | 最适合的场景 |
119
- |--------|------|------|-------------|
120
- | `speech-2.8-hd` | MiniMax TTS 2.8 HD | 18 | **中文语音首选**。情感丰富、自然流畅,适合播客、短视频配音 |
121
- | `gemini-2.5-pro-preview-tts` | Gemini 2.5 Pro TTS | 18 | **英文语音首选**。多语言支持出色,英文发音自然,情绪丰富 |
122
- | `minimax-clone-lastversion` | MiniMax 声音克隆 | 27 | **克隆特定声音**。上传3-10秒音频样本,复刻任意声音特征 |
109
+ **nano banana 2:** 日常创作、概念图、插画,速度快性价比高
110
+ **nano banana pro:** 复杂场景构图、艺术风格精控、商业级输出
123
111
 
124
112
  ---
125
113
 
126
- ## 🎬 视频生成(video)
114
+ ## 🎬 视频生成 — Google Veo
127
115
 
128
- > 视频为异步任务:提交后自动轮询,完成后返回下载链接或自动保存本地。
116
+ Google Veo 系列,物理运动自然,画质细腻。文字描述直接生成视频,异步生成自动轮询返回结果,支持三档分辨率,**成功生成后才扣费**。
117
+
118
+ | 模型ID | 名称 | 720p | 1080p | 4K |
119
+ |--------|------|------|-------|-----|
120
+ | `veo-3.1-fast-generate-preview` | **Veo 3.1 Fast** ⭐ | ¥1.5/s | ¥1.5/s | ¥3.5/s |
121
+ | `veo-3.1-generate-preview` | **Veo 3.1** | ¥3.5/s | ¥3.5/s | ¥5.5/s |
129
122
 
130
123
  ```bash
131
- skillfree pilot --type video --model kling-v2-6-text2video --prompt "大龙虾在海底漫步"
132
- skillfree pilot --type video --model kling-v2-6-text2video --prompt "大龙虾在海底漫步" --output ./video.mp4
133
- skillfree task <task_id> --output ./video.mp4
124
+ # 快速版(推荐)
125
+ skillfree pilot --type video --model veo-3.1-fast-generate-preview \
126
+ --prompt "樱花花瓣在微风中缓缓飘落,日式庭院,电影感" \
127
+ --seconds 8 --size 1920x1080 --output ./video.mp4
128
+
129
+ # 旗舰版(商业级)
130
+ skillfree pilot --type video --model veo-3.1-generate-preview \
131
+ --prompt "产品展示视频,极简白色空间" \
132
+ --seconds 6 --size 3840x2160 --output ./video.mp4
134
133
  ```
135
134
 
136
- | 模型ID | 名称 | 积分 | 最适合的场景 |
137
- |--------|------|------|-------------|
138
- | `kling-v2-6-text2video` | 可灵 2.6 文生视频 | 427 | **旗舰首选**。快手出品,运动物理感最真实,商业广告级别 |
139
- | `kling-v2-6-image2video` | 可灵 2.6 图生视频 | 427 | 图生视频旗舰,电影级画质 |
140
- | `paiwo-v5.6-ttv` | 拍我 5.6 文生视频 | 160 | 性价比首选,适合商业级视频内容制作 |
141
- | `paiwo-v5.6-itv` | 拍我 5.6 图生视频 | 160 | 图片转视频,质量较高 |
142
- | `paiwo-v5.6-itv2` | 拍我 5.6 首尾帧 | 214 | **首尾帧控制**。指定视频开始和结束画面,精准控制故事走向 |
135
+ **分辨率:** `1280x720`(720p)· `1920x1080`(1080p)· `3840x2160`(4K)
136
+ **时长:** `--seconds 4 / 6 / 8`(默认 8 秒)
143
137
 
144
138
  ---
145
139
 
146
- ## 🎵 音乐生成(music)
140
+ ## 📑 文档 OCR 解析 — 合合信息
147
141
 
148
- ```bash
149
- skillfree pilot --type music --prompt "轻快的爵士背景音乐,适合咖啡厅" --output ./bgm.mp3
150
- ```
151
-
152
- | 模型ID | 名称 | 积分 | 最适合的场景 |
153
- |--------|------|------|-------------|
154
- | `chirp-v5` | Suno V5 | 107 | **自然风格音乐生成**。Suno出品,旋律感最强,适合背景音乐和纯音乐创作 |
155
- | `music-2.5` | MiniMax Music 2.5 | 80 | **带歌词的完整歌曲**。可指定歌词结构([verse][chorus]),适合有歌词要求的创作 |
142
+ 合合(hehe)专注文档智能解析,扫描版 PDF、图片文字、复杂排版(表格、公式、图文混排)识别率业界顶级,输出标准 Markdown,是纸质文档数字化的最优选择。
156
143
 
157
- ---
158
-
159
- ## 📄 文档OCR解析(ocr)
144
+ | 模型ID | 名称 | 计费 |
145
+ |--------|------|------|
146
+ | `hehe-tywd` | **合合 图文混排解析** | 按量计费 |
160
147
 
161
148
  ```bash
162
- skillfree pilot --type ocr --prompt "解析这个PDF" --file ./document.pdf
149
+ skillfree pilot --type ocr --model hehe-tywd --file ./contract_scan.pdf
163
150
  ```
164
151
 
165
- | 模型ID | 名称 | 积分 | 最适合的场景 |
166
- |--------|------|------|-------------|
167
- | `hehe-tywd` | 合合 图文混排解析 | 3 | **扫描版PDF/图片文字提取**。支持复杂排版(表格、公式、图文混排),输出Markdown,中文识别率极高 |
152
+ **适合:** 扫描版合同 / 报告、学术论文、含表格的财务文档、复杂排版文件
168
153
 
169
154
  ---
170
155
 
171
- ## 🔢 向量Embedding(embedding)
172
-
173
- | 模型ID | 名称 | 积分 | 最适合的场景 |
174
- |--------|------|------|-------------|
175
- | `doubao-embedding-vision-251215` | 豆包 Embedding Vision | 1 | **多模态向量化**。同时支持文本+图片输入,构建RAG检索系统、语义搜索 |
176
-
177
- ---
156
+ ## 🌐 实时搜索 — Tavily
178
157
 
179
- ## 快速决策指南
158
+ Tavily 是专为 AI 优化的搜索引擎,返回结构化摘要和来源,而非原始网页链接。适合实时信息查询、竞品调研、新闻追踪,配合对话模型使用效果最佳。
180
159
 
181
- ```
182
- # 对话 - 按需选档
183
- 高性能/默认 → claude-sonnet-4-6(12积分)⭐
184
- 最强效果 → claude-opus-4-6(59积分)
185
- 实时信息/联网搜索 → perplexity-sonar-pro-search-ssvip(12积分)
186
- 均衡日常 → gpt-5.2 / MiniMax-M2.5(6/3积分)
187
- 中文长文档 → kimi-k2.5(1积分)
188
- 高频批量/省钱 → DeepSeek-V3.2-Fast(1积分)
189
- 复杂推理/数学 → claude-sonnet-4-6-thinking(12积分)
190
-
191
- # 图像
192
- 中文prompt → doubao-seedream-5.0-lite(11积分)
193
- 写实/产品图 → gpt-image-1.5-ssvip(47积分)
194
- 图片编辑 → qwen-image-edit-plus-20260226(27积分)
195
-
196
- # 语音
197
- 中文配音 → speech-2.8-hd(18积分)
198
- 英文配音 → gemini-2.5-pro-preview-tts(18积分)
199
-
200
- # 视频
201
- 性价比 → paiwo-v5.6-ttv(160积分)
202
- 旗舰 → kling-v2-6-text2video(427积分)
203
-
204
- # 其他
205
- 音乐生成 → chirp-v5(107积分)
206
- 文档OCR解析 → hehe-tywd(3积分)
207
- ```
160
+ Tavily 作为独立技能安装使用,可与 SkillFree 对话模型组合构建搜索增强工作流。
208
161
 
209
162
  ---
210
163
 
211
- ## 🛠️ 常用命令
164
+ ## 快速上手
212
165
 
213
166
  ```bash
214
- skillfree models # 查看所有模型和积分
215
- skillfree balance # 查看余额
216
- skillfree auth login # 登录账号
167
+ skillfree models # 查看所有在线模型和定价
168
+ skillfree balance # 查看账户余额
169
+ skillfree auth login # 登录账号
217
170
  ```
218
171
 
219
172
  充值地址:https://skillfree.tech/app/billing
package/bin/skillfree.js CHANGED
@@ -6,7 +6,7 @@ const pkg = require('../package.json')
6
6
 
7
7
  program
8
8
  .name('skillfree')
9
- .description('🦞 一个 API,满足所有龙虾技能需求')
9
+ .description('🦞 模型与技能严选平台')
10
10
  .version(pkg.version)
11
11
 
12
12
  // ── auth ──────────────────────────────────────────────────────────────────────
@@ -27,7 +27,7 @@ auth
27
27
  })
28
28
  auth
29
29
  .command('status')
30
- .description('查看当前登录状态和积分')
30
+ .description('查看当前登录状态和余额')
31
31
  .action(async () => {
32
32
  const { authStatus } = require('../scripts/commands/auth')
33
33
  await authStatus()
@@ -36,27 +36,23 @@ auth
36
36
  // ── pilot ─────────────────────────────────────────────────────────────────────
37
37
  program
38
38
  .command('pilot')
39
- .description('AI 智能调度,支持 chat / image / tts / stt / video / music / search')
40
- .option('--type <type>', '调用类型: chat | image | tts | stt | video | music | ocr | embedding | search', 'chat')
41
- .option('--prompt <text>', '输入提示词 / 搜索词')
42
- .option('--text <text>', '文字内容(tts 用)')
43
- .option('--file <path>', '输入文件路径(stt 用)')
44
- .option('--output <path>', '输出文件路径')
45
- .option('--model <model>', '指定模型(可选)')
46
- .option('--voice <voice>', 'TTS 声音(默认 nova)')
47
- .option('--size <size>', '图像尺寸(默认 1024x1024)')
48
- .option('--duration <sec>', '视频/音乐时长(秒)')
49
- .option('--lyrics <text>', '歌词(music-2.5 用,支持 [verse][chorus] 标签)')
50
- .option('--max-results <n>', '搜索结果数量(search 用,默认 5)', '5')
39
+ .description('AI 智能调度:chat | image | video | ocr')
40
+ .option('--type <type>', '调用类型: chat | image | video | ocr', 'chat')
41
+ .option('--prompt <text>', '输入提示词')
42
+ .option('--file <path>', '输入文件路径(ocr 用)')
43
+ .option('--output <path>', '输出文件路径')
44
+ .option('--model <model>', '指定模型(可选,不填自动选最优)')
45
+ .option('--size <size>', '图像尺寸 或 视频分辨率(默认 1024x1024 / 1920x1080)')
46
+ .option('--seconds <sec>', '视频时长:4 | 6 | 8(默认 8)', '8')
51
47
  .action(async (flags) => {
52
48
  const { pilot } = require('../scripts/commands/pilot')
53
49
  await pilot(flags).catch(e => { console.error('❌', e.message); process.exit(1) })
54
50
  })
55
51
 
56
- // ── chat (快捷方式) ───────────────────────────────────────────────────────────
52
+ // ── chat(快捷方式)──────────────────────────────────────────────────────────
57
53
  program
58
54
  .command('chat <prompt>')
59
- .description('快捷对话(等同于 pilot --type chat)')
55
+ .description('快捷对话(默认使用 claude-sonnet-4-6)')
60
56
  .option('--model <model>', '指定模型')
61
57
  .action(async (prompt, flags) => {
62
58
  const { pilot } = require('../scripts/commands/pilot')
@@ -66,8 +62,8 @@ program
66
62
  // ── models ────────────────────────────────────────────────────────────────────
67
63
  program
68
64
  .command('models')
69
- .description('查看所有可用模型')
70
- .option('--type <type>', '按类型过滤: chat | image | tts | video | music | ocr | embedding')
65
+ .description('查看所有可用模型和定价')
66
+ .option('--type <type>', '按类型过滤: chat | image | video | ocr')
71
67
  .action(async (flags) => {
72
68
  const { listModels } = require('../scripts/commands/models')
73
69
  await listModels(flags.type).catch(e => { console.error('❌', e.message); process.exit(1) })
@@ -76,75 +72,12 @@ program
76
72
  // ── balance ───────────────────────────────────────────────────────────────────
77
73
  program
78
74
  .command('balance')
79
- .description('查看积分余额')
75
+ .description('查看账户余额')
80
76
  .action(async () => {
81
77
  const { authStatus } = require('../scripts/commands/auth')
82
78
  await authStatus()
83
79
  })
84
80
 
85
- // ── task(查询异步任务状态)────────────────────────────────────────────────────
86
- program
87
- .command('task <taskId>')
88
- .description('查询异步任务状态(视频/音乐等)')
89
- .option('--output <path>', '任务完成后自动下载到本地')
90
- .action(async (taskId, flags) => {
91
- const { request } = require('../scripts/lib/client')
92
- const fs = require('fs')
93
-
94
- // Suno 任务用 suno:xxx 格式区分
95
- if (taskId.startsWith('suno:')) {
96
- const sunoId = taskId.slice(5)
97
- const { BASE_URL, getApiKey } = require('../scripts/lib/client')
98
- const apiKey = getApiKey()
99
- const poll = await fetch(`${BASE_URL}/suno/fetch/${sunoId}`, {
100
- headers: { 'Authorization': `Bearer ${apiKey}` }
101
- })
102
- const result = await poll.json()
103
- if (result.code !== 'success') throw new Error(result.message || JSON.stringify(result))
104
- const status = result.data?.status
105
- const songs = result.data?.data || []
106
- console.log(`\n📋 Suno 任务 ${sunoId}`)
107
- console.log(` 状态:${status}`)
108
- if (status === 'SUCCESS') {
109
- songs.forEach((s, i) => {
110
- console.log(` 歌曲${i+1}:${s.title} ${s.audio_url}`)
111
- })
112
- if (flags.output && songs[0]?.audio_url) {
113
- const resp = await fetch(songs[0].audio_url)
114
- fs.writeFileSync(flags.output, Buffer.from(await resp.arrayBuffer()))
115
- console.log(`✅ 已下载到 ${flags.output}`)
116
- } else {
117
- console.log(`\n💡 下载:skillfree task ${taskId} --output ./music.mp3`)
118
- }
119
- } else {
120
- console.log(`\n⏳ 仍在生成中,稍后再查...`)
121
- }
122
- return
123
- }
124
-
125
- // 视频任务
126
- const res = await request(`/tasks/${taskId}`, { method: 'GET' })
127
- const task = await res.json()
128
- console.log(`\n📋 任务 ${taskId}`)
129
- console.log(` 状态:${task.status}`)
130
- console.log(` 模型:${task.model}`)
131
- const videoUrl = task.result_url || task.output_url
132
- if (task.status === 'completed' && videoUrl) {
133
- console.log(` 链接:${videoUrl}`)
134
- if (flags.output) {
135
- const resp = await fetch(videoUrl)
136
- fs.writeFileSync(flags.output, Buffer.from(await resp.arrayBuffer()))
137
- console.log(`✅ 已下载到 ${flags.output}`)
138
- } else {
139
- console.log(`\n💡 下载:skillfree task ${taskId} --output ./video.mp4`)
140
- }
141
- } else if (task.status === 'failed') {
142
- console.log(` 错误:${task.error || '未知错误'}`)
143
- } else {
144
- console.log(`\n⏳ 仍在生成中,稍后再查...`)
145
- }
146
- })
147
-
148
81
  // ── update ────────────────────────────────────────────────────────────────────
149
82
  program
150
83
  .command('update')
@@ -154,8 +87,7 @@ program
154
87
  console.log('🔄 正在更新 skillfree...')
155
88
  try {
156
89
  execSync('npm install -g skillfree@latest', { stdio: 'inherit' })
157
- const newPkg = JSON.parse(require('fs').readFileSync(require.resolve('skillfree/package.json'), 'utf8'))
158
- console.log(`✅ 更新成功,当前版本:v${newPkg.version}`)
90
+ console.log(`✅ 更新成功`)
159
91
  } catch (e) {
160
92
  console.error('❌ 更新失败,请手动执行:npm install -g skillfree@latest')
161
93
  process.exit(1)
package/install.sh CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
  # SkillFree 一键安装脚本
3
- # curl -fsSL https://cdn.jsdelivr.net/gh/ChongC1990/install@main/install.sh | bash
3
+ # curl -fsSL https://skillfree.tech/install.sh | bash
4
4
 
5
5
  # ── 颜色定义 ─────────────────────────────────────────────────────────────────
6
6
  CYAN='\033[0;36m'
@@ -32,8 +32,8 @@ cat << 'EOF'
32
32
  ╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
33
33
  EOF
34
34
  echo -e "${NC}"
35
- echo -e " ${DIM}🦞 一个 Key,调用 53+ 顶级 AI 模型${NC}"
36
- echo -e " ${DIM} Chat · Image · Video · TTS · Music · OCR · Search${NC}"
35
+ echo -e " ${DIM}🦞 模型与技能严选平台 只选每个场景最好用的那一个${NC}"
36
+ echo -e " ${DIM} Claude · GPT · Gemini · nano banana · Veo · 合合 OCR${NC}"
37
37
  echo ""
38
38
  echo -e " ${DIM}────────────────────────────────────────────────────${NC}"
39
39
  echo ""
@@ -94,13 +94,12 @@ fi
94
94
  # ── Step 3: 登录(从 /dev/tty 读取,兼容 curl | bash)────────────────────────
95
95
  step "[ 3 / 3 ] 登录账号"
96
96
  echo ""
97
- echo -e " 还没有账号?${CYAN}https://skillfree.tech/app${NC} 免费注册"
97
+ echo -e " 还没有账号?${CYAN}https://skillfree.tech/app${NC} 免费注册,注册即送 ¥5"
98
98
  echo -e " 注册后进入控制台 → ${BOLD}API Keys${NC} → 创建一个 Key,粘贴到下方"
99
99
  echo ""
100
100
 
101
101
  API_KEY=""
102
102
  while true; do
103
- # 强制从 /dev/tty 读取,避免 curl | bash 时 stdin 被占用
104
103
  printf " 请粘贴 API Key (sk-sf-...),输入 q 跳过: "
105
104
  read -r API_KEY </dev/tty
106
105
 
@@ -116,12 +115,10 @@ while true; do
116
115
  continue
117
116
  fi
118
117
 
119
- # 格式正确,直接保存(不做网络验证,避免 GFW 干扰)
120
118
  success "API Key 已保存"
121
119
  break
122
120
  done
123
121
 
124
- # 有效 Key → 交给 CLI 写入配置
125
122
  if [ -n "$API_KEY" ]; then
126
123
  SKILLFREE_API_KEY="$API_KEY" skillfree auth save "$API_KEY"
127
124
  fi
@@ -130,32 +127,33 @@ fi
130
127
  echo ""
131
128
  echo -e " ${DIM}────────────────────────────────────────────────────${NC}"
132
129
  echo ""
133
- echo -e "${BOLD_GREEN} 🎉 全部搞定!现在你可以直接用自然语言让 SkillFree 干活${NC}"
130
+ echo -e "${BOLD_GREEN} 🎉 安装完成!不要先研究命令,直接抄下面这些就能开始:${NC}"
134
131
  echo ""
135
- echo -e " ${BOLD}不要先研究命令,先直接抄下面这些:${NC}"
136
- echo ""
137
- echo -e " ${CYAN} 做一个网站:${NC}"
138
- echo -e " ${CYAN} $ skillfree chat \"帮我做一个极简风 SaaS 官网,包含首页文案、功能区块、价格表、FAQ,并输出完整 HTML + CSS + JS\"${NC}"
139
- echo ""
140
- echo -e " ${CYAN} 做一个短视频脚本:${NC}"
141
- echo -e " ${CYAN} $ skillfree chat \"帮我写一个 60 秒短视频脚本,主题是 AI 如何帮助中小企业降本增效,要有开场钩子、正文、结尾 CTA\"${NC}"
132
+
133
+ echo -e " ${CYAN}做一个网站:${NC}"
134
+ echo -e " ${DIM} $ skillfree chat \"帮我做一个极简风 SaaS 官网,包含首页文案、功能区块、价格表、FAQ,并输出完整 HTML + CSS + JS\"${NC}"
142
135
  echo ""
143
- echo -e " ${CYAN} 生成一张配图:${NC}"
144
- echo -e " ${CYAN} $ skillfree pilot --type image --prompt \"科技感蓝紫色 AI 工作台插画,适合官网头图\" --output ./hero.png${NC}"
136
+
137
+ echo -e " ${CYAN}写一个短视频脚本:${NC}"
138
+ echo -e " ${DIM} $ skillfree chat \"帮我写一个 60 秒短视频脚本,主题是 AI 如何帮助中小企业降本增效,要有开场钩子、正文、结尾 CTA\"${NC}"
145
139
  echo ""
146
- echo -e " ${CYAN} 做一个视频:${NC}"
147
- echo -e " ${CYAN} $ skillfree pilot --type video --model paiwo-v5.6-ttv --prompt \"一只未来感龙虾在霓虹都市中行走,电影感运镜,8秒\" --output ./video.mp4${NC}"
140
+
141
+ echo -e " ${CYAN}生成一张官网头图:${NC}"
142
+ echo -e " ${DIM} $ skillfree pilot --type image --prompt \"科技感蓝紫色 AI 工作台插画,适合官网头图\" --output ./hero.png${NC}"
148
143
  echo ""
149
- echo -e " ${CYAN} 做一段中文配音:${NC}"
150
- echo -e " ${CYAN} $ skillfree pilot --type tts --model speech-2.8-hd --text \"欢迎来到 SkillFree,现在开始你的 AI 创作之旅。\" --output ./voice.mp3${NC}"
144
+
145
+ echo -e " ${CYAN}做一个视频:${NC}"
146
+ echo -e " ${DIM} $ skillfree pilot --type video --prompt \"一只未来感龙虾在霓虹都市中行走,电影感运镜\" --seconds 8 --size 1920x1080 --output ./video.mp4${NC}"
151
147
  echo ""
152
- echo -e " ${CYAN} 查今天 AI 新闻:${NC}"
153
- echo -e " ${CYAN} $ skillfree pilot --type search --prompt \"今天最重要的 AI 新闻,帮我总结成 5 条\"${NC}"
148
+
149
+ echo -e " ${CYAN}解析一份合同/文档:${NC}"
150
+ echo -e " ${DIM} $ skillfree pilot --type ocr --file ./contract.pdf --output ./result.md${NC}"
154
151
  echo ""
155
- echo -e " ${DIM}更多能力:${NC}"
156
- echo -e " ${DIM} skillfree models # 查看全部模型${NC}"
157
- echo -e " ${DIM} skillfree balance # 查看积分余额${NC}"
152
+
153
+ echo -e " ${DIM}更多命令:${NC}"
154
+ echo -e " ${DIM} skillfree models # 查看全部模型和定价${NC}"
155
+ echo -e " ${DIM} skillfree balance # 查看账户余额${NC}"
158
156
  echo -e " ${DIM} skillfree auth status # 查看登录状态${NC}"
159
157
  echo ""
160
- echo -e " ${DIM}充值积分:${NC}${CYAN}https://skillfree.tech/app/topup${NC}"
158
+ echo -e " ${DIM}充值地址:${NC}${CYAN}https://skillfree.tech/app/billing${NC}"
161
159
  echo ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillfree",
3
- "version": "0.1.29",
3
+ "version": "0.1.38",
4
4
  "description": "🦞 一个 API,满足所有龙虾技能需求",
5
5
  "main": "bin/skillfree.js",
6
6
  "bin": {
@@ -10,27 +10,35 @@ async function listModels(type) {
10
10
  const t = m.type || 'chat'
11
11
  if (type && t !== type) continue
12
12
  if (!groups[t]) groups[t] = []
13
- groups[t].push(m.id)
13
+ groups[t].push(m)
14
14
  }
15
15
 
16
16
  const typeLabel = {
17
- chat: '💬 对话',
18
- image: '🎨 图像',
19
- tts: '🔊 语音合成',
20
- video: '🎬 视频',
21
- music: '🎵 音乐',
22
- ocr: '📄 OCR',
23
- embedding: '🔢 Embedding',
17
+ chat: '💬 对话',
18
+ image: '🎨 图像',
19
+ video: '🎬 视频',
20
+ ocr: '📄 OCR 解析',
21
+ search: '🌐 搜索',
24
22
  }
25
23
 
26
- console.log('\n🦞 SkillFree 可用模型\n')
27
- for (const [t, ids] of Object.entries(groups)) {
24
+ console.log('\n🦞 SkillFree 严选模型\n')
25
+ for (const [t, models] of Object.entries(groups)) {
28
26
  console.log(`${typeLabel[t] || t}`)
29
- ids.forEach(id => console.log(` ${id}`))
27
+ for (const m of models) {
28
+ let price = ''
29
+ if (m.tokenBased) {
30
+ price = `输入 ¥${((m.inputPrice || 0) / 100).toFixed(0)}/1M · 输出 ¥${((m.outputPrice || 0) / 100).toFixed(0)}/1M`
31
+ } else if (m.pricePerSec) {
32
+ price = `720p ¥${((m.pricePerSec['1280x720'] || 0) / 100).toFixed(1)}/s · 1080p ¥${((m.pricePerSec['1920x1080'] || 0) / 100).toFixed(1)}/s · 4K ¥${((m.pricePerSec['3840x2160'] || 0) / 100).toFixed(1)}/s`
33
+ } else if (m.estimatedCredits) {
34
+ price = `¥${(m.estimatedCredits / 100).toFixed(2)}/次`
35
+ }
36
+ const label = m.label ? ` ${m.label}` : ''
37
+ console.log(` ${m.id}${label ? ' (' + m.label + ')' : ''} ${price}`)
38
+ }
30
39
  console.log()
31
40
  }
32
- console.log(`共 ${all.length} 个模型`)
33
- console.log(`\n用法示例:skillfree pilot --type chat --model DeepSeek-V3.2-Fast --prompt "你好"`)
41
+ console.log(`\n用法:skillfree pilot --type chat --model claude-sonnet-4-6 --prompt "你好"`)
34
42
  }
35
43
 
36
44
  module.exports = { listModels }