felo-ai 0.2.9 → 0.2.11
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 +9 -0
- package/README.md +35 -1
- package/felo-x-search/README.md +81 -0
- package/felo-x-search/SKILL.md +10 -10
- package/felo-x-search/scripts/run_x_search.mjs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,14 @@ 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.10] - 2026-03-10
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- 修复 `felo-x-search` API 请求路径缺少 `/v2` 前缀的问题。
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
8
16
|
## [0.2.7] - 2025-03-06
|
|
9
17
|
|
|
10
18
|
### Breaking Changes
|
|
@@ -26,5 +34,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
26
34
|
|
|
27
35
|
Earlier releases: search, slides, web fetch, youtube-subtitling features.
|
|
28
36
|
|
|
37
|
+
[0.2.10]: https://github.com/Felo-Inc/felo-skills/compare/v0.2.9...v0.2.10
|
|
29
38
|
[0.2.7]: https://github.com/Felo-Inc/felo-skills/compare/v0.2.6...v0.2.7
|
|
30
39
|
[0.2.6]: https://github.com/Felo-Inc/felo-skills/releases/tag/v0.2.6
|
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) — Real-time search, PPT generation, web
|
|
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
|
|
|
@@ -53,6 +53,7 @@ Get your API key from [felo.ai](https://felo.ai) (Settings → API Keys). Enviro
|
|
|
53
53
|
| `felo slides "<prompt>"` | Generate PPT; returns link when done |
|
|
54
54
|
| `felo web-fetch --url <url>` | Fetch webpage content (markdown/text/html) |
|
|
55
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 |
|
|
56
57
|
| `felo config set FELO_API_KEY <key>` | Save API key to config |
|
|
57
58
|
| `felo config get FELO_API_KEY` | Print stored key |
|
|
58
59
|
| `felo config list` | List config keys |
|
|
@@ -132,6 +133,32 @@ node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs -v "dQw4w9WgXcQ"
|
|
|
132
133
|
|
|
133
134
|
Options: `-v/--video-code` (required: **YouTube video URL** or video ID), `-l/--language` (e.g. en, zh-CN), `--with-time`, `-j/--json`. Same `FELO_API_KEY` as other commands. See [felo-youtube-subtitling](./felo-youtube-subtitling/README.md).
|
|
134
135
|
|
|
136
|
+
**X (Twitter) search** (after `npm install -g felo-ai`)
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Search tweets
|
|
140
|
+
felo x "AI news"
|
|
141
|
+
felo x "AI news" --limit 10 --json
|
|
142
|
+
|
|
143
|
+
# Search users
|
|
144
|
+
felo x "OpenAI" --user
|
|
145
|
+
|
|
146
|
+
# Get user info
|
|
147
|
+
felo x --id "elonmusk" --user
|
|
148
|
+
|
|
149
|
+
# Get user tweets
|
|
150
|
+
felo x --id "elonmusk" --user --tweets
|
|
151
|
+
felo x --id "elonmusk" --user --tweets --include-replies --limit 20
|
|
152
|
+
|
|
153
|
+
# Get tweet replies
|
|
154
|
+
felo x --id "1234567890"
|
|
155
|
+
|
|
156
|
+
# From repo: run script directly (no install)
|
|
157
|
+
node felo-x-search/scripts/run_x_search.mjs "AI news"
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Options: `[query]` or `-q/--query` (search keyword), `--id` (tweet IDs or usernames, comma-separated), `--user` (user mode), `--tweets` (get user tweets), `-l/--limit`, `--cursor`, `--include-replies`, `--query-type`, `--since-time`, `--until-time`, `-j/--json`, `-t/--timeout`. Same `FELO_API_KEY` as other commands. See [felo-x-search](./felo-x-search/SKILL.md).
|
|
161
|
+
|
|
135
162
|
### CLI FAQ
|
|
136
163
|
|
|
137
164
|
- **Key not found?** Run `felo config set FELO_API_KEY <key>` or set the `FELO_API_KEY` environment variable.
|
|
@@ -140,6 +167,7 @@ Options: `-v/--video-code` (required: **YouTube video URL** or video ID), `-l/--
|
|
|
140
167
|
- **Where is config stored?** Run `felo config path` to see the file (e.g. `~/.felo/config.json`).
|
|
141
168
|
- **Web fetch after install?** Use `felo web-fetch --url "<page url>"`. Other params: `--format markdown|text|html`, `--readability`, `--target-selector "selector"`, `--wait-for-selector "selector"`, `--crawl-mode fast|fine`, `--timeout 120`, `--json`. See the "How to pass parameters" table above. Same API key as other commands.
|
|
142
169
|
- **YouTube subtitles?** Use `felo youtube-subtitling -v "<url or video_id>"` (full YouTube link or 11-char ID). Optional: `-l/--language`, `--with-time`, `-j/--json`. See [felo-youtube-subtitling](./felo-youtube-subtitling/README.md).
|
|
170
|
+
- **X (Twitter) search?** Use `felo x "<query>"` to search tweets, `felo x "<query>" --user` to search users, `felo x --id "<username>" --user` for user info, `felo x --id "<username>" --user --tweets` for user tweets, `felo x --id "<tweet_id>"` for tweet replies. See [felo-x-search](./felo-x-search/SKILL.md).
|
|
143
171
|
|
|
144
172
|
---
|
|
145
173
|
|
|
@@ -185,6 +213,8 @@ Ask Claude: "What's the weather in Tokyo today?"
|
|
|
185
213
|
|
|
186
214
|
**Felo YouTube Subtitling:** In terminal run `felo youtube-subtitling -v "URL_or_VIDEO_ID"` (see [felo-youtube-subtitling](./felo-youtube-subtitling/README.md)). Fetches subtitles/captions; accepts full YouTube link or video ID.
|
|
187
215
|
|
|
216
|
+
**Felo X Search:** In terminal run `felo x "query"` to search tweets, users, and replies on X (Twitter) (see [felo-x-search](./felo-x-search/SKILL.md)). In Claude Code install the skill and use it to search X content.
|
|
217
|
+
|
|
188
218
|
---
|
|
189
219
|
|
|
190
220
|
## Usage Examples
|
|
@@ -367,6 +397,10 @@ Generate PPT: in terminal use `felo slides "your topic"`, in Claude Code use `/f
|
|
|
367
397
|
|
|
368
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 →](./felo-web-fetch/)**
|
|
369
399
|
|
|
400
|
+
### felo-x-search
|
|
401
|
+
|
|
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 →](./felo-x-search/SKILL.md)**
|
|
403
|
+
|
|
370
404
|
---
|
|
371
405
|
|
|
372
406
|
## Contributing
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Felo X Search Skill
|
|
2
|
+
|
|
3
|
+
Search X (Twitter) tweets, users, and replies using the [Felo X Search API](https://openapi.felo.ai/docs/api-reference/v2/x-search.html).
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Search tweets** by keyword with advanced query support
|
|
8
|
+
- **Search users** by keyword
|
|
9
|
+
- **Get user info** by username (batch supported)
|
|
10
|
+
- **Get user tweets** by username, with optional replies
|
|
11
|
+
- **Get tweet replies** by tweet ID
|
|
12
|
+
- Same `FELO_API_KEY` as other Felo skills
|
|
13
|
+
|
|
14
|
+
## Quick Start
|
|
15
|
+
|
|
16
|
+
### 1) Configure API key
|
|
17
|
+
|
|
18
|
+
At [felo.ai](https://felo.ai) -> Settings -> API Keys, create a key, then:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Linux/macOS
|
|
22
|
+
export FELO_API_KEY="your-api-key-here"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```powershell
|
|
26
|
+
# Windows PowerShell
|
|
27
|
+
$env:FELO_API_KEY="your-api-key-here"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2) Run
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# From repo: script
|
|
34
|
+
node felo-x-search/scripts/run_x_search.mjs "AI news"
|
|
35
|
+
|
|
36
|
+
# After npm install -g felo-ai: CLI
|
|
37
|
+
felo x "AI news"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## All parameters
|
|
41
|
+
|
|
42
|
+
| Parameter | Option | Example |
|
|
43
|
+
|-----------|--------|---------|
|
|
44
|
+
| Search keyword | `[query]` or `-q, --query` | `felo x "AI news"` or `-q "AI news"` |
|
|
45
|
+
| Tweet IDs or usernames | `--id` | `--id "elonmusk"` or `--id "123,456"` |
|
|
46
|
+
| User mode | `--user` | `--user` |
|
|
47
|
+
| Get user tweets | `--tweets` | `--tweets` (with `--id --user`) |
|
|
48
|
+
| Result limit | `-l, --limit` | `--limit 20` |
|
|
49
|
+
| Pagination cursor | `--cursor` | `--cursor "abc123"` |
|
|
50
|
+
| Include replies | `--include-replies` | `--include-replies` (with `--tweets`) |
|
|
51
|
+
| Query type filter | `--query-type` | `--query-type "Latest"` |
|
|
52
|
+
| Start time filter | `--since-time` | `--since-time "2026-01-01"` |
|
|
53
|
+
| End time filter | `--until-time` | `--until-time "2026-03-01"` |
|
|
54
|
+
| Full JSON response | `-j, --json` | `-j` |
|
|
55
|
+
| Timeout (seconds) | `-t, --timeout` | `-t 60` |
|
|
56
|
+
|
|
57
|
+
## Usage patterns
|
|
58
|
+
|
|
59
|
+
**Search mode** (with query):
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
felo x "AI news" # Search tweets (default)
|
|
63
|
+
felo x "OpenAI" --user # Search users
|
|
64
|
+
felo x "AI" --limit 10 --json # Search with limit, raw JSON output
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Lookup mode** (with --id):
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
felo x --id "elonmusk" --user # Get user info
|
|
71
|
+
felo x --id "elonmusk,OpenAI" --user # Batch user info
|
|
72
|
+
felo x --id "elonmusk" --user --tweets # Get user tweets
|
|
73
|
+
felo x --id "elonmusk" --user --tweets --limit 20 # With limit
|
|
74
|
+
felo x --id "1234567890" # Get tweet replies
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## When to use (Agent)
|
|
78
|
+
|
|
79
|
+
Trigger keywords: twitter, tweet, X user, X search, tweets from, replies to, trending on X, 推特, 推文, `/felo-x-search`.
|
|
80
|
+
|
|
81
|
+
See [SKILL.md](SKILL.md) for full agent instructions and API parameters.
|
package/felo-x-search/SKILL.md
CHANGED
|
@@ -109,31 +109,31 @@ The `x` command uses parameter combinations to infer intent — no subcommands n
|
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
111
|
# Search tweets
|
|
112
|
-
curl -X POST "https://openapi.felo.ai/x/tweet/search" \
|
|
112
|
+
curl -X POST "https://openapi.felo.ai/v2/x/tweet/search" \
|
|
113
113
|
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
114
114
|
-H "Content-Type: application/json" \
|
|
115
115
|
-d '{"query": "AI news", "limit": 20}'
|
|
116
116
|
|
|
117
117
|
# Search users
|
|
118
|
-
curl -X POST "https://openapi.felo.ai/x/user/search" \
|
|
118
|
+
curl -X POST "https://openapi.felo.ai/v2/x/user/search" \
|
|
119
119
|
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
120
120
|
-H "Content-Type: application/json" \
|
|
121
121
|
-d '{"query": "artificial intelligence"}'
|
|
122
122
|
|
|
123
123
|
# Get user info
|
|
124
|
-
curl -X POST "https://openapi.felo.ai/x/user/info" \
|
|
124
|
+
curl -X POST "https://openapi.felo.ai/v2/x/user/info" \
|
|
125
125
|
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
126
126
|
-H "Content-Type: application/json" \
|
|
127
127
|
-d '{"usernames": ["elonmusk", "OpenAI"]}'
|
|
128
128
|
|
|
129
129
|
# Get user tweets
|
|
130
|
-
curl -X POST "https://openapi.felo.ai/x/user/tweets" \
|
|
130
|
+
curl -X POST "https://openapi.felo.ai/v2/x/user/tweets" \
|
|
131
131
|
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
132
132
|
-H "Content-Type: application/json" \
|
|
133
133
|
-d '{"username": "elonmusk", "limit": 20}'
|
|
134
134
|
|
|
135
135
|
# Get tweet replies
|
|
136
|
-
curl -X POST "https://openapi.felo.ai/x/tweet/replies" \
|
|
136
|
+
curl -X POST "https://openapi.felo.ai/v2/x/tweet/replies" \
|
|
137
137
|
-H "Authorization: Bearer $FELO_API_KEY" \
|
|
138
138
|
-H "Content-Type: application/json" \
|
|
139
139
|
-d '{"tweet_ids": ["1234567890"]}'
|
|
@@ -185,11 +185,11 @@ If `FELO_API_KEY` is not set, display setup instructions and stop.
|
|
|
185
185
|
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed.
|
|
186
186
|
- **Auth**: `Authorization: Bearer YOUR_API_KEY`
|
|
187
187
|
- **Endpoints**:
|
|
188
|
-
- `POST /x/user/info` — Batch get user profiles
|
|
189
|
-
- `POST /x/user/search` — Search users
|
|
190
|
-
- `POST /x/user/tweets` — Get user tweets
|
|
191
|
-
- `POST /x/tweet/search` — Search tweets
|
|
192
|
-
- `POST /x/tweet/replies` — Get tweet replies
|
|
188
|
+
- `POST /v2/x/user/info` — Batch get user profiles
|
|
189
|
+
- `POST /v2/x/user/search` — Search users
|
|
190
|
+
- `POST /v2/x/user/tweets` — Get user tweets
|
|
191
|
+
- `POST /v2/x/tweet/search` — Search tweets
|
|
192
|
+
- `POST /v2/x/tweet/replies` — Get tweet replies
|
|
193
193
|
|
|
194
194
|
## Important Notes
|
|
195
195
|
|