@@ -30,6 +30,7 @@ A command-line tool for converting PDF documents to Markdown with support for mu
3030## Features
3131
3232- Multiple provider support: PaddleOCR, Zhipu AI (lite/expert/prime)
33+ - Secure API key storage in system keychain (macOS/Windows/Linux)
3334- Complex element parsing: text, images, tables, formulas, and more
3435- Structured JSON output, meaningful exit codes, and dry-run support
3536- Easy installation with one-click script for Linux/macOS/Windows
@@ -63,6 +64,41 @@ For more development information, see [CONTRIBUTING.md](./CONTRIBUTING.md).
6364
6465## API Key Configuration
6566
67+ ### Secure Login (Recommended)
68+
69+ ``` bash
70+ # Interactive: select provider and enter API key
71+ pdf-to-markdown login
72+
73+ # Store API key for a specific provider
74+ pdf-to-markdown login --provider paddleocr
75+ pdf-to-markdown login --provider zhipu
76+
77+ # Non-interactive: specify both provider and key
78+ pdf-to-markdown login --provider paddleocr --api-key " your_api_key"
79+
80+ # List stored credentials
81+ pdf-to-markdown login --list
82+
83+ # Delete a stored credential
84+ pdf-to-markdown login --delete paddleocr
85+ ```
86+
87+ API keys are stored securely in the system keychain (macOS Keychain / Windows Credential Manager / Linux Secret Service) and never saved in plaintext.
88+
89+ ### Environment Variables (Alternative)
90+
91+ ``` bash
92+ export PADDLE_OCR_API_KEY=" your_api_key"
93+ export ZHIPU_API_KEY=" your_api_key"
94+ ```
95+
96+ Or pass via ` --api-key ` / ` -k ` flag:
97+
98+ ``` bash
99+ pdf-to-markdown parse -k " your_api_key" document.pdf
100+ ```
101+
66102### PaddleOCR
67103- Application URL: https://aistudio.baidu.com/paddleocr
68104- Free quota: 20,000 pages per day
@@ -76,12 +112,14 @@ For more development information, see [CONTRIBUTING.md](./CONTRIBUTING.md).
76112### Basic Usage
77113
78114``` bash
79- # Using PaddleOCR with local file
80- export PADDLE_OCR_API_KEY=" your_api_key"
115+ # First, store your API key securely (only needed once)
116+ pdf-to-markdown login
117+
118+ # Then convert PDF to Markdown
81119pdf-to-markdown parse document.pdf
82120
83- # Using Zhipu AI with local file
84- export ZHIPU_API_KEY= " your_api_key "
121+ # Using Zhipu AI
122+ pdf-to-markdown login --provider zhipu
85123pdf-to-markdown parse --provider zhipu/lite document.pdf
86124
87125# Using URL to download PDF directly
@@ -164,6 +202,28 @@ pdf-to-markdown parse document.pdf --overwrite
164202PDF_TO_MARKDOWN_NO_CACHE=1 pdf-to-markdown parse document.pdf
165203```
166204
205+ #### ` login ` - Secure API Key Storage
206+
207+ ``` bash
208+ # Interactive: select provider and enter API key
209+ pdf-to-markdown login
210+
211+ # Store API key for a specific provider (interactive key input)
212+ pdf-to-markdown login --provider paddleocr
213+
214+ # Store API key non-interactively
215+ pdf-to-markdown login --provider zhipu --api-key " your_api_key"
216+
217+ # List stored credentials
218+ pdf-to-markdown login --list
219+
220+ # Delete stored credential
221+ pdf-to-markdown login --delete paddleocr
222+
223+ # JSON output
224+ pdf-to-markdown login --list --json
225+ ```
226+
167227#### ` cache ` - Cache Management
168228
169229``` bash
0 commit comments