felo-ai 0.2.11 → 0.2.12
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/CHANGELOG.md +4 -0
- package/README.md +72 -54
- package/docs/FAQ.md +10 -6
- package/felo-search/README.md +17 -1
- package/felo-search/SKILL.md +11 -77
- package/felo-search/scripts/search.sh +49 -0
- package/felo-slides/README.md +6 -2
- package/felo-superAgent/README.md +13 -1
- package/felo-web-fetch/README.md +6 -2
- package/felo-x-search/clawhub.json +12 -0
- package/package.json +4 -3
- package/scripts/openclaw-install.sh +44 -0
- package/README.en.md +0 -129
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.12] - 2026-03-102
|
|
9
|
+
|
|
10
|
+
Streamline the process and reduce the need for confirmation and selection.
|
|
11
|
+
|
|
8
12
|
## [0.2.10] - 2026-03-10
|
|
9
13
|
|
|
10
14
|
### Fixed
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Ask anything. Get current answers. Generate slides from a prompt.**
|
|
4
4
|
|
|
5
|
-
[npm package: **felo-ai**](https://www.npmjs.com/package/felo-ai)
|
|
5
|
+
[npm package: **felo-ai**](https://www.npmjs.com/package/felo-ai) - Real-time search, PPT generation, web page extraction, YouTube subtitles, and X (Twitter) search from the terminal. Also works as Claude Code skills. Supports Chinese, English, Japanese, and Korean.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/felo-ai) []()
|
|
8
8
|
|
|
@@ -43,21 +43,21 @@ export FELO_API_KEY="your-api-key-here"
|
|
|
43
43
|
$env:FELO_API_KEY="your-api-key-here"
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Get your API key from [felo.ai](https://felo.ai) (Settings
|
|
46
|
+
Get your API key from [felo.ai](https://felo.ai) (Settings > API Keys). Environment variable overrides config if both are set.
|
|
47
47
|
|
|
48
48
|
### Commands
|
|
49
49
|
|
|
50
|
-
| Command
|
|
51
|
-
|
|
|
52
|
-
| `felo search "<query>"`
|
|
53
|
-
| `felo slides "<prompt>"`
|
|
54
|
-
| `felo web-fetch --url <url>`
|
|
55
|
-
| `felo youtube-subtitling -v <url-or-id>` | Fetch YouTube video subtitles by video URL or ID
|
|
56
|
-
| `felo x "<query>"` | Search X (Twitter) tweets, users, and replies
|
|
57
|
-
| `felo config set FELO_API_KEY <key>`
|
|
58
|
-
| `felo config get FELO_API_KEY`
|
|
59
|
-
| `felo config list`
|
|
60
|
-
| `felo config path`
|
|
50
|
+
| Command | Description |
|
|
51
|
+
| ---------------------------------------- | ----------------------------------------------------- |
|
|
52
|
+
| `felo search "<query>"` | Search for current info (weather, news, prices, etc.) |
|
|
53
|
+
| `felo slides "<prompt>"` | Generate PPT; returns link when done |
|
|
54
|
+
| `felo web-fetch --url <url>` | Fetch webpage content (markdown/text/html) |
|
|
55
|
+
| `felo youtube-subtitling -v <url-or-id>` | Fetch YouTube video subtitles by video URL or ID |
|
|
56
|
+
| `felo x "<query>"` | Search X (Twitter) tweets, users, and replies |
|
|
57
|
+
| `felo config set FELO_API_KEY <key>` | Save API key to config |
|
|
58
|
+
| `felo config get FELO_API_KEY` | Print stored key |
|
|
59
|
+
| `felo config list` | List config keys |
|
|
60
|
+
| `felo config path` | Show config file path |
|
|
61
61
|
|
|
62
62
|
### Examples
|
|
63
63
|
|
|
@@ -97,16 +97,16 @@ node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --read
|
|
|
97
97
|
|
|
98
98
|
**How to pass parameters**
|
|
99
99
|
|
|
100
|
-
| Parameter
|
|
101
|
-
|
|
102
|
-
| URL (required)
|
|
103
|
-
| Output format
|
|
104
|
-
| Target element
|
|
105
|
-
| Wait for element
|
|
106
|
-
| Readability
|
|
107
|
-
| Crawl mode
|
|
108
|
-
| Timeout (seconds)
|
|
109
|
-
| Full JSON response | `-j`, `--json`
|
|
100
|
+
| Parameter | CLI option | Example | Description |
|
|
101
|
+
| ------------------ | --------------------- | ---------------------------------- | ------------------------------------------------------ |
|
|
102
|
+
| URL (required) | `-u`, `--url` | `--url "https://example.com"` | Page to fetch |
|
|
103
|
+
| Output format | `-f`, `--format` | `--format text` or `-f markdown` | `html`, `text`, or `markdown` (default: markdown) |
|
|
104
|
+
| Target element | `--target-selector` | `--target-selector "article.main"` | CSS selector; only this element is fetched |
|
|
105
|
+
| Wait for element | `--wait-for-selector` | `--wait-for-selector ".content"` | Wait for selector before fetching (e.g. dynamic pages) |
|
|
106
|
+
| Readability | `--readability` | `--readability` | Main article content only (no nav/ads) |
|
|
107
|
+
| Crawl mode | `--crawl-mode` | `--crawl-mode fine` | `fast` (default) or `fine` |
|
|
108
|
+
| Timeout (seconds) | `-t`, `--timeout` | `--timeout 120` or `-t 90` | Request timeout (default: 60) |
|
|
109
|
+
| Full JSON response | `-j`, `--json` | `-j` or `--json` | Print full API response instead of content only |
|
|
110
110
|
|
|
111
111
|
Examples with multiple options:
|
|
112
112
|
|
|
@@ -177,13 +177,31 @@ This repo also provides **Claude Code** skills. If you use [Claude Code](https:/
|
|
|
177
177
|
|
|
178
178
|
### Quick Start (Search skill)
|
|
179
179
|
|
|
180
|
-
|
|
180
|
+
**Quick Start**: Using the npm [skills](https://www.npmjs.com/package/skills) CLI:
|
|
181
181
|
|
|
182
182
|
```bash
|
|
183
|
-
npx
|
|
183
|
+
npx skills add Felo-Inc/felo-skills --skill felo-search
|
|
184
184
|
```
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
Or manually copy to the skills directory:
|
|
187
|
+
|
|
188
|
+
**Linux/macOS:**
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
git clone https://github.com/Felo-Inc/felo-skills.git && cd felo-skills
|
|
192
|
+
cp -r felo-search ~/.claude/skills/
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Windows (PowerShell):**
|
|
196
|
+
|
|
197
|
+
```powershell
|
|
198
|
+
git clone https://github.com/Felo-Inc/felo-skills.git; cd felo-skills
|
|
199
|
+
Copy-Item -Recurse felo-search "$env:USERPROFILE\.claude\skills\"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
See [Manual installation](#manual-installation) for details.
|
|
203
|
+
|
|
204
|
+
Get your API key from [felo.ai](https://felo.ai) (Settings > API Keys), then configure:
|
|
187
205
|
|
|
188
206
|
**Linux/macOS:**
|
|
189
207
|
|
|
@@ -207,7 +225,7 @@ Ask Claude: "What's the weather in Tokyo today?"
|
|
|
207
225
|
|
|
208
226
|
**You're done!** The skill triggers automatically for any question needing current information.
|
|
209
227
|
|
|
210
|
-
**Felo Slides (PPT):** In terminal run `felo slides "your topic"`. In Claude Code install with `npx
|
|
228
|
+
**Felo Slides (PPT):** In terminal run `felo slides "your topic"`. In Claude Code install with `npx skills add Felo-Inc/felo-skills --skill felo-slides`, then use `/felo-slides your topic`. See [felo-slides](./felo-slides/README.md).
|
|
211
229
|
|
|
212
230
|
**Felo Web Fetch:** In terminal run `felo web-fetch --url "https://example.com"` (see [felo-web-fetch](./felo-web-fetch/README.md)). In Claude Code you can install the skill and use it to fetch webpage content from a URL.
|
|
213
231
|
|
|
@@ -276,7 +294,7 @@ Claude: [Recent AI breakthroughs, company announcements]
|
|
|
276
294
|
|
|
277
295
|
Works in Chinese (Simplified & Traditional), Japanese, Korean, and English. Ask in any language, get answers in that language.
|
|
278
296
|
|
|
279
|
-
**[See 40+ more examples
|
|
297
|
+
**[See 40+ more examples >](./docs/EXAMPLES.md)**
|
|
280
298
|
|
|
281
299
|
---
|
|
282
300
|
|
|
@@ -290,7 +308,7 @@ Works in Chinese (Simplified & Traditional), Japanese, Korean, and English. Ask
|
|
|
290
308
|
|
|
291
309
|
### Manual installation
|
|
292
310
|
|
|
293
|
-
If
|
|
311
|
+
If you don't want to use `npx skills add` or don't have the skills CLI, you can install it manually:
|
|
294
312
|
|
|
295
313
|
1. Clone this repository:
|
|
296
314
|
|
|
@@ -312,7 +330,7 @@ If quick install doesn’t work:
|
|
|
312
330
|
Copy-Item -Recurse felo-search "$env:USERPROFILE\.claude\skills\"
|
|
313
331
|
```
|
|
314
332
|
|
|
315
|
-
3. Get API key from [felo.ai](https://felo.ai) (Settings
|
|
333
|
+
3. Get API key from [felo.ai](https://felo.ai) (Settings > API Keys)
|
|
316
334
|
|
|
317
335
|
4. Set environment variable (see Quick Start)
|
|
318
336
|
|
|
@@ -326,7 +344,7 @@ claude skills list
|
|
|
326
344
|
|
|
327
345
|
You should see `felo-search` in the output.
|
|
328
346
|
|
|
329
|
-
Test: ask Claude _"Latest news about quantum computing"_. If you see an AI-generated answer, it
|
|
347
|
+
Test: ask Claude _"Latest news about quantum computing"_. If you see an AI-generated answer, it's working.
|
|
330
348
|
|
|
331
349
|
---
|
|
332
350
|
|
|
@@ -350,7 +368,7 @@ Test: ask Claude _"Latest news about quantum computing"_. If you see an AI-gener
|
|
|
350
368
|
|
|
351
369
|
### Q: "INVALID_API_KEY" error?
|
|
352
370
|
|
|
353
|
-
**A:** Your API key is incorrect or revoked. Generate a new one at [felo.ai](https://felo.ai) (Settings
|
|
371
|
+
**A:** Your API key is incorrect or revoked. Generate a new one at [felo.ai](https://felo.ai) (Settings > API Keys).
|
|
354
372
|
|
|
355
373
|
### Q: Does it work in Chinese/Japanese/Korean?
|
|
356
374
|
|
|
@@ -366,9 +384,9 @@ Test: ask Claude _"Latest news about quantum computing"_. If you see an AI-gener
|
|
|
366
384
|
|
|
367
385
|
### Q: How fast are responses?
|
|
368
386
|
|
|
369
|
-
**A:** Typically 2
|
|
387
|
+
**A:** Typically 2-5 seconds depending on query complexity.
|
|
370
388
|
|
|
371
|
-
**[Full FAQ
|
|
389
|
+
**[Full FAQ >](./docs/FAQ.md)**
|
|
372
390
|
|
|
373
391
|
---
|
|
374
392
|
|
|
@@ -387,19 +405,19 @@ Real-time web search with AI-generated answers.
|
|
|
387
405
|
- Product comparisons
|
|
388
406
|
- Any question with "latest", "recent", "best", "how to"
|
|
389
407
|
|
|
390
|
-
**[View skill documentation
|
|
408
|
+
**[View skill documentation >](./felo-search/)**
|
|
391
409
|
|
|
392
410
|
### felo-slides
|
|
393
411
|
|
|
394
|
-
Generate PPT: in terminal use `felo slides "your topic"`, in Claude Code use `/felo-slides your topic`. **[View skill documentation
|
|
412
|
+
Generate PPT: in terminal use `felo slides "your topic"`, in Claude Code use `/felo-slides your topic`. **[View skill documentation >](./felo-slides/)**
|
|
395
413
|
|
|
396
414
|
### felo-web-fetch
|
|
397
415
|
|
|
398
|
-
Fetch and extract webpage content: in terminal use `felo web-fetch --url "https://example.com"`, in Claude Code use `/felo-web-fetch https://example.com`. **[View skill documentation
|
|
416
|
+
Fetch and extract webpage content: in terminal use `felo web-fetch --url "https://example.com"`, in Claude Code use `/felo-web-fetch https://example.com`. **[View skill documentation >](./felo-web-fetch/)**
|
|
399
417
|
|
|
400
418
|
### felo-x-search
|
|
401
419
|
|
|
402
|
-
Search X (Twitter) tweets, users, and replies: in terminal use `felo x "query"`, in Claude Code use `/felo-x-search query`. **[View skill documentation
|
|
420
|
+
Search X (Twitter) tweets, users, and replies: in terminal use `felo x "query"`, in Claude Code use `/felo-x-search query`. **[View skill documentation >](./felo-x-search/SKILL.md)**
|
|
403
421
|
|
|
404
422
|
---
|
|
405
423
|
|
|
@@ -413,36 +431,36 @@ We welcome contributions:
|
|
|
413
431
|
|
|
414
432
|
Run CLI tests: `npm test`
|
|
415
433
|
|
|
416
|
-
**[Contributing guide
|
|
434
|
+
**[Contributing guide >](./CONTRIBUTING.md)**
|
|
417
435
|
|
|
418
436
|
---
|
|
419
437
|
|
|
420
438
|
## Links
|
|
421
439
|
|
|
422
|
-
- **[npm: felo-ai](https://www.npmjs.com/package/felo-ai)**
|
|
423
|
-
- **[Felo Open Platform](https://openapi.felo.ai/docs/)**
|
|
424
|
-
- **[API Documentation](https://openapi.felo.ai/docs/api-reference/v2/chat.html)**
|
|
425
|
-
- **[Claude Code](https://claude.ai/code)**
|
|
426
|
-
- **[Full examples](./docs/EXAMPLES.md)**
|
|
427
|
-
- **[FAQ](./docs/FAQ.md)**
|
|
428
|
-
- **[GitHub Issues](https://github.com/Felo-Inc/felo-skills/issues)**
|
|
440
|
+
- **[npm: felo-ai](https://www.npmjs.com/package/felo-ai)** - CLI package
|
|
441
|
+
- **[Felo Open Platform](https://openapi.felo.ai/docs/)** - Get your API key
|
|
442
|
+
- **[API Documentation](https://openapi.felo.ai/docs/api-reference/v2/chat.html)** - API reference
|
|
443
|
+
- **[Claude Code](https://claude.ai/code)** - AI assistant CLI
|
|
444
|
+
- **[Full examples](./docs/EXAMPLES.md)** - 40+ usage examples
|
|
445
|
+
- **[FAQ](./docs/FAQ.md)** - Troubleshooting
|
|
446
|
+
- **[GitHub Issues](https://github.com/Felo-Inc/felo-skills/issues)** - Report bugs
|
|
429
447
|
|
|
430
448
|
---
|
|
431
449
|
|
|
432
450
|
## Publishing to npm (maintainers)
|
|
433
451
|
|
|
434
|
-
|
|
452
|
+
This project uses GitHub Actions to automatically publish when **pushing a tag** (referencing the [editablejs/editable](https://github.com/editablejs/editable/blob/main/.github/workflows/main.yml) publishing workflow).
|
|
435
453
|
|
|
436
|
-
1.
|
|
437
|
-
|
|
454
|
+
1. **Configure NPM_TOKEN**
|
|
455
|
+
Generate an **Automation** type Publish token in [npm Access Tokens](https://www.npmjs.com/account/tokens). Add a secret named `NPM_TOKEN` in the repository's **Settings > Secrets and variables > Actions**.
|
|
438
456
|
|
|
439
|
-
2.
|
|
440
|
-
|
|
457
|
+
2. **Publish a new version**
|
|
458
|
+
Update the `version` in `package.json`, then commit and push the tag:
|
|
441
459
|
```bash
|
|
442
460
|
git tag v0.2.8
|
|
443
461
|
git push origin v0.2.8
|
|
444
462
|
```
|
|
445
|
-
CI
|
|
463
|
+
CI will automatically run `npm publish` to publish to [npm](https://www.npmjs.com/package/felo-ai).
|
|
446
464
|
|
|
447
465
|
---
|
|
448
466
|
|
|
@@ -456,13 +474,13 @@ Run CLI tests: `npm test`
|
|
|
456
474
|
|
|
457
475
|
## Version history
|
|
458
476
|
|
|
459
|
-
See [CHANGELOG.md](./CHANGELOG.md) for release notes (e.g. breaking changes such as `web-extract`
|
|
477
|
+
See [CHANGELOG.md](./CHANGELOG.md) for release notes (e.g. breaking changes such as `web-extract` -> `web-fetch` in v0.2.7).
|
|
460
478
|
|
|
461
479
|
---
|
|
462
480
|
|
|
463
481
|
## License
|
|
464
482
|
|
|
465
|
-
MIT
|
|
483
|
+
MIT - see [LICENSE](./felo-search/LICENSE) in the repo for details.
|
|
466
484
|
|
|
467
485
|
---
|
|
468
486
|
|
package/docs/FAQ.md
CHANGED
|
@@ -18,21 +18,25 @@ Quick answers to common questions about Felo Search skill.
|
|
|
18
18
|
|
|
19
19
|
**A:** Install Node.js first.
|
|
20
20
|
|
|
21
|
-
Download from [nodejs.org](https://nodejs.org) and install.
|
|
21
|
+
Download from [nodejs.org](https://nodejs.org) and install. 然后可用一键安装:
|
|
22
|
+
|
|
22
23
|
```bash
|
|
23
|
-
npx
|
|
24
|
+
npx skills add Felo-Inc/felo-skills --skill felo-search
|
|
24
25
|
```
|
|
25
26
|
|
|
27
|
+
若失败,请使用 [README 中的手动安装](https://github.com/Felo-Inc/felo-skills#manual-installation):将 `felo-search` 复制到 `~/.claude/skills/`(Windows: `%USERPROFILE%\.claude\skills\`)。
|
|
28
|
+
|
|
26
29
|
### Q: Permission denied during install
|
|
27
30
|
|
|
28
|
-
**A:**
|
|
31
|
+
**A:** 若复制目录时权限不足,可用一键安装(无需 sudo):
|
|
29
32
|
|
|
30
|
-
**Linux/macOS:**
|
|
31
33
|
```bash
|
|
32
|
-
|
|
34
|
+
npx skills add Felo-Inc/felo-skills --skill felo-search
|
|
33
35
|
```
|
|
34
36
|
|
|
35
|
-
**
|
|
37
|
+
**Linux/macOS 手动复制:** 确保 `~/.claude/skills/` 存在且有写权限后执行 `cp -r felo-search ~/.claude/skills/`。
|
|
38
|
+
|
|
39
|
+
**Windows:** 若复制到 `%USERPROFILE%\.claude\skills\` 失败,请以管理员身份运行 PowerShell。
|
|
36
40
|
|
|
37
41
|
### Q: Skill not showing up after install
|
|
38
42
|
|
package/felo-search/README.md
CHANGED
|
@@ -32,10 +32,26 @@ Felo Search integrates [Felo AI](https://felo.ai) into Claude Code, enabling:
|
|
|
32
32
|
|
|
33
33
|
### Step 1: Install
|
|
34
34
|
|
|
35
|
+
**一键安装(推荐):**
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx skills add Felo-Inc/felo-skills --skill felo-search
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**手动安装:** 若上述命令不可用,可克隆本仓库后将 `felo-search` 复制到 Claude Code 的 skills 目录:
|
|
42
|
+
|
|
43
|
+
**Linux/macOS:**
|
|
35
44
|
```bash
|
|
36
|
-
|
|
45
|
+
cp -r felo-search ~/.claude/skills/
|
|
37
46
|
```
|
|
38
47
|
|
|
48
|
+
**Windows (PowerShell):**
|
|
49
|
+
```powershell
|
|
50
|
+
Copy-Item -Recurse felo-search "$env:USERPROFILE\.claude\skills\"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
(Clone this repo first if needed: `git clone https://github.com/Felo-Inc/felo-skills.git`.)
|
|
54
|
+
|
|
39
55
|
**Verify:** Restart Claude Code and run:
|
|
40
56
|
```bash
|
|
41
57
|
claude skills list
|
package/felo-search/SKILL.md
CHANGED
|
@@ -64,48 +64,18 @@ For permanent configuration, add it to your shell profile (~/.bashrc, ~/.zshrc)
|
|
|
64
64
|
|
|
65
65
|
## How to Execute
|
|
66
66
|
|
|
67
|
-
When this skill is triggered, execute the
|
|
68
|
-
|
|
69
|
-
### Step 1: Check API Key
|
|
70
|
-
|
|
71
|
-
Use the Bash tool to verify the API key is set:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
if [ -z "$FELO_API_KEY" ]; then
|
|
75
|
-
echo "ERROR: FELO_API_KEY not set"
|
|
76
|
-
exit 1
|
|
77
|
-
fi
|
|
78
|
-
echo "API key configured"
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
If the API key is not set, inform the user with setup instructions and STOP.
|
|
82
|
-
|
|
83
|
-
### Step 2: Make API Request
|
|
84
|
-
|
|
85
|
-
Extract the user's query and call the Felo API using a temporary JSON file to handle special characters:
|
|
67
|
+
When this skill is triggered, execute the search script using the Bash tool:
|
|
86
68
|
|
|
87
69
|
```bash
|
|
88
|
-
|
|
89
|
-
cat > /tmp/felo_query.json << 'EOF'
|
|
90
|
-
{"query": "USER_QUERY_HERE"}
|
|
91
|
-
EOF
|
|
92
|
-
|
|
93
|
-
# Call Felo API
|
|
94
|
-
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
95
|
-
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
96
|
-
-H "Content-Type: application/json" \
|
|
97
|
-
-d @/tmp/felo_query.json
|
|
98
|
-
|
|
99
|
-
# Clean up
|
|
100
|
-
rm -f /tmp/felo_query.json
|
|
70
|
+
~/.agents/skills/felo-search/scripts/search.sh "USER_QUERY_HERE"
|
|
101
71
|
```
|
|
102
72
|
|
|
103
73
|
**Notes:**
|
|
104
74
|
- Replace `USER_QUERY_HERE` with the actual user query
|
|
105
|
-
-
|
|
106
|
-
-
|
|
75
|
+
- The script handles API key validation, JSON escaping, and API calls
|
|
76
|
+
- Supports all special characters, Unicode (Chinese, Japanese, etc.), and quotes
|
|
107
77
|
|
|
108
|
-
###
|
|
78
|
+
### Parse and Format Response
|
|
109
79
|
|
|
110
80
|
The API returns JSON with this structure:
|
|
111
81
|
```json
|
|
@@ -115,7 +85,7 @@ The API returns JSON with this structure:
|
|
|
115
85
|
}
|
|
116
86
|
```
|
|
117
87
|
|
|
118
|
-
|
|
88
|
+
Present the response to the user in this format:
|
|
119
89
|
|
|
120
90
|
```
|
|
121
91
|
## Answer
|
|
@@ -144,16 +114,7 @@ Optimized search terms: Tokyo weather today, 東京 天気 今日
|
|
|
144
114
|
|
|
145
115
|
**Bash command:**
|
|
146
116
|
```bash
|
|
147
|
-
|
|
148
|
-
{"query": "What's the weather in Tokyo today?"}
|
|
149
|
-
EOF
|
|
150
|
-
|
|
151
|
-
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
152
|
-
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
153
|
-
-H "Content-Type: application/json" \
|
|
154
|
-
-d @/tmp/felo_query.json
|
|
155
|
-
|
|
156
|
-
rm -f /tmp/felo_query.json
|
|
117
|
+
~/.agents/skills/felo-search/scripts/search.sh "What's the weather in Tokyo today?"
|
|
157
118
|
```
|
|
158
119
|
|
|
159
120
|
### Example 2: Local news / events
|
|
@@ -171,16 +132,7 @@ Optimized search terms: Hangzhou recent news, Hangzhou events, 杭州 最近 新
|
|
|
171
132
|
|
|
172
133
|
**Bash command:**
|
|
173
134
|
```bash
|
|
174
|
-
|
|
175
|
-
{"query": "What's new in Hangzhou recently"}
|
|
176
|
-
EOF
|
|
177
|
-
|
|
178
|
-
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
179
|
-
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
180
|
-
-H "Content-Type: application/json" \
|
|
181
|
-
-d @/tmp/felo_query.json
|
|
182
|
-
|
|
183
|
-
rm -f /tmp/felo_query.json
|
|
135
|
+
~/.agents/skills/felo-search/scripts/search.sh "What's new in Hangzhou recently"
|
|
184
136
|
```
|
|
185
137
|
|
|
186
138
|
### Example 3: Travel / things to do
|
|
@@ -189,16 +141,7 @@ rm -f /tmp/felo_query.json
|
|
|
189
141
|
|
|
190
142
|
**Bash command:**
|
|
191
143
|
```bash
|
|
192
|
-
|
|
193
|
-
{"query": "What are the best things to do in Taipei"}
|
|
194
|
-
EOF
|
|
195
|
-
|
|
196
|
-
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
197
|
-
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
198
|
-
-H "Content-Type: application/json" \
|
|
199
|
-
-d @/tmp/felo_query.json
|
|
200
|
-
|
|
201
|
-
rm -f /tmp/felo_query.json
|
|
144
|
+
~/.agents/skills/felo-search/scripts/search.sh "What are the best things to do in Taipei"
|
|
202
145
|
```
|
|
203
146
|
|
|
204
147
|
### Example 4: Restaurants / recommendations
|
|
@@ -207,16 +150,7 @@ rm -f /tmp/felo_query.json
|
|
|
207
150
|
|
|
208
151
|
**Bash command:**
|
|
209
152
|
```bash
|
|
210
|
-
|
|
211
|
-
{"query": "Popular restaurants in Tokyo"}
|
|
212
|
-
EOF
|
|
213
|
-
|
|
214
|
-
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
215
|
-
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
216
|
-
-H "Content-Type: application/json" \
|
|
217
|
-
-d @/tmp/felo_query.json
|
|
218
|
-
|
|
219
|
-
rm -f /tmp/felo_query.json
|
|
153
|
+
~/.agents/skills/felo-search/scripts/search.sh "Popular restaurants in Tokyo"
|
|
220
154
|
```
|
|
221
155
|
|
|
222
156
|
## Error Handling
|
|
@@ -279,7 +213,7 @@ To use this skill, you need to set up your Felo API Key:
|
|
|
279
213
|
- This skill should be used for any question requiring current information
|
|
280
214
|
- Execute immediately using the Bash tool - don't just describe what you would do
|
|
281
215
|
- Multi-language support: Fully supports Simplified Chinese, Traditional Chinese (Taiwan), Japanese, and English
|
|
282
|
-
- Handle special characters properly: Use
|
|
216
|
+
- Handle special characters properly: Use the search script which handles JSON escaping via sed
|
|
283
217
|
- Parse JSON response: Extract answer and query_analysis fields
|
|
284
218
|
- Format nicely: Present results in a clean, readable format with proper markdown
|
|
285
219
|
- The API returns results in the same language as the query when possible
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Cross-platform compatibility
|
|
5
|
+
if ! command -v curl &> /dev/null; then
|
|
6
|
+
echo "ERROR: curl is required but not installed"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
# Check if API key is set
|
|
11
|
+
if [ -z "$FELO_API_KEY" ]; then
|
|
12
|
+
echo "ERROR: FELO_API_KEY not set"
|
|
13
|
+
echo ""
|
|
14
|
+
echo "To use this skill, you need to set up your Felo API Key:"
|
|
15
|
+
echo ""
|
|
16
|
+
echo "1. Get your API key from https://felo.ai (Settings → API Keys)"
|
|
17
|
+
echo "2. Set the environment variable:"
|
|
18
|
+
echo ""
|
|
19
|
+
echo " Linux/macOS/WSL:"
|
|
20
|
+
echo " export FELO_API_KEY=\"your-api-key-here\""
|
|
21
|
+
echo ""
|
|
22
|
+
echo " Windows (PowerShell):"
|
|
23
|
+
echo " \$env:FELO_API_KEY=\"your-api-key-here\""
|
|
24
|
+
echo ""
|
|
25
|
+
echo " Windows (CMD):"
|
|
26
|
+
echo " set FELO_API_KEY=your-api-key-here"
|
|
27
|
+
echo ""
|
|
28
|
+
echo "3. Restart Claude Code or reload the environment"
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
# Get query from first argument
|
|
33
|
+
QUERY="$1"
|
|
34
|
+
|
|
35
|
+
if [ -z "$QUERY" ]; then
|
|
36
|
+
echo "ERROR: No query provided"
|
|
37
|
+
echo "Usage: search.sh \"your search query\""
|
|
38
|
+
exit 1
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Escape JSON string: replace backslash, then quotes, then control chars
|
|
42
|
+
# Compatible with sed on Linux, macOS, and Windows (Git Bash/WSL)
|
|
43
|
+
ESCAPED_QUERY=$(printf '%s\n' "$QUERY" | sed 's/\\/\\\\/g; s/"/\\"/g; s/ /\\t/g')
|
|
44
|
+
|
|
45
|
+
# Call Felo API
|
|
46
|
+
curl -s -X POST https://openapi.felo.ai/v2/chat \
|
|
47
|
+
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
48
|
+
-H "Content-Type: application/json" \
|
|
49
|
+
-d "{\"query\": \"$ESCAPED_QUERY\"}"
|
package/felo-slides/README.md
CHANGED
|
@@ -13,11 +13,13 @@ Generate presentation slides with the Felo PPT Task API (asynchronous workflow).
|
|
|
13
13
|
|
|
14
14
|
### 1) Install the skill
|
|
15
15
|
|
|
16
|
+
**一键安装(推荐):**
|
|
17
|
+
|
|
16
18
|
```bash
|
|
17
|
-
npx
|
|
19
|
+
npx skills add Felo-Inc/felo-skills --skill felo-slides
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
**手动安装:** 若上述命令不可用,从本仓库复制到 Claude Code 的 skills 目录:
|
|
21
23
|
|
|
22
24
|
```bash
|
|
23
25
|
# Linux/macOS
|
|
@@ -27,6 +29,8 @@ cp -r felo-slides ~/.claude/skills/
|
|
|
27
29
|
Copy-Item -Recurse felo-slides "$env:USERPROFILE\.claude\skills\"
|
|
28
30
|
```
|
|
29
31
|
|
|
32
|
+
(Clone the repo first if needed: `git clone https://github.com/Felo-Inc/felo-skills.git`.)
|
|
33
|
+
|
|
30
34
|
### 2) Configure API key
|
|
31
35
|
|
|
32
36
|
Create an API key at [felo.ai](https://felo.ai) -> Settings -> API Keys, then set:
|
|
@@ -31,8 +31,20 @@
|
|
|
31
31
|
|
|
32
32
|
### 1. 安装
|
|
33
33
|
|
|
34
|
+
**一键安装(推荐):**
|
|
35
|
+
|
|
34
36
|
```bash
|
|
35
|
-
npx
|
|
37
|
+
npx skills add Felo-Inc/felo-skills --skill felo-superAgent
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**手动安装:** 若上述命令不可用,从本仓库复制到 Claude Code 的 skills 目录:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Linux/macOS
|
|
44
|
+
cp -r felo-superAgent ~/.claude/skills/
|
|
45
|
+
|
|
46
|
+
# Windows (PowerShell)
|
|
47
|
+
Copy-Item -Recurse felo-superAgent "$env:USERPROFILE\.claude\skills\"
|
|
36
48
|
```
|
|
37
49
|
|
|
38
50
|
(若为本地 skill,确保 Cursor/Claude Code 已配置该 skill 路径。)
|
package/felo-web-fetch/README.md
CHANGED
|
@@ -15,11 +15,13 @@ Extract structured webpage content from URLs with the Felo Web Extract API.
|
|
|
15
15
|
|
|
16
16
|
### 1) Install the skill
|
|
17
17
|
|
|
18
|
+
**一键安装(推荐):**
|
|
19
|
+
|
|
18
20
|
```bash
|
|
19
|
-
npx
|
|
21
|
+
npx skills add Felo-Inc/felo-skills --skill felo-web-fetch
|
|
20
22
|
```
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
**手动安装:** 若上述命令不可用,从本仓库复制到 Claude Code 的 skills 目录:
|
|
23
25
|
|
|
24
26
|
```bash
|
|
25
27
|
# Linux/macOS
|
|
@@ -29,6 +31,8 @@ cp -r felo-web-fetch ~/.claude/skills/
|
|
|
29
31
|
Copy-Item -Recurse felo-web-fetch "$env:USERPROFILE\.claude\skills\"
|
|
30
32
|
```
|
|
31
33
|
|
|
34
|
+
(Clone the repo first if needed: `git clone https://github.com/Felo-Inc/felo-skills.git`.)
|
|
35
|
+
|
|
32
36
|
### 2) Configure API key
|
|
33
37
|
|
|
34
38
|
Create API key at [felo.ai](https://felo.ai) -> Settings -> API Keys, then set:
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Felo X Search",
|
|
3
|
+
"tagline": "Search X (Twitter) users, tweets, and replies via Felo API in Claude Code",
|
|
4
|
+
"description": "Felo X Search lets you look up X (Twitter) user profiles, search users and tweets, fetch user timelines, and get tweet replies directly from Claude Code. Uses the Felo Open API; requires a Felo API key. Supports user lookup, user search, user tweets, tweet search, and tweet replies with readable Markdown or raw JSON output.",
|
|
5
|
+
"category": "data",
|
|
6
|
+
"tags": ["twitter", "x", "search", "social", "felo", "api"],
|
|
7
|
+
"version": "1.0.0",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"pricing": "free",
|
|
10
|
+
"support_url": "https://github.com/Felo-Inc/felo-skills/issues",
|
|
11
|
+
"homepage": "https://github.com/Felo-Inc/felo-skills"
|
|
12
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "felo-ai",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "Felo AI CLI - real-time search, PPT generation, web fetch, and YouTube subtitles from the terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/cli.js",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"felo-search": "^0.1.1"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
|
-
"test": "node --test tests/"
|
|
35
|
+
"test": "node --test tests/",
|
|
36
|
+
"publish": "npm publish"
|
|
36
37
|
}
|
|
37
|
-
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Install felo-skills into OpenClaw's workspace skills directory
|
|
3
|
+
# Usage: ./scripts/openclaw-install.sh [--dry-run]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
SKILLS_DIR="${HOME}/.openclaw/workspace/skills"
|
|
8
|
+
REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
9
|
+
DRY_RUN=false
|
|
10
|
+
|
|
11
|
+
[[ "${1:-}" == "--dry-run" ]] && DRY_RUN=true
|
|
12
|
+
|
|
13
|
+
# Find all SKILL.md files and install each skill
|
|
14
|
+
installed=0
|
|
15
|
+
skipped=0
|
|
16
|
+
|
|
17
|
+
while IFS= read -r skill_md; do
|
|
18
|
+
skill_dir="$(dirname "$skill_md")"
|
|
19
|
+
skill_name="$(basename "$skill_dir")"
|
|
20
|
+
target="${SKILLS_DIR}/${skill_name}"
|
|
21
|
+
|
|
22
|
+
if [[ -e "$target" ]]; then
|
|
23
|
+
skipped=$((skipped + 1))
|
|
24
|
+
continue
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
if $DRY_RUN; then
|
|
28
|
+
echo " [dry-run] would install: $skill_name"
|
|
29
|
+
else
|
|
30
|
+
mkdir -p "$SKILLS_DIR"
|
|
31
|
+
ln -sf "$skill_dir" "$target"
|
|
32
|
+
echo " ✅ installed: $skill_name"
|
|
33
|
+
fi
|
|
34
|
+
installed=$((installed + 1))
|
|
35
|
+
done < <(find "$REPO_DIR" -name "SKILL.md" -not -path "*/.git/*")
|
|
36
|
+
|
|
37
|
+
if $DRY_RUN; then
|
|
38
|
+
echo ""
|
|
39
|
+
echo "Dry run complete. Would install $installed skill(s). ($skipped already exist)"
|
|
40
|
+
else
|
|
41
|
+
echo ""
|
|
42
|
+
echo "Done. Installed $installed skill(s). ($skipped already existed)"
|
|
43
|
+
echo "Restart OpenClaw (openclaw gateway restart) to pick up new skills."
|
|
44
|
+
fi
|
package/README.en.md
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
# Felo AI
|
|
2
|
-
|
|
3
|
-
**Ask anything. Get current answers powered by AI.**
|
|
4
|
-
|
|
5
|
-
Felo AI provides a terminal CLI and Claude Code skill, with support for English, Chinese (Simplified & Traditional), Japanese, and Korean.
|
|
6
|
-
|
|
7
|
-
[]()
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Capabilities
|
|
12
|
-
|
|
13
|
-
Felo AI offers **Real-time Search**, **PPT Generation**, **Web Fetch**, and **YouTube Subtitles**. Use them via the CLI in your terminal, or in Claude Code via skills (search can trigger automatically).
|
|
14
|
-
|
|
15
|
-
### Capability 1: Real-time Search
|
|
16
|
-
|
|
17
|
-
Search the web for up-to-date information and get AI-synthesized answers. Ideal for weather, news, prices, documentation, tech updates, and any question that needs “right now” information.
|
|
18
|
-
|
|
19
|
-
- **Multi-language**: Ask in your preferred language.
|
|
20
|
-
- **Terminal**: `felo search "your question"`
|
|
21
|
-
- **Claude Code**: After installing the skill, it triggers automatically, or type `/felo-ai your question`
|
|
22
|
-
- **Examples**: `felo search "Tokyo weather"`, `felo search "React 19 new features" --verbose`
|
|
23
|
-
|
|
24
|
-
### Capability 2: Generate PPT (Felo Slides)
|
|
25
|
-
|
|
26
|
-
Terminal: `felo slides "your topic"`. In Claude Code: install `npx @claude/skills add felo-slides`, then `/felo-slides your topic`. You get an online document link when done. Examples: `felo slides "Felo product intro, 3 slides"`, `felo slides "Introduction to React"`.
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## Install & Configure
|
|
31
|
-
|
|
32
|
-
### Install CLI
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npm install -g felo-ai
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Run without installing: `npx felo-ai search "Tokyo weather"`
|
|
39
|
-
After install, the command is `felo`.
|
|
40
|
-
|
|
41
|
-
### Configure API Key
|
|
42
|
-
|
|
43
|
-
Recommended (persisted):
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
felo config set FELO_API_KEY your-api-key-here
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Or set the environment variable: `export FELO_API_KEY="your-api-key-here"` (Linux/macOS), `$env:FELO_API_KEY="your-api-key-here"` (Windows PowerShell).
|
|
50
|
-
|
|
51
|
-
Get your API key at [felo.ai](https://felo.ai) (Settings → API Keys).
|
|
52
|
-
|
|
53
|
-
### Commands
|
|
54
|
-
|
|
55
|
-
| Command | Description |
|
|
56
|
-
|---------|-------------|
|
|
57
|
-
| `felo search "<query>"` | Real-time search |
|
|
58
|
-
| `felo slides "<prompt>"` | Generate PPT |
|
|
59
|
-
| `felo web-fetch --url <url>` | Fetch webpage content (markdown/text/html) |
|
|
60
|
-
| `felo youtube-subtitling -v <url-or-id>` | Fetch YouTube video subtitles |
|
|
61
|
-
| `felo config set FELO_API_KEY <key>` | Save API key |
|
|
62
|
-
| `felo config get/list/path/unset` | View / list / path / remove config |
|
|
63
|
-
|
|
64
|
-
### Examples
|
|
65
|
-
|
|
66
|
-
**Search**
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
felo search "Tokyo weather"
|
|
70
|
-
felo search "MacBook Air M3 price"
|
|
71
|
-
felo search "React 19 new features" --verbose
|
|
72
|
-
npx felo-ai search "Tokyo weather"
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Slides**
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
felo slides "Felo product intro, 3 slides"
|
|
79
|
-
felo slides "Introduction to React"
|
|
80
|
-
felo slides "Q4 2024 business review, 10 pages" --poll-timeout 300
|
|
81
|
-
npx felo-ai slides "Tokyo travel guide, 5 slides"
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**Web fetch**
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
felo web-fetch --url "https://example.com"
|
|
88
|
-
felo web-fetch --url "https://example.com" --format text --readability
|
|
89
|
-
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --format markdown
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**YouTube subtitling**
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
felo youtube-subtitling -v "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
|
|
96
|
-
felo youtube-subtitling -v "dQw4w9WgXcQ" --language en
|
|
97
|
-
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs -v "dQw4w9WgXcQ" -l zh-CN
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Claude Code Skills
|
|
103
|
-
|
|
104
|
-
**Search** — Install and use real-time search:
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
npx @claude/skills add felo-search
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
After setting `FELO_API_KEY`, ask Claude things like “What’s the weather in Tokyo today?” or “React 19 new features”; the search skill triggers automatically (or use `/felo-search your question`).
|
|
111
|
-
|
|
112
|
-
**Slides (PPT)** — `npx @claude/skills add felo-slides`, then `/felo-slides your topic`. Same `FELO_API_KEY`. [Details →](./felo-slides/README.md)
|
|
113
|
-
|
|
114
|
-
**Web Fetch** — `felo web-fetch --url "https://example.com"` or run `node felo-web-fetch/scripts/run_web_fetch.mjs` from repo. [Details →](./felo-web-fetch/README.md)
|
|
115
|
-
|
|
116
|
-
**YouTube Subtitling** — `felo youtube-subtitling -v "URL_or_VIDEO_ID"` or run `node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs` from repo. [Details →](./felo-youtube-subtitling/README.md)
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Links
|
|
121
|
-
|
|
122
|
-
- [Felo Open Platform](https://openapi.felo.ai/docs/) — Get your API key
|
|
123
|
-
- [API Documentation](https://openapi.felo.ai/docs/api-reference/v2/chat.html)
|
|
124
|
-
- [More examples](./docs/EXAMPLES.md) | [FAQ](./docs/FAQ.md) | [GitHub Issues](https://github.com/Felo-Inc/felo-skills/issues)
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
**Other languages:** [Chinese (Simplified)](README.zh-CN.md) | [Japanese](README.ja.md) | [Korean](README.ko.md) | [Chinese (Traditional)](README.zh-TW.md)
|
|
129
|
-
|