exa-search-cli 0.1.0__tar.gz

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.
@@ -0,0 +1,11 @@
1
+ __pycache__/
2
+ *.pyc
3
+ *.pyo
4
+ .venv/
5
+ dist/
6
+ *.egg-info/
7
+ .eggs/
8
+ build/
9
+ .ruff_cache/
10
+ .mypy_cache/
11
+ .pytest_cache/
@@ -0,0 +1,119 @@
1
+ # AGENTS.md — exa-cli for AI Coding Agents
2
+
3
+ This file is for AI agents (Claude Code, Codex, Cursor, Windsurf, etc.) that need to install and use `exa-cli` on behalf of a user.
4
+
5
+ ## Install & setup
6
+
7
+ ```bash
8
+ uv tool install exa-cli
9
+ export EXA_API_KEY=your-key # get at exa.ai — free tier available
10
+ ```
11
+
12
+ Persist the key:
13
+ ```bash
14
+ echo 'export EXA_API_KEY=your-key' >> ~/.zshrc
15
+ ```
16
+
17
+ ## Commands
18
+
19
+ | Command | What it does |
20
+ |---|---|
21
+ | `exa-search <query>` | Neural web search. Understands meaning, not just keywords. |
22
+ | `exa-crawl <url>` | Fetch full readable text from a URL. No HTML. |
23
+ | `exa-research <topic>` | Submit a deep research task. Exa AI reads the web and synthesizes an answer. |
24
+
25
+ All commands support `--json` for structured output.
26
+
27
+ ## Recommended agent patterns
28
+
29
+ ```bash
30
+ # Search and get structured results
31
+ exa-search "topic" --json
32
+
33
+ # Extract just the URLs
34
+ exa-search "topic" --json | jq -r '.results[].url'
35
+
36
+ # Search + crawl the top result
37
+ exa-search "topic" --json | jq -r '.results[0].url' | xargs exa-crawl -c 6000
38
+
39
+ # Find pages similar to a URL (great for research)
40
+ exa-search --similar https://example.com --json
41
+
42
+ # Filter by content type
43
+ exa-search "AI benchmarks 2025" --category "research paper" --json
44
+
45
+ # Filter by domain
46
+ exa-search "query" --include-domain github.com --json
47
+
48
+ # Filter by date
49
+ exa-search "query" --start-date 2025-01-01 --json
50
+
51
+ # Deep research task
52
+ exa-research "topic" --json
53
+ ```
54
+
55
+ ## JSON output schemas
56
+
57
+ **exa-search --json**
58
+ ```json
59
+ {
60
+ "results": [
61
+ {
62
+ "title": "Page title",
63
+ "url": "https://...",
64
+ "published_date": "2025-01-15T00:00:00.000Z",
65
+ "author": "Author name or null",
66
+ "highlights": ["Relevant excerpt from the page..."],
67
+ "text": "Full page text if --text was passed, else null"
68
+ }
69
+ ]
70
+ }
71
+ ```
72
+
73
+ **exa-crawl --json**
74
+ ```json
75
+ {
76
+ "results": [
77
+ {
78
+ "url": "https://...",
79
+ "title": "Page title",
80
+ "text": "Full readable page content..."
81
+ }
82
+ ]
83
+ }
84
+ ```
85
+
86
+ ## All flags
87
+
88
+ **exa-search**
89
+ ```
90
+ exa-search <query> [--similar <url>] [-n N] [-t auto|keyword|neural]
91
+ [--text] [--json] [--category CATEGORY]
92
+ [--start-date YYYY-MM-DD] [--end-date YYYY-MM-DD]
93
+ [--include-domain d1,d2] [--exclude-domain d1,d2]
94
+ ```
95
+
96
+ Categories: `news`, `tweet`, `github`, `paper`, `company`, `research paper`, `financial report`, `personal site`, `pdf`, `linkedin profile`
97
+
98
+ **exa-crawl**
99
+ ```
100
+ exa-crawl <url> [-c MAX_CHARS] [--json]
101
+ ```
102
+
103
+ **exa-research**
104
+ ```
105
+ exa-research <topic> [-m exa-research|exa-research-pro] [--json]
106
+ ```
107
+
108
+ ## Properties
109
+
110
+ - **Stateless** — no local state written between calls
111
+ - **Read-only** — never modifies the web or local files
112
+ - **Exit codes** — `0` on success, non-zero on error (message printed to stderr)
113
+ - **Errors** — specific messages for auth failures, rate limits, network issues
114
+
115
+ ## Environment variables
116
+
117
+ | Variable | Required | Description |
118
+ |---|---|---|
119
+ | `EXA_API_KEY` | yes | API key from exa.ai |
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Nolan Vale
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,194 @@
1
+ Metadata-Version: 2.4
2
+ Name: exa-search-cli
3
+ Version: 0.1.0
4
+ Summary: AI-agent friendly CLI for Exa — neural web search, URL crawling, and deep research from the terminal.
5
+ Project-URL: Homepage, https://github.com/nolan-vale/exa-cli
6
+ Project-URL: Repository, https://github.com/nolan-vale/exa-cli
7
+ Project-URL: Issues, https://github.com/nolan-vale/exa-cli/issues
8
+ Author: Nolan Vale
9
+ Maintainer: Nolan Vale Tools
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: ai-agents,automation,cli,developer-tools,exa,exa-search,llm-tools,search,search-automation,web-search
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
21
+ Classifier: Topic :: Utilities
22
+ Requires-Python: >=3.11
23
+ Requires-Dist: exa-py>=1.0.0
24
+ Description-Content-Type: text/markdown
25
+
26
+ <div align="center">
27
+
28
+ [中文](README.zh-CN.md) · [Русский](README.ru.md) · [Português](README.pt-BR.md) · [Español](README.es.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
29
+
30
+ <!--
31
+ COVER IMAGE — generate with this prompt, save as docs/cover.png, then uncomment below.
32
+
33
+ Prompt (Midjourney / DALL-E 3 / Stable Diffusion XL):
34
+ "A sleek dark terminal window filled with glowing cyan and blue search results streaming
35
+ in real-time, abstract neural network nodes forming a luminous web in the background,
36
+ minimalist developer aesthetic, pure black background, neon accent colors,
37
+ wide cinematic banner, 2:1 aspect ratio, no text, no UI chrome"
38
+
39
+ <img src="docs/cover.png" alt="exa-cli" width="100%">
40
+ -->
41
+
42
+ # exa-cli
43
+
44
+ CLI for [Exa](https://exa.ai) — neural web search, URL crawling, and AI deep research from the terminal.
45
+
46
+ [![PyPI](https://img.shields.io/pypi/v/exa-cli?color=0ea5e9&label=PyPI)](https://pypi.org/project/exa-cli/)
47
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-0ea5e9.svg)](https://python.org)
48
+ [![License: MIT](https://img.shields.io/badge/license-MIT-0ea5e9.svg)](LICENSE)
49
+ [![Stars](https://img.shields.io/github/stars/nolan-vale/exa-cli?style=social)](https://github.com/nolan-vale/exa-cli)
50
+
51
+ </div>
52
+
53
+ ---
54
+
55
+ ## What it does
56
+
57
+ `exa-cli` wraps the [Exa API](https://exa.ai) in three terminal commands. Exa is a search API built for AI applications — it searches by meaning, not keywords, which means it finds relevant pages even when the exact words are not present in the content.
58
+
59
+ `exa-search` searches the web. `exa-crawl` extracts clean readable text from any URL without HTML. `exa-research` submits a deep research task where Exa AI reads the web and synthesizes a structured answer.
60
+
61
+ Every command outputs clean `--json` for use in scripts, pipelines, and AI agent workflows.
62
+
63
+ ## Who it is for
64
+
65
+ - Developers who want web search access from shell scripts and automation pipelines
66
+ - AI agent developers who need structured, parseable web search output
67
+ - Researchers collecting, filtering, and crawling web content programmatically
68
+ - Anyone using Claude Code, Codex, Cursor, or Windsurf who wants to give their agent web access
69
+
70
+ ## Features
71
+
72
+ - Neural (semantic) search — finds pages by meaning, not keyword matching
73
+ - Find pages similar to any URL
74
+ - Filter by content type: `news`, `tweet`, `github`, `research paper`, `pdf`, and more
75
+ - Filter by date range and domain
76
+ - Full page text extraction from any URL (no HTML)
77
+ - AI deep research tasks with synthesized answers
78
+ - Clean `--json` output for every command
79
+
80
+ ## Installation
81
+
82
+ ```bash
83
+ uv tool install exa-cli
84
+ ```
85
+
86
+ > No `uv`? Run `curl -LsSf https://astral.sh/uv/install.sh | sh`, or use `pip install exa-search-cli`.
87
+
88
+ ## Quick start
89
+
90
+ Get your API key at [exa.ai](https://exa.ai) (free tier available):
91
+
92
+ ```bash
93
+ export EXA_API_KEY=your-key-here
94
+ exa-search "how do transformers work" --category "research paper"
95
+ ```
96
+
97
+ ## Usage
98
+
99
+ ```bash
100
+ # Neural search
101
+ exa-search "vision language models 2025" -n 10
102
+
103
+ # Find similar pages to a URL
104
+ exa-search --similar https://github.com/astral-sh/uv
105
+
106
+ # Filter by content type and date
107
+ exa-search "AI papers" --category "research paper" --start-date 2025-01-01
108
+
109
+ # Only specific domains
110
+ exa-search "documentation" --include-domain docs.python.org,docs.rs
111
+
112
+ # Exclude noisy domains
113
+ exa-search "tutorial" --exclude-domain medium.com,dev.to
114
+
115
+ # Crawl a page, get clean text
116
+ exa-crawl https://example.com -c 8000
117
+
118
+ # Deep research task
119
+ exa-research "current state of quantum error correction"
120
+
121
+ # JSON output for pipelines
122
+ exa-search "topic" --json | jq -r '.results[].url'
123
+ ```
124
+
125
+ **All flags — `exa-search`:**
126
+
127
+ | Flag | Default | Description |
128
+ |---|---|---|
129
+ | `-n` / `--num-results` | `8` | Number of results |
130
+ | `-t` / `--type` | `auto` | `auto` · `keyword` · `neural` |
131
+ | `--text` | off | Fetch and show full page text |
132
+ | `--category` | — | `news` · `tweet` · `github` · `research paper` · `pdf` · `company` · `personal site` · `linkedin profile` · `financial report` |
133
+ | `--start-date` | — | Published on or after `YYYY-MM-DD` |
134
+ | `--end-date` | — | Published on or before `YYYY-MM-DD` |
135
+ | `--include-domain` | — | Comma-separated domains to include only |
136
+ | `--exclude-domain` | — | Comma-separated domains to exclude |
137
+ | `--similar` | — | Find pages similar to this URL |
138
+ | `--json` | off | Raw JSON output |
139
+
140
+ **All flags — `exa-crawl`:** `-c` / `--max-chars` (default `5000`), `--json`
141
+
142
+ **All flags — `exa-research`:** `-m` / `--model` (`exa-research` or `exa-research-pro`), `--json`
143
+
144
+ ## AI agent usage
145
+
146
+ `exa-cli` is stateless, read-only, and exits cleanly — designed to be called by AI coding assistants.
147
+
148
+ ```bash
149
+ # Search and extract URLs (most common agent pattern)
150
+ exa-search "topic" --json | jq -r '.results[].url'
151
+
152
+ # Search → crawl first result
153
+ exa-search "topic" --json \
154
+ | jq -r '.results[0].url' \
155
+ | xargs exa-crawl -c 6000
156
+
157
+ # Find similar pages to a reference URL
158
+ exa-search --similar https://example.com --json
159
+
160
+ # Deep research, get synthesized answer
161
+ exa-research "topic" --json
162
+ ```
163
+
164
+ JSON schema for `exa-search --json`:
165
+ ```json
166
+ {
167
+ "results": [
168
+ {
169
+ "title": "...",
170
+ "url": "...",
171
+ "published_date": "2025-01-15T00:00:00.000Z",
172
+ "author": "...",
173
+ "highlights": ["excerpt..."],
174
+ "text": "full text if --text was passed"
175
+ }
176
+ ]
177
+ }
178
+ ```
179
+
180
+ See [AGENTS.md](AGENTS.md) for full schemas, exit codes, and environment reference.
181
+
182
+ → [Full documentation](docs/USAGE.md)
183
+
184
+ ## Project metadata
185
+
186
+ - **Author:** Nolan Vale
187
+ - **Brand:** Nolan Vale Tools
188
+ - **Focus:** search automation, CLI workflows, AI-agent tooling, developer productivity
189
+ - **License:** MIT
190
+
191
+ ---
192
+
193
+ Built by [Nolan Vale](https://github.com/nolan-vale)
194
+ Part of **Nolan Vale Tools** — practical open-source utilities for search, automation, AI agents, and developer workflows.
@@ -0,0 +1,92 @@
1
+ <div align="center">
2
+
3
+ ← [English](README.md) · [中文](README.zh-CN.md) · [Русский](README.ru.md) · [Português](README.pt-BR.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
4
+
5
+ # exa-cli
6
+
7
+ **CLI para [Exa](https://exa.ai) — búsqueda web neural, crawling de URLs y tareas de investigación con IA, desde el terminal.**
8
+
9
+ [![PyPI](https://img.shields.io/pypi/v/exa-cli?color=0ea5e9&label=PyPI)](https://pypi.org/project/exa-cli/)
10
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-0ea5e9.svg)](https://python.org)
11
+ [![License: MIT](https://img.shields.io/badge/license-MIT-0ea5e9.svg)](../LICENSE)
12
+
13
+ </div>
14
+
15
+ ---
16
+
17
+ `exa-cli` envuelve la [Exa API](https://exa.ai) en tres comandos de terminal. Exa busca por significado, no por palabras clave. Todos los comandos soportan `--json` para scripts, agentes de IA y pipelines.
18
+
19
+ ## Empieza en 60 segundos
20
+
21
+ **Paso 1 — Instala:**
22
+ ```bash
23
+ uv tool install exa-cli
24
+ ```
25
+
26
+ > ¿Sin `uv`? Ejecuta `curl -LsSf https://astral.sh/uv/install.sh | sh`, o usa `pip install exa-search-cli`.
27
+
28
+ **Paso 2 — Obtén tu clave de API:**
29
+ Ve a [exa.ai](https://exa.ai) → regístrate (plan gratuito disponible) → Dashboard → API Keys.
30
+
31
+ **Paso 3 — Configura la clave:**
32
+ ```bash
33
+ export EXA_API_KEY=tu-clave
34
+ # Añade a ~/.zshrc o ~/.bashrc para que persista
35
+ ```
36
+
37
+ **Paso 4 — Busca:**
38
+ ```bash
39
+ exa-search "cómo funcionan los transformers" --category "research paper"
40
+ ```
41
+
42
+ ## Comandos
43
+
44
+ | Comando | Qué hace |
45
+ |---|---|
46
+ | `exa-search <consulta>` | Búsqueda web por significado. Filtros por tipo, fecha, dominio. Encuentra páginas similares. |
47
+ | `exa-crawl <url>` | Extrae texto limpio de cualquier URL, sin HTML. |
48
+ | `exa-research <tema>` | Tarea de investigación profunda. La IA lee la web y sintetiza una respuesta. |
49
+
50
+ Todos los comandos aceptan `--json` para `jq`, scripts y agentes.
51
+
52
+ ## Ejemplos
53
+
54
+ ```bash
55
+ # Encontrar páginas similares a una URL
56
+ exa-search --similar https://github.com/astral-sh/uv
57
+
58
+ # Artículos de investigación de IA de 2025
59
+ exa-search "modelos de lenguaje visual" --category "research paper" --start-date 2025-01-01
60
+
61
+ # Solo repositorios de GitHub, lista de URLs
62
+ exa-search "async rust runtime" --include-domain github.com --json | jq -r '.results[].url'
63
+
64
+ # Texto limpio de cualquier página
65
+ exa-crawl https://example.com -c 8000
66
+
67
+ # Investigación profunda con IA
68
+ exa-research "estado actual de la corrección de errores cuánticos"
69
+ ```
70
+
71
+ ## Referencia de opciones
72
+
73
+ **`exa-search`**
74
+
75
+ | Flag | Defecto | Descripción |
76
+ |---|---|---|
77
+ | `-n` / `--num-results` | `8` | Número de resultados |
78
+ | `-t` / `--type` | `auto` | `auto` · `keyword` · `neural` |
79
+ | `--category` | — | `news` · `tweet` · `github` · `research paper` · `pdf` etc. |
80
+ | `--start-date` | — | Publicado en o después de `YYYY-MM-DD` |
81
+ | `--end-date` | — | Publicado en o antes de `YYYY-MM-DD` |
82
+ | `--include-domain` | — | Incluir solo estos dominios (separados por coma) |
83
+ | `--exclude-domain` | — | Excluir estos dominios (separados por coma) |
84
+ | `--similar` | — | Encontrar páginas similares a esta URL |
85
+ | `--json` | off | Salida JSON en bruto |
86
+
87
+ → **[Documentación completa](docs/USAGE.md)**(EN)
88
+
89
+ ---
90
+
91
+ Built by [Nolan Vale](https://github.com/nolan-vale)
92
+ Part of **Nolan Vale Tools** — practical open-source utilities for search, automation, AI agents, and developer workflows.
@@ -0,0 +1,92 @@
1
+ <div align="center">
2
+
3
+ ← [English](README.md) · [中文](README.zh-CN.md) · [Русский](README.ru.md) · [Português](README.pt-BR.md) · [Español](README.es.md) · [한국어](README.ko.md)
4
+
5
+ # exa-cli
6
+
7
+ **[Exa](https://exa.ai) の CLI ツール — ニューラル Web 検索・URL クロール・AI リサーチをターミナルから。**
8
+
9
+ [![PyPI](https://img.shields.io/pypi/v/exa-cli?color=0ea5e9&label=PyPI)](https://pypi.org/project/exa-cli/)
10
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-0ea5e9.svg)](https://python.org)
11
+ [![License: MIT](https://img.shields.io/badge/license-MIT-0ea5e9.svg)](../LICENSE)
12
+
13
+ </div>
14
+
15
+ ---
16
+
17
+ `exa-cli` は [Exa API](https://exa.ai) を 3 つのターミナルコマンドにラップします。Exa はキーワードではなく意味で検索します。すべてのコマンドはスクリプト・AI エージェント・パイプライン向けに `--json` をサポートします。
18
+
19
+ ## 60 秒で始める
20
+
21
+ **ステップ 1 — インストール:**
22
+ ```bash
23
+ uv tool install exa-cli
24
+ ```
25
+
26
+ > `uv` がない場合は `curl -LsSf https://astral.sh/uv/install.sh | sh` を実行するか、`pip install exa-search-cli` を使用してください。
27
+
28
+ **ステップ 2 — API キーを取得:**
29
+ [exa.ai](https://exa.ai) → サインアップ(無料プランあり)→ Dashboard → API Keys。
30
+
31
+ **ステップ 3 — キーを設定:**
32
+ ```bash
33
+ export EXA_API_KEY=あなたのキー
34
+ # ~/.zshrc や ~/.bashrc に追加すると永続化できます
35
+ ```
36
+
37
+ **ステップ 4 — 検索:**
38
+ ```bash
39
+ exa-search "トランスフォーマーの仕組み" --category "research paper"
40
+ ```
41
+
42
+ ## コマンド
43
+
44
+ | コマンド | 機能 |
45
+ |---|---|
46
+ | `exa-search <クエリ>` | 意味による Web 検索。タイプ・日付・ドメインフィルタリング、類似ページ検索。 |
47
+ | `exa-crawl <url>` | 任意の URL からクリーンなテキストを取得(HTML なし)。 |
48
+ | `exa-research <トピック>` | 深層リサーチタスク。Exa AI が Web を読んで回答を合成。 |
49
+
50
+ すべてのコマンドは `--json` に対応(`jq`、スクリプト、AI エージェントと連携可能)。
51
+
52
+ ## 使用例
53
+
54
+ ```bash
55
+ # 任意の URL に類似したページを検索
56
+ exa-search --similar https://github.com/astral-sh/uv
57
+
58
+ # 2025 年の AI 研究論文
59
+ exa-search "視覚言語モデル" --category "research paper" --start-date 2025-01-01
60
+
61
+ # GitHub リポジトリのみ、URL リストを取得
62
+ exa-search "async rust runtime" --include-domain github.com --json | jq -r '.results[].url'
63
+
64
+ # 任意ページのクリーンなテキストを取得
65
+ exa-crawl https://example.com -c 8000
66
+
67
+ # AI による深層リサーチ
68
+ exa-research "量子エラー訂正の現状"
69
+ ```
70
+
71
+ ## オプションリファレンス
72
+
73
+ **`exa-search`**
74
+
75
+ | フラグ | デフォルト | 説明 |
76
+ |---|---|---|
77
+ | `-n` / `--num-results` | `8` | 返す結果数 |
78
+ | `-t` / `--type` | `auto` | `auto` · `keyword` · `neural` |
79
+ | `--category` | — | `news` · `tweet` · `github` · `research paper` · `pdf` など |
80
+ | `--start-date` | — | 指定日以降に公開 `YYYY-MM-DD` |
81
+ | `--end-date` | — | 指定日以前に公開 `YYYY-MM-DD` |
82
+ | `--include-domain` | — | このドメインのみ含める(カンマ区切り) |
83
+ | `--exclude-domain` | — | このドメインを除外(カンマ区切り) |
84
+ | `--similar` | — | この URL に類似したページを検索 |
85
+ | `--json` | off | 生の JSON 出力 |
86
+
87
+ → **[完全なドキュメント](docs/USAGE.md)**(英語)
88
+
89
+ ---
90
+
91
+ Built by [Nolan Vale](https://github.com/nolan-vale)
92
+ Part of **Nolan Vale Tools** — practical open-source utilities for search, automation, AI agents, and developer workflows.
@@ -0,0 +1,92 @@
1
+ <div align="center">
2
+
3
+ ← [English](README.md) · [中文](README.zh-CN.md) · [Русский](README.ru.md) · [Português](README.pt-BR.md) · [Español](README.es.md) · [日本語](README.ja.md)
4
+
5
+ # exa-cli
6
+
7
+ **[Exa](https://exa.ai) CLI — 뉴럴 웹 검색, URL 크롤링, AI 리서치를 터미널에서.**
8
+
9
+ [![PyPI](https://img.shields.io/pypi/v/exa-cli?color=0ea5e9&label=PyPI)](https://pypi.org/project/exa-cli/)
10
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-0ea5e9.svg)](https://python.org)
11
+ [![License: MIT](https://img.shields.io/badge/license-MIT-0ea5e9.svg)](../LICENSE)
12
+
13
+ </div>
14
+
15
+ ---
16
+
17
+ `exa-cli`는 [Exa API](https://exa.ai)를 세 개의 터미널 명령어로 감쌉니다. Exa는 키워드가 아닌 의미로 검색합니다. 모든 명령어는 스크립트, AI 에이전트, 파이프라인을 위한 `--json` 출력을 지원합니다.
18
+
19
+ ## 60초 시작 가이드
20
+
21
+ **1단계 — 설치:**
22
+ ```bash
23
+ uv tool install exa-cli
24
+ ```
25
+
26
+ > `uv`가 없다면 `curl -LsSf https://astral.sh/uv/install.sh | sh`를 실행하거나, `pip install exa-search-cli`를 사용하세요.
27
+
28
+ **2단계 — API 키 발급:**
29
+ [exa.ai](https://exa.ai) → 회원가입 (무료 플랜 있음) → Dashboard → API Keys.
30
+
31
+ **3단계 — 키 설정:**
32
+ ```bash
33
+ export EXA_API_KEY=발급받은-키
34
+ # ~/.zshrc 또는 ~/.bashrc에 추가하면 영구 적용됩니다
35
+ ```
36
+
37
+ **4단계 — 검색:**
38
+ ```bash
39
+ exa-search "트랜스포머 작동 원리" --category "research paper"
40
+ ```
41
+
42
+ ## 명령어
43
+
44
+ | 명령어 | 기능 |
45
+ |---|---|
46
+ | `exa-search <쿼리>` | 의미 기반 웹 검색. 타입·날짜·도메인 필터링. 유사 페이지 검색. |
47
+ | `exa-crawl <url>` | 어떤 URL에서도 깔끔한 텍스트 추출 (HTML 없음). |
48
+ | `exa-research <주제>` | 심층 리서치 태스크. Exa AI가 웹을 읽고 답변을 합성. |
49
+
50
+ 모든 명령어는 `--json` 지원 (`jq`, 스크립트, AI 에이전트와 연동 가능).
51
+
52
+ ## 예시
53
+
54
+ ```bash
55
+ # 어떤 URL과 유사한 페이지 찾기
56
+ exa-search --similar https://github.com/astral-sh/uv
57
+
58
+ # 2025년 AI 연구 논문
59
+ exa-search "비전 언어 모델" --category "research paper" --start-date 2025-01-01
60
+
61
+ # GitHub 저장소만, URL 목록 추출
62
+ exa-search "async rust runtime" --include-domain github.com --json | jq -r '.results[].url'
63
+
64
+ # 어떤 페이지든 깔끔한 텍스트 추출
65
+ exa-crawl https://example.com -c 8000
66
+
67
+ # AI 심층 리서치
68
+ exa-research "양자 오류 수정의 현황"
69
+ ```
70
+
71
+ ## 옵션 레퍼런스
72
+
73
+ **`exa-search`**
74
+
75
+ | 플래그 | 기본값 | 설명 |
76
+ |---|---|---|
77
+ | `-n` / `--num-results` | `8` | 반환할 결과 수 |
78
+ | `-t` / `--type` | `auto` | `auto` · `keyword` · `neural` |
79
+ | `--category` | — | `news` · `tweet` · `github` · `research paper` · `pdf` 등 |
80
+ | `--start-date` | — | 이 날짜 이후 게시 `YYYY-MM-DD` |
81
+ | `--end-date` | — | 이 날짜 이전 게시 `YYYY-MM-DD` |
82
+ | `--include-domain` | — | 이 도메인만 포함 (쉼표 구분) |
83
+ | `--exclude-domain` | — | 이 도메인 제외 (쉼표 구분) |
84
+ | `--similar` | — | 이 URL과 유사한 페이지 검색 |
85
+ | `--json` | off | 원시 JSON 출력 |
86
+
87
+ → **[전체 문서](docs/USAGE.md)**(영어)
88
+
89
+ ---
90
+
91
+ Built by [Nolan Vale](https://github.com/nolan-vale)
92
+ Part of **Nolan Vale Tools** — practical open-source utilities for search, automation, AI agents, and developer workflows.