voyageai-cli 1.16.0 → 1.19.0

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 CHANGED
@@ -6,15 +6,11 @@
6
6
 
7
7
  [![CI](https://github.com/mrlynn/voyageai-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/mrlynn/voyageai-cli/actions/workflows/ci.yml) [![npm version](https://img.shields.io/npm/v/voyageai-cli.svg)](https://www.npmjs.com/package/voyageai-cli) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Node.js](https://img.shields.io/node/v/voyageai-cli.svg)](https://nodejs.org)
8
8
 
9
- CLI for [Voyage AI](https://www.mongodb.com/docs/voyageai/) embeddings, reranking, and [MongoDB Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/). Embed text, benchmark models, compare quantization tradeoffs, and search — all from the terminal. Pure Node.js — no Python required.
9
+ The fastest path from documents to semantic search. Chunk files, generate [Voyage AI](https://www.mongodb.com/docs/voyageai/) embeddings, store in [MongoDB Atlas](https://www.mongodb.com/docs/atlas/atlas-vector-search/), and query with two-stage retrieval — all from the terminal.
10
10
 
11
- **16 commands · 201 tests · Interactive playground · Quantization benchmarks**
11
+ **21 commands · 312 tests · 5 chunking strategies · End-to-end RAG pipeline**
12
12
 
13
- > **⚠️ Disclaimer:** This is an independent, community-built tool. It is **not** an official product of MongoDB, Inc. or Voyage AI. It is not supported, endorsed, or maintained by either company. For official documentation, support, and products, visit:
14
- > - **MongoDB:** [mongodb.com](https://www.mongodb.com) | [MongoDB Atlas](https://www.mongodb.com/atlas) | [Support](https://support.mongodb.com)
15
- > - **Voyage AI:** [MongoDB Voyage AI Docs](https://www.mongodb.com/docs/voyageai/)
16
- >
17
- > Use at your own risk. No warranty is provided. See [LICENSE](LICENSE) for details.
13
+ > **⚠️ Disclaimer:** This is an independent, community-built tool **not** an official product of MongoDB, Inc. or Voyage AI. See [Disclaimer](#disclaimer) for details.
18
14
 
19
15
  ## Install
20
16
 
@@ -22,328 +18,285 @@ CLI for [Voyage AI](https://www.mongodb.com/docs/voyageai/) embeddings, rerankin
22
18
  npm install -g voyageai-cli
23
19
  ```
24
20
 
25
- ## Quick Start
21
+ ## 5-Minute RAG Pipeline
22
+
23
+ Go from a folder of documents to a searchable vector database:
26
24
 
27
25
  ```bash
28
- # Set your API key (get one from MongoDB Atlas → AI Models)
26
+ # Set credentials
29
27
  export VOYAGE_API_KEY="your-key"
28
+ export MONGODB_URI="mongodb+srv://user:pass@cluster.mongodb.net/"
30
29
 
31
- # Generate an embedding
32
- vai embed "What is MongoDB?"
33
-
34
- # List available models
35
- vai models
36
- ```
37
-
38
- ## Commands
30
+ # Initialize project
31
+ vai init --yes
39
32
 
40
- ### `vai embed` Generate embeddings
33
+ # Chunk embed store (one command)
34
+ vai pipeline ./docs/ --db myapp --collection knowledge --create-index
41
35
 
42
- ```bash
43
- # Single text
44
- vai embed "Hello, world"
36
+ # Search with two-stage retrieval
37
+ vai query "How do I configure replica sets?" --db myapp --collection knowledge
38
+ ```
45
39
 
46
- # With options
47
- vai embed "search query" --model voyage-4-large --input-type query --dimensions 512
40
+ That's it. Documents chunked, embedded with `voyage-4-large`, stored in Atlas with metadata, vector index created, and searchable with reranking.
48
41
 
49
- # From a file
50
- vai embed --file document.txt --input-type document
42
+ ## Project Config
51
43
 
52
- # Bulk from stdin (newline-delimited)
53
- cat texts.txt | vai embed
44
+ Stop typing `--db myapp --collection docs` on every command:
54
45
 
55
- # Raw array output
56
- vai embed "hello" --output-format array
46
+ ```bash
47
+ vai init
57
48
  ```
58
49
 
59
- ### `vai rerank` — Rerank documents by relevance
60
-
61
- ```bash
62
- # Inline documents
63
- vai rerank --query "database performance" \
64
- --documents "MongoDB is fast" "Redis is cached" "SQL is relational"
50
+ Creates `.vai.json` with your defaults model, database, collection, chunking strategy. Every command reads it automatically. CLI flags override when needed.
51
+
52
+ ```json
53
+ {
54
+ "model": "voyage-4-large",
55
+ "db": "myapp",
56
+ "collection": "knowledge",
57
+ "field": "embedding",
58
+ "dimensions": 1024,
59
+ "chunk": {
60
+ "strategy": "recursive",
61
+ "size": 512,
62
+ "overlap": 50
63
+ }
64
+ }
65
+ ```
65
66
 
66
- # From a file (JSON array or newline-delimited)
67
- vai rerank --query "best database" --documents-file candidates.json --top-k 3
67
+ ## Core Workflow
68
68
 
69
- # Different model
70
- vai rerank --query "query" --documents "doc1" "doc2" --model rerank-2.5-lite
71
- ```
69
+ ### `vai pipeline` — Chunk → embed → store
72
70
 
73
- ### `vai similarity` Compare text similarity
71
+ The end-to-end command. Takes files or directories, chunks them, embeds in batches, stores in MongoDB Atlas.
74
72
 
75
73
  ```bash
76
- # Compare two texts
77
- vai similarity "MongoDB is a document database" "MongoDB Atlas is a cloud database"
74
+ # Directory of docs
75
+ vai pipeline ./docs/ --db myapp --collection knowledge --create-index
76
+
77
+ # Single file
78
+ vai pipeline whitepaper.pdf --db myapp --collection papers
78
79
 
79
- # Compare one text against many
80
- vai similarity "database performance" --against "MongoDB is fast" "PostgreSQL is relational"
80
+ # Preview without API calls
81
+ vai pipeline ./docs/ --dry-run
81
82
 
82
- # From files
83
- vai similarity --file1 doc1.txt --file2 doc2.txt
83
+ # Custom chunking
84
+ vai pipeline ./docs/ --strategy markdown --chunk-size 1024 --overlap 100
84
85
  ```
85
86
 
86
- ### `vai store` Embed and insert into MongoDB Atlas
87
+ Supports: `.txt`, `.md`, `.html`, `.json`, `.jsonl`, `.pdf` (optional `pdf-parse` dependency). Auto-detects markdown files for heading-aware chunking.
87
88
 
88
- Requires `MONGODB_URI` environment variable.
89
+ ### `vai query` Search + rerank
90
+
91
+ Two-stage retrieval in one command: embed query → vector search → rerank → results.
89
92
 
90
93
  ```bash
91
- # Single document with metadata
92
- vai store --db myapp --collection docs --field embedding \
93
- --text "MongoDB Atlas is a cloud database" \
94
- --metadata '{"source": "docs", "category": "product"}'
94
+ # Search with reranking (default)
95
+ vai query "How does authentication work?" --db myapp --collection knowledge
95
96
 
96
- # From a file
97
- vai store --db myapp --collection docs --field embedding \
98
- --file article.txt
97
+ # Vector search only (skip rerank)
98
+ vai query "auth setup" --no-rerank
99
99
 
100
- # Batch from JSONL (one {"text": "...", "metadata": {...}} per line)
101
- vai store --db myapp --collection docs --field embedding \
102
- --file documents.jsonl
100
+ # With pre-filter
101
+ vai query "performance tuning" --filter '{"category": "guides"}' --top-k 10
103
102
  ```
104
103
 
105
- ### `vai ingest` — Bulk import with progress
104
+ ### `vai chunk` — Document chunking
106
105
 
107
- ```bash
108
- # JSONL (one JSON object per line with a "text" field)
109
- vai ingest --file corpus.jsonl --db myapp --collection docs --field embedding
110
-
111
- # JSON array
112
- vai ingest --file documents.json --db myapp --collection docs --field embedding
106
+ Standalone chunking for when you need control over the pipeline.
113
107
 
114
- # CSV (specify text column)
115
- vai ingest --file data.csv --db myapp --collection docs --field embedding --text-column content
116
-
117
- # Plain text (one document per line)
118
- vai ingest --file lines.txt --db myapp --collection docs --field embedding
108
+ ```bash
109
+ # Chunk a directory, output JSONL
110
+ vai chunk ./docs/ --output chunks.jsonl --stats
119
111
 
120
- # Options
121
- vai ingest --file corpus.jsonl --db myapp --collection docs --field embedding \
122
- --model voyage-4 --batch-size 100 --input-type document
112
+ # Specific strategy
113
+ vai chunk paper.md --strategy markdown --chunk-size 1024
123
114
 
124
- # Preview without embedding
125
- vai ingest --file corpus.jsonl --db myapp --collection docs --field embedding --dry-run
115
+ # Preview
116
+ vai chunk ./docs/ --dry-run
126
117
  ```
127
118
 
128
- ### `vai search` Vector similarity search
119
+ Five strategies: `fixed`, `sentence`, `paragraph`, `recursive` (default), `markdown`.
129
120
 
130
- Requires `MONGODB_URI` environment variable.
121
+ ### `vai estimate` Cost estimator
122
+
123
+ Compare symmetric vs. asymmetric embedding strategies before committing.
131
124
 
132
125
  ```bash
133
- # Basic search
134
- vai search --query "cloud database" \
135
- --db myapp --collection docs \
136
- --index vector_index --field embedding
137
-
138
- # With pre-filter and limit
139
- vai search --query "performance tuning" \
140
- --db myapp --collection docs \
141
- --index vector_index --field embedding \
142
- --filter '{"category": "guides"}' --limit 5
126
+ vai estimate --docs 10M --queries 100M --months 12
143
127
  ```
144
128
 
145
- ### `vai index` — Manage Atlas Vector Search indexes
129
+ Shows cost breakdown for every Voyage 4 model combination, including asymmetric retrieval (embed docs with `voyage-4-large`, query with `voyage-4-lite`same quality, fraction of the cost).
130
+
131
+ ## Individual Commands
146
132
 
147
- Requires `MONGODB_URI` environment variable.
133
+ For when you need fine-grained control:
148
134
 
149
135
  ```bash
150
- # Create an index
151
- vai index create --db myapp --collection docs --field embedding \
152
- --dimensions 1024 --similarity cosine --index-name my_index
136
+ # Embed text
137
+ vai embed "What is MongoDB?" --model voyage-4-large --dimensions 512
153
138
 
154
- # List indexes
155
- vai index list --db myapp --collection docs
139
+ # Rerank documents
140
+ vai rerank --query "database performance" \
141
+ --documents "MongoDB is fast" "PostgreSQL is relational" "Redis is cached"
156
142
 
157
- # Delete an index
158
- vai index delete --db myapp --collection docs --index-name my_index
159
- ```
143
+ # Compare similarity
144
+ vai similarity "MongoDB is a database" "Atlas is a cloud database"
160
145
 
161
- ### `vai ping` Test API connectivity
146
+ # Store a single document
147
+ vai store --db myapp --collection docs --field embedding \
148
+ --text "MongoDB Atlas provides managed cloud databases"
162
149
 
163
- ```bash
164
- # Test Voyage AI API
165
- vai ping
150
+ # Bulk import from file
151
+ vai ingest --file corpus.jsonl --db myapp --collection docs --field embedding
166
152
 
167
- # Also tests MongoDB if MONGODB_URI is set
168
- export MONGODB_URI="mongodb+srv://user:pass@cluster.mongodb.net/"
169
- vai ping
153
+ # Vector search (raw)
154
+ vai search --query "cloud database" --db myapp --collection docs
170
155
 
171
- # JSON output
172
- vai ping --json
156
+ # Manage indexes
157
+ vai index create --db myapp --collection docs --field embedding
158
+ vai index list --db myapp --collection docs
173
159
  ```
174
160
 
175
- ### `vai models` — List available models
161
+ ## Models & Benchmarks
176
162
 
177
163
  ```bash
178
- # All models
179
- vai models
164
+ # List models with architecture and shared space info
165
+ vai models --wide
180
166
 
181
- # Filter by type
182
- vai models --type embedding
183
- vai models --type reranking
167
+ # Show RTEB benchmark scores
168
+ vai models --benchmarks
184
169
  ```
185
170
 
186
- ## Full Pipeline Example
171
+ ### Voyage 4 Family
187
172
 
188
- ```bash
189
- export VOYAGE_API_KEY="your-key"
190
- export MONGODB_URI="mongodb+srv://user:pass@cluster.mongodb.net/"
173
+ | Model | Architecture | Price/1M tokens | RTEB Score | Best For |
174
+ |-------|-------------|----------------|------------|----------|
175
+ | voyage-4-large | **MoE** | $0.12 | **71.41** | Best quality — first production MoE embedding model |
176
+ | voyage-4 | Dense | $0.06 | 70.07 | Balanced quality/cost |
177
+ | voyage-4-lite | Dense | $0.02 | 68.10 | High-volume, budget |
178
+ | voyage-4-nano | Dense | Free (open-weight) | — | Local dev, edge, [HuggingFace](https://huggingface.co/voyageai/voyage-4-nano) |
191
179
 
192
- # 1. Store documents with embeddings
193
- vai store --db myapp --collection articles --field embedding \
194
- --text "MongoDB Atlas provides a fully managed cloud database" \
195
- --metadata '{"title": "Atlas Overview"}'
180
+ **Shared embedding space:** All Voyage 4 models produce compatible embeddings. Embed docs with `voyage-4-large`, query with `voyage-4-lite` — no re-vectorization needed.
196
181
 
197
- vai store --db myapp --collection articles --field embedding \
198
- --text "Vector search enables semantic similarity matching" \
199
- --metadata '{"title": "Vector Search Guide"}'
182
+ ### Competitive Landscape (RTEB NDCG@10)
200
183
 
201
- # 2. Create a vector search index
202
- vai index create --db myapp --collection articles --field embedding \
203
- --dimensions 1024 --similarity cosine --index-name article_search
184
+ | Model | Score |
185
+ |-------|-------|
186
+ | **voyage-4-large** | **71.41** |
187
+ | voyage-4 | 70.07 |
188
+ | Gemini Embedding 001 | 68.66 |
189
+ | voyage-4-lite | 68.10 |
190
+ | Cohere Embed v4 | 65.75 |
191
+ | OpenAI v3 Large | 62.57 |
204
192
 
205
- # 3. Search (wait ~60s for index to build on small collections)
206
- vai search --query "how does cloud database work" \
207
- --db myapp --collection articles --index article_search --field embedding
193
+ Also available: `voyage-code-3` (code), `voyage-finance-2` (finance), `voyage-law-2` (legal), `rerank-2.5` / `rerank-2.5-lite`.
208
194
 
209
- # 4. Rerank for precision
210
- vai rerank --query "how does cloud database work" \
211
- --documents "MongoDB Atlas provides a fully managed cloud database" \
212
- "Vector search enables semantic similarity matching"
213
- ```
195
+ ## Benchmarking Your Data
214
196
 
215
- ## Environment Variables
197
+ Published benchmarks measure average quality across standardized datasets. `vai benchmark` measures what matters for **your** use case:
216
198
 
217
- | Variable | Required For | Description |
218
- |----------|-------------|-------------|
219
- | `VOYAGE_API_KEY` | embed, rerank, store, search, ping | [Model API key](https://www.mongodb.com/docs/voyageai/management/api-keys/) from MongoDB Atlas |
220
- | `MONGODB_URI` | store, search, index, ping (optional) | MongoDB Atlas connection string |
199
+ ```bash
200
+ # Compare model latency and cost
201
+ vai benchmark embed --models voyage-4-large,voyage-4,voyage-4-lite --rounds 5
221
202
 
222
- Credentials are resolved in this order (highest priority first):
203
+ # Test asymmetric retrieval on your data
204
+ vai benchmark asymmetric --file your-corpus.txt --query "your actual query"
223
205
 
224
- 1. **Environment variables** (`export VOYAGE_API_KEY=...`)
225
- 2. **`.env` file** in your working directory
226
- 3. **Config file** (`~/.vai/config.json` via `vai config set`)
206
+ # Validate shared embedding space
207
+ vai benchmark space
227
208
 
228
- You can also create a `.env` file in your project directory instead of exporting variables:
209
+ # Compare quantization tradeoffs
210
+ vai benchmark quantization --model voyage-4-large --dtypes float,int8,ubinary
229
211
 
230
- ```
231
- VOYAGE_API_KEY=your-key
232
- MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/
212
+ # Project costs at scale
213
+ vai benchmark cost --tokens 500 --volumes 100,1000,10000,100000
233
214
  ```
234
215
 
235
- > ⚠️ **Add `.env` to your `.gitignore`** to avoid accidentally committing secrets.
216
+ ## Learn
236
217
 
237
- Or use the built-in config store:
218
+ Interactive explanations of key concepts:
238
219
 
239
220
  ```bash
240
- # Pipe to avoid key appearing in shell history
241
- echo "your-key" | vai config set api-key --stdin
242
- vai config set mongodb-uri "mongodb+srv://user:pass@cluster.mongodb.net/"
243
-
244
- # Verify (secrets are masked)
245
- vai config get
221
+ vai explain embeddings # What are vector embeddings?
222
+ vai explain moe # Mixture-of-experts architecture
223
+ vai explain shared-space # Shared embedding space & asymmetric retrieval
224
+ vai explain rteb # RTEB benchmark scores
225
+ vai explain quantization # Matryoshka dimensions & quantization
226
+ vai explain two-stage # The embed → search → rerank pattern
227
+ vai explain nano # voyage-4-nano open-weight model
228
+ vai explain models # How to choose the right model
246
229
  ```
247
230
 
248
- ### Security
231
+ 17 topics covering embeddings, reranking, vector search, RAG, and more.
249
232
 
250
- - Config file (`~/.vai/config.json`) is created with `600` permissions (owner read/write only)
251
- - Secrets are always masked in `vai config get` output
252
- - Use `echo "key" | vai config set api-key --stdin` or `vai config set api-key --stdin < keyfile` to avoid shell history exposure
253
- - The config file stores credentials in plaintext (similar to `~/.aws/credentials` and `~/.npmrc`) — protect your home directory accordingly
254
-
255
- ## Shell Completions
233
+ ## Environment & Auth
256
234
 
257
- `vai` supports tab completion for bash and zsh.
235
+ | Variable | Required For | Description |
236
+ |----------|-------------|-------------|
237
+ | `VOYAGE_API_KEY` | All embedding/reranking | [Model API key](https://www.mongodb.com/docs/voyageai/management/api-keys/) from MongoDB Atlas |
238
+ | `MONGODB_URI` | store, search, query, pipeline, index | MongoDB Atlas connection string |
258
239
 
259
- ### Bash
240
+ Credentials resolve in order: environment variables → `.env` file → `~/.vai/config.json`.
260
241
 
261
242
  ```bash
262
- # Add to ~/.bashrc (or ~/.bash_profile on macOS)
263
- vai completions bash >> ~/.bashrc
264
- source ~/.bashrc
265
-
266
- # Or install system-wide (Linux)
267
- vai completions bash > /etc/bash_completion.d/vai
268
-
269
- # Or with Homebrew (macOS)
270
- vai completions bash > $(brew --prefix)/etc/bash_completion.d/vai
243
+ # Or use the built-in config store
244
+ echo "your-key" | vai config set api-key --stdin
245
+ vai config set mongodb-uri "mongodb+srv://..."
271
246
  ```
272
247
 
273
- ### Zsh
248
+ ## Shell Completions
274
249
 
275
250
  ```bash
276
- # Create completions directory
277
- mkdir -p ~/.zsh/completions
278
-
279
- # Add to fpath in ~/.zshrc (if not already there)
280
- echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
281
- echo 'autoload -Uz compinit && compinit' >> ~/.zshrc
251
+ # Bash
252
+ vai completions bash >> ~/.bashrc
282
253
 
283
- # Generate the completion file
254
+ # Zsh
255
+ mkdir -p ~/.zsh/completions
284
256
  vai completions zsh > ~/.zsh/completions/_vai
285
- source ~/.zshrc
286
- ```
287
-
288
- Completions cover all 14 commands, subcommands, flags, model names, and explain topics.
289
-
290
- ## Global Flags
291
-
292
- All commands support:
293
-
294
- | Flag | Description |
295
- |------|-------------|
296
- | `--json` | Machine-readable JSON output |
297
- | `--quiet` | Suppress non-essential output |
298
-
299
- ## Models
300
-
301
- | Model | Type | Dimensions | Price/1M tokens | Best For |
302
- |-------|------|-----------|----------------|----------|
303
- | voyage-4-large | embedding | 1024 (default), 256-2048 | $0.12 | Best quality |
304
- | voyage-4 | embedding | 1024 (default), 256-2048 | $0.06 | Balanced |
305
- | voyage-4-lite | embedding | 1024 (default), 256-2048 | $0.02 | Lowest cost |
306
- | voyage-code-3 | embedding | 1024 (default), 256-2048 | $0.18 | Code |
307
- | voyage-finance-2 | embedding | 1024 | $0.12 | Finance |
308
- | voyage-law-2 | embedding | 1024 | $0.12 | Legal |
309
- | voyage-multimodal-3.5 | embedding | 1024 (default), 256-2048 | $0.12 + pixels | Text + images |
310
- | rerank-2.5 | reranking | — | $0.05 | Best reranking |
311
- | rerank-2.5-lite | reranking | — | $0.02 | Fast reranking |
312
-
313
- Free tier: 200M tokens for most models. All Voyage 4 series models share the same embedding space.
314
-
315
- ## Benchmarks: vai vs. Voyage AI's Published Results
316
-
317
- Voyage AI publishes [retrieval quality benchmarks](https://blog.voyageai.com/2026/01/15/voyage-4/) — NDCG@10 scores across 29 RTEB datasets measuring how *accurate* each model's embeddings are. Their results show voyage-4-large outperforms Gemini Embedding 001 by 3.87%, Cohere Embed v4 by 8.20%, and OpenAI v3 Large by 14.05%.
318
-
319
- **`vai benchmark` measures something different:** real-world latency, cost, and whether models agree on ranking *your specific data*. The two are complementary:
320
-
321
- | | Voyage AI Benchmarks | vai benchmark |
322
- |---|---|---|
323
- | **Measures** | Retrieval quality (NDCG@10) | Latency, cost, ranking agreement |
324
- | **Data** | 29 standardized datasets | Your actual data |
325
- | **Answers** | "Which model produces the best embeddings?" | "For my data and budget, which model should I use?" |
326
-
327
- Voyage AI's key insight — [asymmetric retrieval](https://blog.voyageai.com/2026/01/15/voyage-4/) (embed docs with voyage-4-large, query with voyage-4-lite) — is directly testable with `vai`:
328
-
329
- ```bash
330
- # Does the cheap query model find the same results as the expensive one?
331
- vai benchmark asymmetric --doc-model voyage-4-large \
332
- --query-models voyage-4-large,voyage-4,voyage-4-lite \
333
- --file your-corpus.txt --query "your actual query"
334
257
  ```
335
258
 
336
- If rankings agree, you can embed documents once with voyage-4-large and query with voyage-4-lite — **6x cheaper** at query time with no re-indexing.
259
+ Covers all 21 commands, subcommands, flags, model names, and explain topics.
260
+
261
+ ## All Commands
262
+
263
+ | Command | Description |
264
+ |---------|-------------|
265
+ | `vai init` | Initialize project with `.vai.json` |
266
+ | `vai pipeline` | Chunk → embed → store (end-to-end) |
267
+ | `vai query` | Search + rerank (two-stage retrieval) |
268
+ | `vai chunk` | Chunk documents (5 strategies) |
269
+ | `vai estimate` | Cost estimator (symmetric vs asymmetric) |
270
+ | `vai embed` | Generate embeddings |
271
+ | `vai rerank` | Rerank documents by relevance |
272
+ | `vai similarity` | Compare text similarity |
273
+ | `vai store` | Embed and store single documents |
274
+ | `vai ingest` | Bulk import with progress |
275
+ | `vai search` | Vector similarity search |
276
+ | `vai index` | Manage Atlas Vector Search indexes |
277
+ | `vai models` | List models, benchmarks, architecture |
278
+ | `vai benchmark` | 8 subcommands for model comparison |
279
+ | `vai explain` | 17 interactive concept explainers |
280
+ | `vai config` | Manage persistent configuration |
281
+ | `vai ping` | Test API and MongoDB connectivity |
282
+ | `vai playground` | Interactive web playground |
283
+ | `vai demo` | Guided walkthrough |
284
+ | `vai completions` | Shell completion scripts |
285
+ | `vai about` | About this tool |
337
286
 
338
287
  ## Requirements
339
288
 
340
289
  - Node.js 18+
341
- - A [MongoDB Atlas](https://www.mongodb.com/atlas) account (free tier works)
342
- - A [Voyage AI model API key](https://www.mongodb.com/docs/voyageai/management/api-keys/) (created in Atlas)
290
+ - [MongoDB Atlas](https://www.mongodb.com/atlas) account (free tier works)
291
+ - [Voyage AI model API key](https://www.mongodb.com/docs/voyageai/management/api-keys/) (created in Atlas)
343
292
 
344
293
  ## Disclaimer
345
294
 
346
- This is a community tool and is not affiliated with, endorsed by, or supported by MongoDB, Inc. or Voyage AI. All trademarks belong to their respective owners. For official support, visit [mongodb.com](https://www.mongodb.com).
295
+ This is a community tool and is not affiliated with, endorsed by, or supported by MongoDB, Inc. or Voyage AI. All trademarks belong to their respective owners.
296
+
297
+ For official documentation and support:
298
+ - **MongoDB:** [mongodb.com](https://www.mongodb.com) | [Atlas](https://www.mongodb.com/atlas) | [Support](https://support.mongodb.com)
299
+ - **Voyage AI:** [MongoDB Voyage AI Docs](https://www.mongodb.com/docs/voyageai/)
347
300
 
348
301
  ## License
349
302
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "voyageai-cli",
3
- "version": "1.16.0",
3
+ "version": "1.19.0",
4
4
  "description": "CLI for Voyage AI embeddings, reranking, and MongoDB Atlas Vector Search",
5
5
  "bin": {
6
6
  "vai": "./src/cli.js"
package/src/cli.js CHANGED
@@ -23,6 +23,9 @@ const { registerBenchmark } = require('./commands/benchmark');
23
23
  const { registerEstimate } = require('./commands/estimate');
24
24
  const { registerInit } = require('./commands/init');
25
25
  const { registerChunk } = require('./commands/chunk');
26
+ const { registerQuery } = require('./commands/query');
27
+ const { registerPipeline } = require('./commands/pipeline');
28
+ const { registerEval } = require('./commands/eval');
26
29
  const { registerAbout } = require('./commands/about');
27
30
  const { showBanner, showQuickStart, getVersion } = require('./lib/banner');
28
31
 
@@ -51,6 +54,9 @@ registerBenchmark(program);
51
54
  registerEstimate(program);
52
55
  registerInit(program);
53
56
  registerChunk(program);
57
+ registerQuery(program);
58
+ registerPipeline(program);
59
+ registerEval(program);
54
60
  registerAbout(program);
55
61
 
56
62
  // Append disclaimer to all help output