felo-ai 0.2.0 → 0.2.2
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/README.en.md +2 -1
- package/README.md +48 -48
- package/docs/EXAMPLES.md +143 -192
- package/docs/FAQ.md +4 -4
- package/felo-search/README.md +92 -147
- package/felo-search/SKILL.md +17 -18
- package/felo-slides/LICENSE +21 -0
- package/felo-slides/README.md +87 -0
- package/felo-slides/SKILL.md +154 -0
- package/felo-slides/scripts/run_ppt_task.mjs +251 -0
- package/package.json +2 -2
- package/src/cli.js +7 -5
- package/src/slides.js +39 -19
- package/README.ja.md +0 -87
- package/README.ko.md +0 -87
- package/README.zh-CN.md +0 -87
- package/README.zh-TW.md +0 -87
package/docs/FAQ.md
CHANGED
|
@@ -191,10 +191,10 @@ Use Felo to find [query]
|
|
|
191
191
|
|
|
192
192
|
**A:** Yes! Fully supports multi-language queries.
|
|
193
193
|
|
|
194
|
-
Ask in any language, get answers in that language. Even mixed-language queries work:
|
|
195
|
-
- "React
|
|
196
|
-
- "
|
|
197
|
-
- "Python vs Java
|
|
194
|
+
Ask in any language, get answers in that language. Even mixed-language queries work, for example:
|
|
195
|
+
- "React adoption in China"
|
|
196
|
+
- "Hospitals in Tokyo with Chinese-speaking staff"
|
|
197
|
+
- "Python vs Java for beginners?"
|
|
198
198
|
|
|
199
199
|
### Q: What's the response format?
|
|
200
200
|
|
package/felo-search/README.md
CHANGED
|
@@ -112,8 +112,8 @@ You: What's the weather in Tokyo today?
|
|
|
112
112
|
Claude: Currently 15°C in Tokyo with partly cloudy skies. High of 18°C,
|
|
113
113
|
low of 12°C. 20% chance of rain.
|
|
114
114
|
|
|
115
|
-
You:
|
|
116
|
-
Claude:
|
|
115
|
+
You: What's the weather in Hangzhou tomorrow?
|
|
116
|
+
Claude: Hangzhou tomorrow: partly cloudy to clear, 8-16°C, NE wind 3-4.
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
**Restaurants & Food**
|
|
@@ -124,11 +124,11 @@ Claude: Top 3 ramen shops in Osaka:
|
|
|
124
124
|
2. Kamukura - Rich chicken broth, Michelin Bib Gourmand
|
|
125
125
|
3. Menya Joroku - Tsukemen specialist
|
|
126
126
|
|
|
127
|
-
You:
|
|
128
|
-
Claude:
|
|
129
|
-
1.
|
|
130
|
-
2.
|
|
131
|
-
3.
|
|
127
|
+
You: Where to find the best xiaolongbao in Shanghai?
|
|
128
|
+
Claude: Shanghai xiaolongbao recommendations:
|
|
129
|
+
1. Nanxiang Steamed Bun - Old brand near Yuyuan, thin skin, juicy
|
|
130
|
+
2. Jiajia Soup Dumplings - Popular on Huanghe Road, good value
|
|
131
|
+
3. Din Tai Fung - Taiwan brand, consistent quality
|
|
132
132
|
```
|
|
133
133
|
|
|
134
134
|
**Shopping & Prices**
|
|
@@ -139,11 +139,11 @@ Claude: iPhone 15 Pro (128GB) prices:
|
|
|
139
139
|
- Amazon: $979 (save $20)
|
|
140
140
|
- Best Buy: $999 (with trade-in deals)
|
|
141
141
|
|
|
142
|
-
You: MacBook Air M3
|
|
143
|
-
Claude: MacBook Air M3 (13
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
142
|
+
You: MacBook Air M3 price
|
|
143
|
+
Claude: MacBook Air M3 (13") prices:
|
|
144
|
+
- Apple: $1,099 (256GB)
|
|
145
|
+
- Amazon: $1,049 (with coupons)
|
|
146
|
+
- Best Buy: $1,079 (with perks)
|
|
147
147
|
```
|
|
148
148
|
|
|
149
149
|
**Travel**
|
|
@@ -155,12 +155,12 @@ Claude: Kyoto weekend highlights:
|
|
|
155
155
|
- Nishiki Market food tour (closes 6pm)
|
|
156
156
|
- Gion district evening walk (geisha spotting)
|
|
157
157
|
|
|
158
|
-
You:
|
|
159
|
-
Claude:
|
|
160
|
-
-
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
158
|
+
You: What to do in Taipei?
|
|
159
|
+
Claude: Taipei must-sees:
|
|
160
|
+
- Taipei 101 - Observatory for night views
|
|
161
|
+
- National Palace Museum - Chinese art and artifacts
|
|
162
|
+
- Shilin Night Market - Food and snacks
|
|
163
|
+
- Jiufen Old Street - Nostalgic mountain town
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
### Developer Scenarios
|
|
@@ -174,12 +174,12 @@ Claude: React 19 key features (released Dec 2024):
|
|
|
174
174
|
- Actions for form handling
|
|
175
175
|
- use() hook for async data
|
|
176
176
|
|
|
177
|
-
You: Next.js 15
|
|
178
|
-
Claude: Next.js 15
|
|
179
|
-
- Turbopack
|
|
180
|
-
-
|
|
181
|
-
-
|
|
182
|
-
- React 19
|
|
177
|
+
You: Next.js 15 new features
|
|
178
|
+
Claude: Next.js 15 main updates:
|
|
179
|
+
- Turbopack stable (5x faster builds)
|
|
180
|
+
- Partial Prerendering (PPR)
|
|
181
|
+
- Improved cache control
|
|
182
|
+
- React 19 support
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
**Library Comparison**
|
|
@@ -194,15 +194,15 @@ Claude: Vite vs Webpack (2024):
|
|
|
194
194
|
Use Vite for: New projects, fast iteration
|
|
195
195
|
Use Webpack for: Complex builds, legacy support
|
|
196
196
|
|
|
197
|
-
You: Vue 3
|
|
198
|
-
Claude: Vue 3 vs React
|
|
197
|
+
You: Vue 3 vs React for new projects
|
|
198
|
+
Claude: Vue 3 vs React:
|
|
199
199
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
200
|
+
Learning curve: Vue gentler, React needs JSX
|
|
201
|
+
Performance: Similar, Vue slightly ahead
|
|
202
|
+
Ecosystem: React larger, Vue sufficient
|
|
203
|
+
Jobs: More React positions
|
|
204
204
|
|
|
205
|
-
|
|
205
|
+
Suggestion: React if team knows it, Vue for newcomers
|
|
206
206
|
```
|
|
207
207
|
|
|
208
208
|
**Tech Trends**
|
|
@@ -214,109 +214,54 @@ Claude: AI developments (Jan 2026):
|
|
|
214
214
|
- Anthropic Claude 4 with extended context
|
|
215
215
|
- Meta's open-source LLaMA 4
|
|
216
216
|
|
|
217
|
-
You:
|
|
218
|
-
Claude:
|
|
219
|
-
-
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
217
|
+
You: Important tech news recently
|
|
218
|
+
Claude: Recent tech (Feb 2026):
|
|
219
|
+
- Apple Vision Pro 2 announced
|
|
220
|
+
- NVIDIA B100 GPU in production
|
|
221
|
+
- Tesla FSD v13 rollout
|
|
222
|
+
- Microsoft Windows 12 preview
|
|
223
223
|
```
|
|
224
224
|
|
|
225
225
|
### Multi-language Queries
|
|
226
226
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
-
|
|
242
|
-
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
-
|
|
253
|
-
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
-
|
|
261
|
-
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
**Japanese**
|
|
266
|
-
```
|
|
267
|
-
You: 東京で今人気のレストランは?
|
|
268
|
-
Claude: 東京の人気レストラン(2026年):
|
|
269
|
-
- Narisawa - モダン日本料理、ミシュラン2つ星
|
|
270
|
-
- Den - 革新的和食、世界のベストレストラン
|
|
271
|
-
- Florilège - フレンチ、予約困難
|
|
272
|
-
- Sushi Saito - 江戸前寿司の最高峰
|
|
273
|
-
[出典: 食べログ, ミシュランガイド]
|
|
274
|
-
|
|
275
|
-
You: 最新のAI技術について教えて
|
|
276
|
-
Claude: 最新AI技術(2026年):
|
|
277
|
-
- GPT-5の登場で自然言語処理が進化
|
|
278
|
-
- マルチモーダルAIが主流に
|
|
279
|
-
- エッジAIの普及が加速
|
|
280
|
-
- AI規制法が各国で施行
|
|
281
|
-
[出典: ITmedia, 日経新聞]
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
**Korean**
|
|
285
|
-
```
|
|
286
|
-
You: 서울 맛집 추천
|
|
287
|
-
Claude: 서울 맛집 추천:
|
|
288
|
-
- 광장시장 - 전통 한식, 마약김밥
|
|
289
|
-
- 명동 - 길거리 음식, 쇼핑
|
|
290
|
-
- 강남 - 고급 레스토랑, 카페
|
|
291
|
-
- 이태원 - 세계 각국 요리
|
|
292
|
-
[출처: 망고플레이트, 네이버 블로그]
|
|
293
|
-
|
|
294
|
-
You: 최신 프로그래밍 트렌드
|
|
295
|
-
Claude: 최신 프로그래밍 트렌드 (2026):
|
|
296
|
-
- AI 코딩 어시스턴트 보편화
|
|
297
|
-
- Rust 인기 급상승
|
|
298
|
-
- 서버리스 아키텍처 확산
|
|
299
|
-
- WebAssembly 생태계 성장
|
|
300
|
-
[출처: Stack Overflow, GitHub Trends]
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
**Mixed Language**
|
|
304
|
-
```
|
|
305
|
-
You: React 在中国的使用情况
|
|
306
|
-
Claude: React 在中国的使用情况:
|
|
307
|
-
- 市场份额: 约 45%(仅次于 Vue)
|
|
308
|
-
- 主要用户: 大厂(阿里、字节、腾讯)
|
|
309
|
-
- 生态: 完善,Ant Design、Taro 等
|
|
310
|
-
- 趋势: 持续增长,Next.js 受欢迎
|
|
311
|
-
[来源: State of JS China, 掘金]
|
|
312
|
-
|
|
313
|
-
You: 日本のAI企業について
|
|
314
|
-
Claude: 日本の主要AI企業:
|
|
315
|
-
- Preferred Networks - 深層学習フレームワーク
|
|
316
|
-
- ABEJA - エッジAIプラットフォーム
|
|
317
|
-
- PKSHA Technology - 自然言語処理
|
|
318
|
-
- Nextremer - 対話AI
|
|
319
|
-
[出典: 日経ビジネス, TechCrunch Japan]
|
|
227
|
+
Felo supports Chinese, Japanese, Korean, and English. Ask in any language and get answers in that language. Example in English:
|
|
228
|
+
|
|
229
|
+
**Latest AI & places**
|
|
230
|
+
```
|
|
231
|
+
You: Latest developments in AI
|
|
232
|
+
Claude: AI developments (2026):
|
|
233
|
+
- LLM parameters exceed 10 trillion
|
|
234
|
+
- Multimodal understanding near human level
|
|
235
|
+
- AI coding assistants used by 60%+ developers
|
|
236
|
+
- Embodied AI robots commercialized
|
|
237
|
+
[Sources: industry reports]
|
|
238
|
+
|
|
239
|
+
You: What to do in Shenzhen
|
|
240
|
+
Claude: Shenzhen recommendations:
|
|
241
|
+
- Window of the World - Miniature landmarks
|
|
242
|
+
- Happy Valley - Theme park
|
|
243
|
+
- Dameisha Beach - Free beach
|
|
244
|
+
- OCT-LOFT - Arts and culture
|
|
245
|
+
[Sources: travel guides]
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**React adoption & comparisons**
|
|
249
|
+
```
|
|
250
|
+
You: React adoption in China
|
|
251
|
+
Claude: React in China:
|
|
252
|
+
- Market share: ~45% (second to Vue)
|
|
253
|
+
- Major users: Alibaba, ByteDance, Tencent
|
|
254
|
+
- Ecosystem: Ant Design, Taro, etc.
|
|
255
|
+
- Trend: Growing, Next.js popular
|
|
256
|
+
[Sources: State of JS China]
|
|
257
|
+
|
|
258
|
+
You: Python vs Java for beginners
|
|
259
|
+
Claude: Python vs Java:
|
|
260
|
+
- Learning: Python easier to start
|
|
261
|
+
- Jobs: Both strong, Java more enterprise
|
|
262
|
+
- Use Python for: Data, scripting, prototyping
|
|
263
|
+
- Use Java for: Enterprise, Android, backend
|
|
264
|
+
[Sources: Stack Overflow, job boards]
|
|
320
265
|
```
|
|
321
266
|
|
|
322
267
|
### Complex Queries
|
|
@@ -333,15 +278,15 @@ Claude: AI's impact on software development (2024-2026):
|
|
|
333
278
|
|
|
334
279
|
Future: AI pair programming becomes standard practice
|
|
335
280
|
|
|
336
|
-
You:
|
|
337
|
-
Claude:
|
|
281
|
+
You: Impact of quantum computing on cryptography
|
|
282
|
+
Claude: Quantum computing and cryptography:
|
|
338
283
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
284
|
+
Threat: RSA, ECC and similar algorithms could be broken
|
|
285
|
+
Timeline: Estimated 2030-2035
|
|
286
|
+
Response: Post-quantum cryptography (PQC) standardization
|
|
287
|
+
Progress: NIST has published PQC algorithm standards
|
|
343
288
|
|
|
344
|
-
|
|
289
|
+
Advice: Plan crypto migration in advance
|
|
345
290
|
```
|
|
346
291
|
|
|
347
292
|
**Comparisons**
|
|
@@ -359,18 +304,18 @@ Claude: AWS vs Azure vs GCP (2026):
|
|
|
359
304
|
Choose Azure: Microsoft integration, hybrid cloud
|
|
360
305
|
Choose GCP: Data/ML workloads, cost-sensitive
|
|
361
306
|
|
|
362
|
-
You:
|
|
363
|
-
Claude: Python vs Go vs Rust
|
|
307
|
+
You: Programming language performance: Python vs Go vs Rust
|
|
308
|
+
Claude: Python vs Go vs Rust:
|
|
364
309
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
310
|
+
Speed: Rust > Go > Python (up to 100x)
|
|
311
|
+
Memory: Rust lowest, Python highest
|
|
312
|
+
Productivity: Python > Go > Rust
|
|
313
|
+
Learning curve: Python gentlest, Rust steepest
|
|
369
314
|
|
|
370
|
-
|
|
371
|
-
- Python:
|
|
372
|
-
- Go:
|
|
373
|
-
- Rust:
|
|
315
|
+
Use cases:
|
|
316
|
+
- Python: Data science, scripting, rapid prototyping
|
|
317
|
+
- Go: Microservices, cloud-native, concurrency
|
|
318
|
+
- Rust: Systems programming, performance-critical, safety
|
|
374
319
|
```
|
|
375
320
|
|
|
376
321
|
**[See 40+ more examples →](../docs/EXAMPLES.md)**
|
package/felo-search/SKILL.md
CHANGED
|
@@ -118,16 +118,16 @@ The API returns JSON with this structure:
|
|
|
118
118
|
Parse the JSON response and present it to the user in this format:
|
|
119
119
|
|
|
120
120
|
```
|
|
121
|
-
##
|
|
121
|
+
## Answer
|
|
122
122
|
[Display the answer field]
|
|
123
123
|
|
|
124
|
-
##
|
|
125
|
-
|
|
124
|
+
## Query Analysis
|
|
125
|
+
Optimized search terms: [list query_analysis items]
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
## Complete Examples
|
|
129
129
|
|
|
130
|
-
### Example 1:
|
|
130
|
+
### Example 1: Weather query
|
|
131
131
|
|
|
132
132
|
**User asks:** "What's the weather in Tokyo today?"
|
|
133
133
|
|
|
@@ -156,24 +156,23 @@ curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
|
156
156
|
rm -f /tmp/felo_query.json
|
|
157
157
|
```
|
|
158
158
|
|
|
159
|
-
### Example 2:
|
|
159
|
+
### Example 2: Local news / events
|
|
160
160
|
|
|
161
|
-
**User asks:** "
|
|
161
|
+
**User asks:** "What's new in Hangzhou recently?"
|
|
162
162
|
|
|
163
163
|
**Expected response format:**
|
|
164
164
|
```
|
|
165
|
-
##
|
|
166
|
-
|
|
167
|
-
新的地铁线路开通等。详细信息...
|
|
165
|
+
## Answer
|
|
166
|
+
Recent news in Hangzhou: Asian Games venue upgrades completed, West Lake night tours launched, new metro lines opened. Details...
|
|
168
167
|
|
|
169
|
-
##
|
|
170
|
-
|
|
168
|
+
## Query Analysis
|
|
169
|
+
Optimized search terms: Hangzhou recent news, Hangzhou events, 杭州 最近 新闻
|
|
171
170
|
```
|
|
172
171
|
|
|
173
172
|
**Bash command:**
|
|
174
173
|
```bash
|
|
175
174
|
cat > /tmp/felo_query.json << 'EOF'
|
|
176
|
-
{"query": "
|
|
175
|
+
{"query": "What's new in Hangzhou recently"}
|
|
177
176
|
EOF
|
|
178
177
|
|
|
179
178
|
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
@@ -184,14 +183,14 @@ curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
|
184
183
|
rm -f /tmp/felo_query.json
|
|
185
184
|
```
|
|
186
185
|
|
|
187
|
-
### Example 3:
|
|
186
|
+
### Example 3: Travel / things to do
|
|
188
187
|
|
|
189
|
-
**User asks:** "
|
|
188
|
+
**User asks:** "What are the best things to do in Taipei?"
|
|
190
189
|
|
|
191
190
|
**Bash command:**
|
|
192
191
|
```bash
|
|
193
192
|
cat > /tmp/felo_query.json << 'EOF'
|
|
194
|
-
{"query": "
|
|
193
|
+
{"query": "What are the best things to do in Taipei"}
|
|
195
194
|
EOF
|
|
196
195
|
|
|
197
196
|
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
@@ -202,14 +201,14 @@ curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
|
202
201
|
rm -f /tmp/felo_query.json
|
|
203
202
|
```
|
|
204
203
|
|
|
205
|
-
### Example 4:
|
|
204
|
+
### Example 4: Restaurants / recommendations
|
|
206
205
|
|
|
207
|
-
**User asks:** "
|
|
206
|
+
**User asks:** "Popular restaurants in Tokyo?"
|
|
208
207
|
|
|
209
208
|
**Bash command:**
|
|
210
209
|
```bash
|
|
211
210
|
cat > /tmp/felo_query.json << 'EOF'
|
|
212
|
-
{"query": "
|
|
211
|
+
{"query": "Popular restaurants in Tokyo"}
|
|
213
212
|
EOF
|
|
214
213
|
|
|
215
214
|
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Felo Slides Skill Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Felo Slides Skill for Claude Code
|
|
2
|
+
|
|
3
|
+
Generate presentation slides with the Felo PPT Task API (asynchronous workflow).
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Generate a PPT deck from a single prompt
|
|
8
|
+
- Poll task status automatically until completion/failure/timeout
|
|
9
|
+
- Return `ppt_url` immediately when the task is completed (fallback to `live_doc_url`)
|
|
10
|
+
- Return `task_id` for follow-up tracking
|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
### 1) Install the skill
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npx @claude/skills add felo-slides
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Or install manually from this repository:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Linux/macOS
|
|
24
|
+
cp -r felo-slides ~/.claude/skills/
|
|
25
|
+
|
|
26
|
+
# Windows (PowerShell)
|
|
27
|
+
Copy-Item -Recurse felo-slides "$env:USERPROFILE\.claude\skills\"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2) Configure API key
|
|
31
|
+
|
|
32
|
+
Create an API key at [felo.ai](https://felo.ai) -> Settings -> API Keys, then set:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Linux/macOS
|
|
36
|
+
export FELO_API_KEY="your-api-key-here"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```powershell
|
|
40
|
+
# Windows PowerShell
|
|
41
|
+
$env:FELO_API_KEY="your-api-key-here"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3) Trigger the skill
|
|
45
|
+
|
|
46
|
+
- Intent trigger: "Create a 10-slide product pitch deck"
|
|
47
|
+
- Explicit trigger: `/felo-slides your topic`
|
|
48
|
+
|
|
49
|
+
## API Workflow
|
|
50
|
+
|
|
51
|
+
Based on Felo v2 PPT Task API:
|
|
52
|
+
|
|
53
|
+
1. Create task: `POST /v2/ppts`
|
|
54
|
+
2. Query status (optional): `GET /v2/tasks/{task_id}/status`
|
|
55
|
+
3. Query historical/result: `GET /v2/tasks/{task_id}/historical`
|
|
56
|
+
|
|
57
|
+
The skill polls every 10 seconds (max wait 1800 seconds). It stops immediately on `COMPLETED`/`SUCCESS` and returns `ppt_url` (fallback `live_doc_url`).
|
|
58
|
+
|
|
59
|
+
Internal script example:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
node felo-slides/scripts/run_ppt_task.mjs --query "Felo product intro, 3 slides" --interval 10 --max-wait 1800
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Troubleshooting
|
|
66
|
+
|
|
67
|
+
### `FELO_API_KEY` is missing
|
|
68
|
+
|
|
69
|
+
Set the environment variable and restart the Claude Code session.
|
|
70
|
+
|
|
71
|
+
### `INVALID_API_KEY`
|
|
72
|
+
|
|
73
|
+
The key is invalid or revoked. Generate a new key from [felo.ai](https://felo.ai).
|
|
74
|
+
|
|
75
|
+
### Task keeps running for too long
|
|
76
|
+
|
|
77
|
+
The task may still be processing. Retry later with the same context, or run the script with `--verbose`.
|
|
78
|
+
|
|
79
|
+
### Task completed but no `ppt_url` / `live_doc_url`
|
|
80
|
+
|
|
81
|
+
Use the returned `task_id` to query historical endpoint again.
|
|
82
|
+
|
|
83
|
+
## Links
|
|
84
|
+
|
|
85
|
+
- [PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html)
|
|
86
|
+
- [Felo Open Platform](https://openapi.felo.ai/docs/)
|
|
87
|
+
- [Get API Key](https://felo.ai)
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: felo-slides
|
|
3
|
+
description: "Generate PPT/slides with Felo PPT Task API in Claude Code. Use when users ask to create/make/generate/export presentations or slide decks, or when explicit commands like /felo-slides are used. Handles API key check, task creation, polling, and final ppt_url output."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Felo Slides Skill
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
Trigger this skill for requests about creating presentation files:
|
|
11
|
+
|
|
12
|
+
- Create/generate slides from a topic or outline
|
|
13
|
+
- Turn notes into a PPT deck
|
|
14
|
+
- Build a presentation with a page count requirement
|
|
15
|
+
- Export presentation content into a shareable slide link
|
|
16
|
+
|
|
17
|
+
Trigger keywords:
|
|
18
|
+
- Chinese prompts about making slides or presentations
|
|
19
|
+
- English: slides, PPT, presentation deck, generate presentation
|
|
20
|
+
- Explicit commands: `/felo-slides`, "use felo slides"
|
|
21
|
+
|
|
22
|
+
Do NOT use this skill for:
|
|
23
|
+
- Real-time information lookup (use `felo-search`)
|
|
24
|
+
- Questions about local codebase files
|
|
25
|
+
- Pure text tasks that do not require slide generation
|
|
26
|
+
|
|
27
|
+
## Setup
|
|
28
|
+
|
|
29
|
+
### 1. Get API key
|
|
30
|
+
|
|
31
|
+
1. Visit [felo.ai](https://felo.ai)
|
|
32
|
+
2. Open Settings -> API Keys
|
|
33
|
+
3. Create and copy your API key
|
|
34
|
+
|
|
35
|
+
### 2. Configure environment variable
|
|
36
|
+
|
|
37
|
+
Linux/macOS:
|
|
38
|
+
```bash
|
|
39
|
+
export FELO_API_KEY="your-api-key-here"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Windows PowerShell:
|
|
43
|
+
```powershell
|
|
44
|
+
$env:FELO_API_KEY="your-api-key-here"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## How to Execute
|
|
48
|
+
|
|
49
|
+
Use Bash tool commands and follow this workflow exactly.
|
|
50
|
+
|
|
51
|
+
### Step 1: Precheck API key
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
if [ -z "$FELO_API_KEY" ]; then
|
|
55
|
+
echo "ERROR: FELO_API_KEY not set"
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
If key is missing, stop and return setup instructions.
|
|
61
|
+
|
|
62
|
+
### Step 2: Run Node Script (create + poll)
|
|
63
|
+
|
|
64
|
+
Use the bundled script (no `jq` dependency):
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
node felo-slides/scripts/run_ppt_task.mjs \
|
|
68
|
+
--query "USER_PROMPT_HERE" \
|
|
69
|
+
--interval 10 \
|
|
70
|
+
--max-wait 1800 \
|
|
71
|
+
--timeout 60
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Script behavior:
|
|
75
|
+
- Creates task via `POST https://openapi.felo.ai/v2/ppts`
|
|
76
|
+
- Polls via `GET https://openapi.felo.ai/v2/tasks/{task_id}/historical`
|
|
77
|
+
- Treats `COMPLETED`/`SUCCESS` as success terminal (case-insensitive)
|
|
78
|
+
- Treats `FAILED`/`ERROR` as failure terminal
|
|
79
|
+
- Stops polling immediately on terminal status
|
|
80
|
+
- Prints `ppt_url` on success (fallback: `live_doc_url`)
|
|
81
|
+
|
|
82
|
+
Optional debug output:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
node felo-slides/scripts/run_ppt_task.mjs \
|
|
86
|
+
--query "USER_PROMPT_HERE" \
|
|
87
|
+
--interval 10 \
|
|
88
|
+
--max-wait 1800 \
|
|
89
|
+
--json \
|
|
90
|
+
--verbose
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
This outputs structured JSON including:
|
|
94
|
+
- `task_id`
|
|
95
|
+
- `task_status`
|
|
96
|
+
- `ppt_url`
|
|
97
|
+
- `live_doc_url`
|
|
98
|
+
- `livedoc_short_id`
|
|
99
|
+
- `ppt_business_id`
|
|
100
|
+
|
|
101
|
+
### Step 4: Return structured result
|
|
102
|
+
|
|
103
|
+
On success, return:
|
|
104
|
+
- `ppt_url` immediately (script default output, fallback `live_doc_url`)
|
|
105
|
+
- if `--json` is used, also include `task_id`, terminal status, and optional metadata
|
|
106
|
+
|
|
107
|
+
## Output Format
|
|
108
|
+
|
|
109
|
+
Use this response structure:
|
|
110
|
+
|
|
111
|
+
```markdown
|
|
112
|
+
## PPT Generation Result
|
|
113
|
+
- Task ID: <task_id>
|
|
114
|
+
- Status: <status>
|
|
115
|
+
- PPT URL: <ppt_url>
|
|
116
|
+
- Live Doc URL: <live_doc_url or N/A>
|
|
117
|
+
|
|
118
|
+
## Notes
|
|
119
|
+
- livedoc_short_id: <value or N/A>
|
|
120
|
+
- ppt_business_id: <value or N/A>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Error format:
|
|
124
|
+
|
|
125
|
+
```markdown
|
|
126
|
+
## PPT Generation Failed
|
|
127
|
+
- Error Type: <error code or category>
|
|
128
|
+
- Message: <readable message>
|
|
129
|
+
- Suggested Action: <next step>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Error Handling
|
|
133
|
+
|
|
134
|
+
Known API error codes:
|
|
135
|
+
- `INVALID_API_KEY` (401): key invalid or revoked
|
|
136
|
+
- `PPT_TASK_CREATE_FAILED` (502): create task downstream failed
|
|
137
|
+
- `PPT_TASK_QUERY_FAILED` (502): query task downstream failed
|
|
138
|
+
|
|
139
|
+
Timeout handling:
|
|
140
|
+
- If timeout reached, return last known status and instruct user to retry later
|
|
141
|
+
- Include `task_id` so user can query again
|
|
142
|
+
|
|
143
|
+
## Important Notes
|
|
144
|
+
|
|
145
|
+
- Always execute this skill when user intent is slide generation.
|
|
146
|
+
- Always return `task_id` so follow-up queries can continue from the same task.
|
|
147
|
+
- Do not claim completion without a terminal status.
|
|
148
|
+
- Keep API calls minimal: create once, then poll.
|
|
149
|
+
|
|
150
|
+
## References
|
|
151
|
+
|
|
152
|
+
- [Felo PPT Task API](https://openapi.felo.ai/docs/api-reference/v2/ppt-tasks.html)
|
|
153
|
+
- [Felo Open Platform](https://openapi.felo.ai/docs/)
|
|
154
|
+
|