xevol 0.12.0 → 0.12.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.md +69 -339
- package/dist/index.js +192 -180
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,389 +1,119 @@
|
|
|
1
|
-
# xevol
|
|
1
|
+
# xevol CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Terminal client for Xevol content execution.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
[](https://xevol.com)
|
|
7
|
-
[](https://nodejs.org)
|
|
5
|
+
Use it to ingest content, run analysis (spikes), manage prompts, inspect usage, and work across personal/team workspaces.
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Quick Demo
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
$ xevol add https://youtube.com/watch?v=oOylEw3tPQ8 --analyze facts
|
|
15
|
-
|
|
16
|
-
⠋ Processing... (12s)
|
|
17
|
-
✔ "Cursor CEO: Going Beyond Code" (37:29)
|
|
18
|
-
|
|
19
|
-
─── facts ───
|
|
20
|
-
• Cursor reached $100M ARR in 20 months
|
|
21
|
-
• 40-50% of code in Cursor is AI-generated
|
|
22
|
-
• Team hired first 10 employees over 6 months deliberately
|
|
23
|
-
• Pivoted from AI-CAD to AI coding tools
|
|
24
|
-
|
|
25
|
-
✔ Done
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Installation
|
|
7
|
+
## Install
|
|
29
8
|
|
|
30
9
|
```bash
|
|
31
10
|
npm install -g xevol
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Or run without installing:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
11
|
+
# or
|
|
37
12
|
npx xevol
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
or install with brew:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
13
|
+
# or
|
|
43
14
|
brew install xevol/tap/xevol
|
|
44
15
|
```
|
|
45
16
|
|
|
46
|
-
Requires Node.js
|
|
17
|
+
Requires **Node.js >= 20**.
|
|
47
18
|
|
|
48
|
-
## Quick
|
|
19
|
+
## Quick start
|
|
49
20
|
|
|
50
21
|
```bash
|
|
51
|
-
# 1
|
|
22
|
+
# 1) Login (device flow)
|
|
52
23
|
xevol login
|
|
53
24
|
|
|
54
|
-
# 2
|
|
55
|
-
xevol add "https://youtube.com/watch?v=
|
|
56
|
-
# or
|
|
57
|
-
xevol add "https://example.com/article"
|
|
25
|
+
# 2) Add content from URL (YouTube routes to /v1/add, other URLs to /v1/create)
|
|
26
|
+
xevol add "https://youtube.com/watch?v=oOylEw3tPQ8"
|
|
58
27
|
|
|
59
|
-
# 3
|
|
60
|
-
xevol analyze <id> --prompt facts
|
|
28
|
+
# 3) Run analysis
|
|
29
|
+
xevol analyze <transcription-id> --prompt facts
|
|
61
30
|
|
|
62
|
-
# 4
|
|
63
|
-
xevol view <id>
|
|
31
|
+
# 4) View content
|
|
32
|
+
xevol view <transcription-id>
|
|
64
33
|
```
|
|
65
34
|
|
|
66
|
-
##
|
|
67
|
-
|
|
68
|
-
| Command | Description |
|
|
69
|
-
| --------- | ----------------------------------------------- |
|
|
70
|
-
| `login` | Authenticate via device flow (opens browser) |
|
|
71
|
-
| `logout` | Clear stored credentials |
|
|
72
|
-
| `whoami` | Show current user, plan, and usage |
|
|
73
|
-
| `add` | Add a URL (YouTube or website) for processing |
|
|
74
|
-
| `list` | List your transcriptions |
|
|
75
|
-
| `locations` | List your Xevol Coordinates location history |
|
|
76
|
-
| `view` | View a transcription summary or full transcript |
|
|
77
|
-
| `analyze` | Generate AI analysis using a prompt |
|
|
78
|
-
| `prompts` | List available analysis prompts |
|
|
79
|
-
| `stream` | Stream analysis output via SSE |
|
|
80
|
-
| `resume` | Resume a previous streaming session |
|
|
81
|
-
| `config` | View or edit CLI configuration |
|
|
82
|
-
|
|
83
|
-
All commands support `--json` for machine-readable output.
|
|
84
|
-
|
|
85
|
-
## Command Details
|
|
86
|
-
|
|
87
|
-
### `xevol login`
|
|
35
|
+
## Workspace model
|
|
88
36
|
|
|
89
|
-
|
|
37
|
+
Xevol CLI supports workspace switching:
|
|
90
38
|
|
|
91
39
|
```bash
|
|
92
|
-
|
|
93
|
-
xevol
|
|
94
|
-
|
|
95
|
-
# Token-based (CI / headless)
|
|
96
|
-
xevol login --token <token>
|
|
97
|
-
|
|
98
|
-
# Or set via environment variable
|
|
99
|
-
export XEVOL_TOKEN=<token>
|
|
40
|
+
xevol workspace list
|
|
41
|
+
xevol workspace switch <workspace-id>
|
|
100
42
|
```
|
|
101
43
|
|
|
102
|
-
|
|
44
|
+
When a workspace is selected, CLI sends `X-Workspace-Id` automatically for workspace-aware API routes.
|
|
103
45
|
|
|
104
|
-
|
|
46
|
+
## Command map
|
|
105
47
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
xevol
|
|
48
|
+
### Auth
|
|
49
|
+
- `xevol login` — device auth flow (or `--token` for headless/CI)
|
|
50
|
+
- `xevol logout` — revoke token + clear local config
|
|
51
|
+
- `xevol whoami` — current authenticated account
|
|
109
52
|
|
|
110
|
-
|
|
111
|
-
xevol add
|
|
53
|
+
### Ingestion & content
|
|
54
|
+
- `xevol add <url>` — URL ingestion (YouTube + non-YouTube)
|
|
55
|
+
- `xevol create [text]` — create from text/file/url/stdin/editor
|
|
56
|
+
- `xevol list` — list transcriptions
|
|
57
|
+
- `xevol view <id>` — view summary/content
|
|
58
|
+
- `xevol delete <id>` — delete transcription
|
|
59
|
+
- `xevol open <id>` — open item in browser
|
|
112
60
|
|
|
113
|
-
|
|
114
|
-
xevol
|
|
61
|
+
### Analysis & prompts
|
|
62
|
+
- `xevol analyze <id> --prompt <promptId>` — create/read spike output
|
|
63
|
+
- `xevol stream <spikeId>` — SSE stream spike content
|
|
64
|
+
- `xevol resume <transcriptionId>` — resume interrupted stream session
|
|
65
|
+
- `xevol prompts ...` — prompt CRUD/list/get
|
|
115
66
|
|
|
116
|
-
|
|
117
|
-
xevol
|
|
67
|
+
### Usage, exports, locations
|
|
68
|
+
- `xevol usage` — plan + usage snapshot
|
|
69
|
+
- `xevol export <id> --format json|markdown|text` — export content locally
|
|
70
|
+
- `xevol locations` — Xevol Coordinates history
|
|
118
71
|
|
|
119
|
-
|
|
120
|
-
xevol
|
|
121
|
-
|
|
122
|
-
# Analyze with multiple prompts
|
|
123
|
-
xevol add "https://youtube.com/watch?v=abc123" --analyze facts,advice
|
|
124
|
-
|
|
125
|
-
# Stream analysis output in real time
|
|
126
|
-
xevol add "https://youtube.com/watch?v=abc123" --analyze facts --stream
|
|
127
|
-
```
|
|
72
|
+
### Interface
|
|
73
|
+
- `xevol tui` — interactive terminal UI
|
|
128
74
|
|
|
129
|
-
|
|
130
|
-
| --------------------- | ----------------------------------------------------- |
|
|
131
|
-
| `--no-wait` | Return immediately without waiting |
|
|
132
|
-
| `--lang <code>` | Language code (e.g. `en`, `de`, `ja`) |
|
|
133
|
-
| `--analyze <prompts>` | Comma-separated prompt IDs to run after processing |
|
|
134
|
-
| `--stream` | Stream analysis output via SSE |
|
|
135
|
-
| `--json` | JSON output |
|
|
75
|
+
## Common flags
|
|
136
76
|
|
|
137
|
-
|
|
77
|
+
- `--json` machine-readable output
|
|
78
|
+
- `--token <token>` override auth token per command
|
|
79
|
+
- `--no-color` disable ANSI colors
|
|
138
80
|
|
|
139
|
-
|
|
81
|
+
## Examples
|
|
140
82
|
|
|
141
83
|
```bash
|
|
142
|
-
#
|
|
143
|
-
xevol
|
|
84
|
+
# Add + analyze + stream
|
|
85
|
+
xevol add "https://youtube.com/watch?v=..." --analyze facts,summary --stream
|
|
144
86
|
|
|
145
|
-
#
|
|
146
|
-
xevol
|
|
87
|
+
# Create from file
|
|
88
|
+
xevol create --file notes.md --title "Research notes"
|
|
147
89
|
|
|
148
|
-
#
|
|
149
|
-
xevol list --status completed
|
|
150
|
-
|
|
151
|
-
# Machine-readable formats
|
|
90
|
+
# List in JSON
|
|
152
91
|
xevol list --json
|
|
153
|
-
xevol list --csv
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
| Flag | Description |
|
|
157
|
-
| -------------- | ---------------- |
|
|
158
|
-
| `--page <n>` | Page number |
|
|
159
|
-
| `--limit <n>` | Results per page |
|
|
160
|
-
| `--status <s>` | Filter by status |
|
|
161
|
-
| `--json` | JSON output |
|
|
162
|
-
| `--csv` | CSV output |
|
|
163
|
-
|
|
164
|
-
### `xevol locations`
|
|
165
|
-
|
|
166
|
-
List your location history from Xevol Coordinates.
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
# Default view
|
|
170
|
-
xevol locations
|
|
171
|
-
|
|
172
|
-
# Pagination
|
|
173
|
-
xevol locations --page 2 --limit 50
|
|
174
|
-
|
|
175
|
-
# Filter by time window
|
|
176
|
-
xevol locations --since 2026-01-01T00:00:00Z --until 2026-01-31T23:59:59Z
|
|
177
|
-
|
|
178
|
-
# Include exact latitude/longitude
|
|
179
|
-
xevol locations --exact
|
|
180
|
-
|
|
181
|
-
# Machine-readable formats
|
|
182
|
-
xevol locations --json
|
|
183
|
-
xevol locations --csv
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
| Flag | Description |
|
|
187
|
-
| --------------- | ------------------------------------------- |
|
|
188
|
-
| `--page <n>` | Page number |
|
|
189
|
-
| `--limit <n>` | Results per page |
|
|
190
|
-
| `--since <iso>` | Include records at/after this ISO datetime |
|
|
191
|
-
| `--until <iso>` | Include records at/before this ISO datetime |
|
|
192
|
-
| `--exact` | Include exact latitude/longitude columns |
|
|
193
|
-
| `--json` | JSON output |
|
|
194
|
-
| `--csv` | CSV output |
|
|
195
|
-
|
|
196
|
-
### `xevol view`
|
|
197
|
-
|
|
198
|
-
View a transcription's summary or full transcript.
|
|
199
92
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
xevol view abc123def45
|
|
203
|
-
|
|
204
|
-
# Full transcript (pipe-friendly)
|
|
205
|
-
xevol view abc123def45 --raw
|
|
206
|
-
|
|
207
|
-
# Clean transcript (processed content)
|
|
208
|
-
xevol view abc123def45 --clean
|
|
209
|
-
|
|
210
|
-
# JSON output
|
|
211
|
-
xevol view abc123def45 --json
|
|
93
|
+
# Export markdown
|
|
94
|
+
xevol export <id> --format markdown --output summary.md
|
|
212
95
|
```
|
|
213
96
|
|
|
214
|
-
|
|
215
|
-
| --------- | ------------------------------ |
|
|
216
|
-
| `--raw` | Print the full transcript text |
|
|
217
|
-
| `--clean` | Use cleaned/processed content |
|
|
218
|
-
| `--json` | JSON output |
|
|
97
|
+
## Config
|
|
219
98
|
|
|
220
|
-
|
|
99
|
+
CLI config is stored in:
|
|
221
100
|
|
|
222
|
-
|
|
101
|
+
- `~/.xevol/config.json`
|
|
223
102
|
|
|
224
|
-
|
|
225
|
-
# Analyze with a specific prompt
|
|
226
|
-
xevol analyze abc123def45 --prompt facts
|
|
227
|
-
|
|
228
|
-
# Use a different language for output
|
|
229
|
-
xevol analyze abc123def45 --prompt facts --lang de
|
|
230
|
-
|
|
231
|
-
# JSON output
|
|
232
|
-
xevol analyze abc123def45 --prompt facts --json
|
|
233
|
-
```
|
|
103
|
+
Includes token, API URL, selected workspace, and defaults.
|
|
234
104
|
|
|
235
|
-
|
|
236
|
-
| --------------- | --------------------------------- |
|
|
237
|
-
| `--prompt <id>` | Prompt to use (default: `review`) |
|
|
238
|
-
| `--lang <code>` | Output language |
|
|
239
|
-
| `--json` | JSON output |
|
|
105
|
+
## Notes
|
|
240
106
|
|
|
241
|
-
|
|
107
|
+
- Execution environment unification is in progress across API/CLI/mobile.
|
|
108
|
+
- Workspace-aware resources already respect selected workspace context.
|
|
109
|
+
- Usage/limit reporting follows API-provided scope during rollout.
|
|
242
110
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
List available analysis prompts.
|
|
111
|
+
## Development
|
|
246
112
|
|
|
247
113
|
```bash
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
114
|
+
bun install
|
|
115
|
+
bun run dev
|
|
116
|
+
bun run build
|
|
117
|
+
bun run typecheck
|
|
118
|
+
bun run lint
|
|
251
119
|
```
|
|
252
|
-
|
|
253
|
-
### `xevol stream`
|
|
254
|
-
|
|
255
|
-
Stream analysis output in real time via SSE.
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
xevol stream <spike-id>
|
|
259
|
-
xevol stream <spike-id> --last-event-id <id>
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
### `xevol resume`
|
|
263
|
-
|
|
264
|
-
Resume a previously interrupted streaming session.
|
|
265
|
-
|
|
266
|
-
```bash
|
|
267
|
-
xevol resume <transcription-id>
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
### `xevol config`
|
|
271
|
-
|
|
272
|
-
View or edit CLI configuration.
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
# Show all config
|
|
276
|
-
xevol config
|
|
277
|
-
|
|
278
|
-
# Get a value
|
|
279
|
-
xevol config get apiUrl
|
|
280
|
-
|
|
281
|
-
# Set a value
|
|
282
|
-
xevol config set default.lang de
|
|
283
|
-
xevol config set default.limit 50
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
Available config keys:
|
|
287
|
-
|
|
288
|
-
| Key | Description |
|
|
289
|
-
| --------------- | ---------------------------- |
|
|
290
|
-
| `apiUrl` | Base API URL |
|
|
291
|
-
| `default.lang` | Default output language |
|
|
292
|
-
| `default.limit` | Default page size for `list` |
|
|
293
|
-
| `api.timeout` | API request timeout (ms) |
|
|
294
|
-
|
|
295
|
-
## Output Formats
|
|
296
|
-
|
|
297
|
-
### Table (default)
|
|
298
|
-
|
|
299
|
-
```
|
|
300
|
-
┌─────────────┬────────────────────────────────┬──────────┬──────────┐
|
|
301
|
-
│ ID │ Title │ Duration │ Status │
|
|
302
|
-
├─────────────┼────────────────────────────────┼──────────┼──────────┤
|
|
303
|
-
│ abc123def45 │ Cursor CEO: Going Beyond Code │ 37:29 │ ✔ done │
|
|
304
|
-
│ xyz789ghi01 │ Naval on Happiness │ 12:03 │ ⠋ proc… │
|
|
305
|
-
└─────────────┴────────────────────────────────┴──────────┴──────────┘
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
### JSON (`--json`)
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
xevol list --json | jq '.list[] | select(.channelTitle == "Y Combinator")'
|
|
312
|
-
xevol analyze abc123 --prompt facts --json | jq '.spikes[0].content'
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
### CSV (`--csv`)
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
xevol list --csv > transcriptions.csv
|
|
319
|
-
xevol prompts --csv
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
## Streaming
|
|
323
|
-
|
|
324
|
-
Analysis output streams in real time via Server-Sent Events (SSE). Use `--stream` with `add` to watch analysis as it's generated:
|
|
325
|
-
|
|
326
|
-
```bash
|
|
327
|
-
xevol add "https://youtube.com/watch?v=..." --analyze facts --stream
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
If a stream is interrupted, resume it:
|
|
331
|
-
|
|
332
|
-
```bash
|
|
333
|
-
xevol resume <transcription-id>
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
## Authentication
|
|
337
|
-
|
|
338
|
-
xevol uses a device authorization flow, similar to `gh auth login`:
|
|
339
|
-
|
|
340
|
-
1. Run `xevol login`
|
|
341
|
-
2. A code is displayed and your browser opens
|
|
342
|
-
3. Enter the code to authorize
|
|
343
|
-
4. The CLI stores your token locally at `~/.xevol/`
|
|
344
|
-
|
|
345
|
-
For CI/CD or headless environments, use token-based auth:
|
|
346
|
-
|
|
347
|
-
```bash
|
|
348
|
-
xevol login --token <token>
|
|
349
|
-
# or
|
|
350
|
-
export XEVOL_TOKEN=<token>
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
Check your auth status:
|
|
354
|
-
|
|
355
|
-
```bash
|
|
356
|
-
xevol whoami
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
## Piping & Scripting
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
# Pipe transcript to other tools
|
|
363
|
-
xevol view <id> --raw | wc -w
|
|
364
|
-
|
|
365
|
-
# JSON output for scripting
|
|
366
|
-
xevol list --json | jq '.list | length'
|
|
367
|
-
|
|
368
|
-
# Export to CSV
|
|
369
|
-
xevol list --csv > my-transcriptions.csv
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
## Global Options
|
|
373
|
-
|
|
374
|
-
| Flag | Description |
|
|
375
|
-
| ----------------- | ---------------------------------------- |
|
|
376
|
-
| `--token <token>` | Override auth token for a single command |
|
|
377
|
-
| `--no-color` | Disable colored output |
|
|
378
|
-
| `--json` | Machine-readable JSON output |
|
|
379
|
-
| `-V, --version` | Print version |
|
|
380
|
-
| `-h, --help` | Show help |
|
|
381
|
-
|
|
382
|
-
## Links
|
|
383
|
-
|
|
384
|
-
- **Website**: [xevol.com](https://xevol.com)
|
|
385
|
-
- **Issues**: [github.com/xevol/xevol-cli/issues](https://github.com/xevol/xevol-cli/issues)
|
|
386
|
-
|
|
387
|
-
## License
|
|
388
|
-
|
|
389
|
-
Proprietary — see [xevol.com](https://xevol.com) for terms.
|