glance-cli 0.15.0 → 0.16.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/CHANGELOG.md +25 -10
- package/README.md +122 -172
- package/dist/cli.js +151 -136
- package/package.json +2 -2
- package/src/cli/commands.ts +679 -74
- package/src/cli/config.ts +1 -1
- package/src/cli/index.ts +29 -2
- package/src/cli/utils.ts +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,9 +5,29 @@ All notable changes to glance-cli 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.
|
|
8
|
+
## [0.16.0] - 2026-01-06
|
|
9
|
+
|
|
10
|
+
### 🌐 Added: Enhanced Browse Mode
|
|
11
|
+
- **Interactive Link Navigation**: Browse websites interactively with automatic summarization
|
|
12
|
+
- **Enhanced Commands**: Navigate with options like `3 --tldr`, `5 --read -l fr`, `1 --eli5 -m gemini`
|
|
13
|
+
- **Automatic Summaries**: Every navigation shows a TLDR summary by default (like normal glance)
|
|
14
|
+
- **File Output Support**: Save summaries with `3 --output file.md --format markdown` or `3 --output data.json --format json`
|
|
15
|
+
- **Smart UX Design**:
|
|
16
|
+
- Last command and results show at bottom before prompt (no scrolling needed)
|
|
17
|
+
- Clear screen refresh on each iteration for clean interface
|
|
18
|
+
- Simple separator design with consistent formatting
|
|
19
|
+
- **Seamless Navigation**: Browse mode continues after enhanced commands without exit bugs
|
|
20
|
+
- **Command Categories**:
|
|
21
|
+
- Navigation: `1-24` (navigate to link), `n` (nav links), `e` (external), `a` (all)
|
|
22
|
+
- Utility: `b` (back), `h` (history), `q` (quit)
|
|
23
|
+
- Enhanced: All glance options work with link numbers
|
|
9
24
|
|
|
10
|
-
###
|
|
25
|
+
### 🐛 Fixed
|
|
26
|
+
- **Browse Mode Exit Bug**: Fixed spinners interfering with readline interface using `discardStdin: false`
|
|
27
|
+
- **File Output Confirmation**: Now shows `✅ Content saved to filename` instead of generic "completed"
|
|
28
|
+
- **Regular Navigation Summary**: Fixed missing summaries when just typing link numbers
|
|
29
|
+
|
|
30
|
+
### 🚀 Enhanced from v0.15.0: Comprehensive Local Model Support
|
|
11
31
|
- **Fixed gpt-oss model compatibility**: Added special handling for gpt-oss models that use "thinking" field in responses
|
|
12
32
|
- **Tested and verified 7 Ollama models**:
|
|
13
33
|
- ✅ llama3:latest - Fast, reliable general-purpose model
|
|
@@ -19,15 +39,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
19
39
|
- **100% test success rate**: All models work with --tldr, --key-points, and --eli5 modes
|
|
20
40
|
- **Improved response parsing**: Better extraction of meaningful content from various model response formats
|
|
21
41
|
|
|
22
|
-
### 🐛 Fixed
|
|
23
|
-
- **gpt-oss models now properly route to Ollama**: Previously failing gpt-oss models now correctly use local Ollama endpoint
|
|
24
|
-
- **Response extraction for thinking-based models**: Models that output reasoning in "thinking" field now have their responses properly extracted
|
|
25
|
-
- **Consistent model detection**: Enhanced provider detection to correctly identify local vs cloud models
|
|
26
|
-
|
|
27
42
|
### 📝 Documentation
|
|
28
|
-
- Added comprehensive
|
|
29
|
-
-
|
|
30
|
-
-
|
|
43
|
+
- Added comprehensive browse mode usage examples
|
|
44
|
+
- Updated README with interactive navigation features
|
|
45
|
+
- Included enhanced command syntax and options
|
|
31
46
|
|
|
32
47
|
## [0.14.0] - 2026-01-06
|
|
33
48
|
|
package/README.md
CHANGED
|
@@ -2,205 +2,156 @@
|
|
|
2
2
|
|
|
3
3
|
**AI-powered web reader for your terminal** – Fetch any webpage, extract clean content, get instant AI summaries, and listen with natural voice synthesis.
|
|
4
4
|
|
|
5
|
-
- **100% FREE by default** – Uses local Ollama (no API keys needed!)
|
|
6
|
-
- **Auto language detection** – Detects English, French, Spanish, Haitian Creole
|
|
7
|
-
- **No tracking** – Your browsing history stays private
|
|
8
|
-
- **Voice-enabled** – Read articles aloud with multilingual support
|
|
9
|
-
- **File output** – Save summaries as markdown, JSON, or plain text
|
|
10
|
-
- **Lightning fast** – Built with Bun and TypeScript
|
|
11
|
-
|
|
12
|
-
Turn any webpage into terminal-friendly insights with AI summaries or full content, read it, listen to it, or export it.
|
|
13
|
-
|
|
14
5
|
[](https://www.npmjs.com/package/glance-cli)
|
|
15
6
|
[](https://www.npmjs.com/package/glance-cli)
|
|
16
7
|
[](https://opensource.org/licenses/MIT)
|
|
17
8
|
|
|
18
9
|
---
|
|
19
10
|
|
|
20
|
-
##
|
|
11
|
+
## Why glance-cli?
|
|
12
|
+
|
|
13
|
+
- ✅ **100% FREE** – Uses local Ollama (no API keys needed)
|
|
14
|
+
- 🌍 **Auto language detection** – English, French, Spanish, Haitian Creole
|
|
15
|
+
- 🔒 **Privacy first** – Your browsing history stays local
|
|
16
|
+
- 🎤 **Voice-enabled** – Read articles aloud with multilingual support
|
|
17
|
+
- 💾 **Multiple formats** – Save as markdown, JSON, or plain text
|
|
18
|
+
- ⚡ **Lightning fast** – Built with Bun and TypeScript
|
|
21
19
|
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
22
23
|
```bash
|
|
23
24
|
# Install
|
|
24
|
-
|
|
25
|
+
npm install -g glance-cli
|
|
25
26
|
|
|
26
27
|
# Use immediately
|
|
27
|
-
glance https://
|
|
28
|
-
glance https://
|
|
29
|
-
glance https://news.com --
|
|
30
|
-
glance https://news.com --copy # Copy to clipboard
|
|
28
|
+
glance https://news.com # Get AI summary
|
|
29
|
+
glance https://news.com --read # Read aloud
|
|
30
|
+
glance https://news.com --browse # Interactive navigation
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
**For 100% free local AI:**
|
|
34
34
|
```bash
|
|
35
|
-
# One-time setup (~4GB)
|
|
36
35
|
curl -fsSL https://ollama.com/install.sh | sh
|
|
37
36
|
ollama pull llama3
|
|
38
|
-
|
|
39
|
-
# Now completely free forever
|
|
40
37
|
glance https://techcrunch.com --tldr --read
|
|
41
38
|
```
|
|
42
39
|
|
|
43
40
|
---
|
|
44
41
|
|
|
45
|
-
##
|
|
42
|
+
## Core Features
|
|
46
43
|
|
|
47
|
-
###
|
|
44
|
+
### 🌐 Interactive Browse Mode
|
|
45
|
+
Navigate websites interactively with AI summaries on demand.
|
|
48
46
|
```bash
|
|
49
|
-
glance
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
glance https://news.ycombinator.com --browse
|
|
48
|
+
|
|
49
|
+
# Inside browse mode:
|
|
50
|
+
1 # Navigate to link 1
|
|
51
|
+
3 --tldr # Navigate + get summary
|
|
52
|
+
5 --read # Navigate + read aloud
|
|
53
|
+
1 --output file.md # Navigate + save to file
|
|
54
|
+
n # Show navigation links
|
|
55
|
+
e # Show external links
|
|
56
|
+
b # Go back
|
|
57
|
+
q # Quit
|
|
56
58
|
```
|
|
57
59
|
|
|
58
|
-
###
|
|
60
|
+
### 📝 Read & Summarize
|
|
61
|
+
Extract content with AI summaries in multiple styles.
|
|
59
62
|
```bash
|
|
60
|
-
glance <url>
|
|
61
|
-
glance <url> --
|
|
62
|
-
glance <url> --
|
|
63
|
-
glance <url>
|
|
64
|
-
|
|
65
|
-
glance --
|
|
63
|
+
glance <url> # AI summary (default)
|
|
64
|
+
glance <url> --tldr # One sentence
|
|
65
|
+
glance <url> --key-points # Bullet points
|
|
66
|
+
glance <url> --eli5 # Simple explanation
|
|
67
|
+
glance <url> --full # Full content (no summary)
|
|
68
|
+
glance <url> --copy # Copy to clipboard
|
|
66
69
|
```
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- **Premium**: ElevenLabs (natural voices, requires `ELEVENLABS_API_KEY`)
|
|
71
|
-
|
|
72
|
-
### 🌍 **Multi-Language Support**
|
|
71
|
+
### 🎤 Voice & Audio
|
|
72
|
+
Listen to articles with natural voice synthesis.
|
|
73
73
|
```bash
|
|
74
|
-
glance
|
|
75
|
-
glance
|
|
76
|
-
glance <url> --
|
|
74
|
+
glance <url> --read # Read aloud (auto-detects language)
|
|
75
|
+
glance <url> --audio-output audio.mp3 # Save as MP3
|
|
76
|
+
glance <url> --voice nova --read # Choose specific voice
|
|
77
|
+
glance <url> -l fr --read # French voice
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
# Supported: en, fr, es, ht (Haitian Creole)
|
|
80
|
-
# Override: Use --language flag to force specific language
|
|
79
|
+
glance --list-voices # See available voices
|
|
81
80
|
```
|
|
82
81
|
|
|
83
|
-
|
|
82
|
+
**Voice Options:**
|
|
83
|
+
- **Free**: System TTS (macOS/Windows/Linux)
|
|
84
|
+
- **Premium**: ElevenLabs (natural voices, requires API key)
|
|
84
85
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
### 💾 Save & Export
|
|
87
|
+
Save content in multiple formats.
|
|
88
|
+
```bash
|
|
89
|
+
glance <url> --output summary.md # Save as markdown
|
|
90
|
+
glance <url> --output data.json # Save as JSON
|
|
91
|
+
glance <url> --format plain -o file # Save as plain text
|
|
92
|
+
```
|
|
92
93
|
|
|
94
|
+
### 🌍 Auto Language Detection
|
|
95
|
+
Automatically detects and adapts to content language.
|
|
93
96
|
```bash
|
|
94
|
-
|
|
95
|
-
glance
|
|
96
|
-
glance <url> --
|
|
97
|
-
glance <url> --model mistral:7b
|
|
98
|
-
glance <url> --model gpt-oss:20b
|
|
99
|
-
|
|
100
|
-
# Premium cloud AI (optional, requires API keys)
|
|
101
|
-
glance <url> --model gpt-4o-mini # OpenAI
|
|
102
|
-
glance <url> --model gemini-2.0-flash-exp # Google Gemini
|
|
103
|
-
|
|
104
|
-
# Model management
|
|
105
|
-
glance --list-models # Show available local models
|
|
106
|
-
glance --check-services # Show AI/voice service status
|
|
107
|
-
glance <url> --free-only # Never use paid APIs
|
|
97
|
+
glance https://lemonde.fr --tldr # Auto-detects French
|
|
98
|
+
glance https://news.es --read # Auto-detects Spanish + voice
|
|
99
|
+
glance <url> -l es --read # Override to Spanish
|
|
108
100
|
```
|
|
109
101
|
|
|
110
|
-
|
|
102
|
+
Supported: English, French, Spanish, Haitian Creole
|
|
111
103
|
|
|
112
|
-
|
|
104
|
+
---
|
|
113
105
|
|
|
106
|
+
## Common Use Cases
|
|
114
107
|
```bash
|
|
115
108
|
# Morning news with audio
|
|
116
109
|
glance https://news.ycombinator.com --tldr --read
|
|
117
110
|
|
|
118
111
|
# Quick copy for sharing
|
|
119
|
-
glance https://
|
|
112
|
+
glance https://article.com --tldr --copy
|
|
120
113
|
|
|
121
|
-
#
|
|
122
|
-
glance https://
|
|
114
|
+
# Interactive research
|
|
115
|
+
glance https://en.wikipedia.org/wiki/AI --browse
|
|
123
116
|
|
|
124
117
|
# Study while coding
|
|
125
118
|
glance https://tutorial.com --full --read
|
|
126
119
|
|
|
127
|
-
#
|
|
128
|
-
glance https://
|
|
120
|
+
# Save documentation
|
|
121
|
+
glance https://docs.python.org --output guide.md
|
|
129
122
|
|
|
130
|
-
# Multilingual
|
|
131
|
-
glance https://lemonde.fr --
|
|
132
|
-
|
|
133
|
-
# Save in different formats
|
|
134
|
-
glance https://news.com --output summary.md # Markdown format
|
|
135
|
-
glance https://api-docs.com --output data.json # JSON format
|
|
136
|
-
glance https://article.com --format plain --output content.txt # Plain text
|
|
137
|
-
|
|
138
|
-
# Batch processing
|
|
139
|
-
for url in $(cat urls.txt); do
|
|
140
|
-
glance "$url" --tldr --output "$(basename $url).md"
|
|
141
|
-
done
|
|
123
|
+
# Multilingual content
|
|
124
|
+
glance https://lemonde.fr --read # Auto-detects French voice
|
|
142
125
|
```
|
|
143
126
|
|
|
144
127
|
---
|
|
145
128
|
|
|
146
|
-
##
|
|
129
|
+
## AI Models
|
|
147
130
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
--full # Full content (no summary)
|
|
154
|
-
--ask "question" # Custom Q&A
|
|
155
|
-
```
|
|
131
|
+
**Local (Free)** – via Ollama:
|
|
132
|
+
- `llama3:latest` – Fast, reliable (recommended)
|
|
133
|
+
- `gemma3:4b` – Lightweight, efficient
|
|
134
|
+
- `mistral:7b` – Excellent quality
|
|
135
|
+
- `deepseek-r1:latest` – Strong reasoning
|
|
156
136
|
|
|
157
|
-
|
|
137
|
+
**Cloud (Optional)** – requires API keys:
|
|
138
|
+
- `gpt-4o-mini` – OpenAI
|
|
139
|
+
- `gemini-2.0-flash-exp` – Google Gemini
|
|
158
140
|
```bash
|
|
159
|
-
--
|
|
160
|
-
--
|
|
161
|
-
|
|
162
|
-
--list-voices # Show available voices
|
|
163
|
-
-l, --language <code> # Output language (en, fr, es, ht)
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### **AI Models**
|
|
167
|
-
```bash
|
|
168
|
-
--model <name> # AI model (llama3, gpt-4o-mini, gemini-2.0-flash-exp)
|
|
169
|
-
--list-models # Show local models
|
|
170
|
-
--check-services # Show service status
|
|
171
|
-
--free-only # Never use paid APIs
|
|
172
|
-
--prefer-quality # Use premium if available
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### **Output & File Saving**
|
|
176
|
-
```bash
|
|
177
|
-
--format <type> # Output format: md, json, plain (default: terminal)
|
|
178
|
-
--output, -o <file> # Save to file (auto-detects format from extension)
|
|
179
|
-
--copy, -c # Copy summary to clipboard
|
|
180
|
-
--stream # Live streaming output
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### **Advanced**
|
|
184
|
-
```bash
|
|
185
|
-
--screenshot <file> # Capture screenshot
|
|
186
|
-
--full-render # Render JavaScript (for SPAs)
|
|
187
|
-
--metadata # Show page metadata
|
|
188
|
-
--links # Extract all links
|
|
189
|
-
-v, --verbose # Detailed logs
|
|
190
|
-
-h, --help # Show help
|
|
191
|
-
-V, --version # Show version
|
|
141
|
+
glance <url> --model llama3 # Use specific model
|
|
142
|
+
glance --list-models # Show available models
|
|
143
|
+
glance <url> --free-only # Never use paid APIs
|
|
192
144
|
```
|
|
193
145
|
|
|
194
146
|
---
|
|
195
147
|
|
|
196
|
-
##
|
|
197
|
-
|
|
148
|
+
## Configuration
|
|
198
149
|
```bash
|
|
199
150
|
# AI Providers (optional)
|
|
200
151
|
export OPENAI_API_KEY=...
|
|
201
152
|
export GEMINI_API_KEY=...
|
|
202
153
|
|
|
203
|
-
# Voice (optional, for premium)
|
|
154
|
+
# Voice (optional, for premium voices)
|
|
204
155
|
export ELEVENLABS_API_KEY=...
|
|
205
156
|
|
|
206
157
|
# Ollama (optional, auto-detected)
|
|
@@ -209,66 +160,65 @@ export OLLAMA_ENDPOINT=http://localhost:11434
|
|
|
209
160
|
|
|
210
161
|
---
|
|
211
162
|
|
|
212
|
-
##
|
|
213
|
-
|
|
163
|
+
## All Options
|
|
214
164
|
```bash
|
|
215
|
-
#
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
#
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
#
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
#
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
#
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
#
|
|
231
|
-
|
|
165
|
+
# Content
|
|
166
|
+
--browse # Interactive navigation
|
|
167
|
+
--tldr # One sentence summary
|
|
168
|
+
--key-points, -k # Bullet points
|
|
169
|
+
--eli5 # Simple explanation
|
|
170
|
+
--full # Full content
|
|
171
|
+
--ask "question" # Custom Q&A
|
|
172
|
+
|
|
173
|
+
# Voice & Audio
|
|
174
|
+
--read, -r # Read aloud
|
|
175
|
+
--audio-output <file> # Save as MP3
|
|
176
|
+
--voice <name> # Choose voice
|
|
177
|
+
--list-voices # Show available voices
|
|
178
|
+
-l, --language <code> # Output language (en, fr, es, ht)
|
|
179
|
+
|
|
180
|
+
# AI Models
|
|
181
|
+
--model <name> # Choose AI model
|
|
182
|
+
--list-models # Show local models
|
|
183
|
+
--free-only # Never use paid APIs
|
|
184
|
+
|
|
185
|
+
# Output
|
|
186
|
+
--format <type> # Format: md, json, plain
|
|
187
|
+
--output, -o <file> # Save to file
|
|
188
|
+
--copy, -c # Copy to clipboard
|
|
189
|
+
--stream # Live streaming output
|
|
190
|
+
|
|
191
|
+
# Advanced
|
|
192
|
+
--screenshot <file> # Capture screenshot
|
|
193
|
+
--full-render # Render JavaScript
|
|
194
|
+
--metadata # Show page metadata
|
|
195
|
+
--links # Extract all links
|
|
196
|
+
-v, --verbose # Detailed logs
|
|
232
197
|
```
|
|
233
198
|
|
|
234
199
|
---
|
|
235
200
|
|
|
236
|
-
##
|
|
237
|
-
|
|
238
|
-
- **Fast**: ~5 seconds with local AI (Ollama)
|
|
239
|
-
- **Efficient**: Cheerio-based content extraction
|
|
240
|
-
- **Lightweight**: ~8MB bundle size
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## 🤝 Contributing
|
|
201
|
+
## Contributing
|
|
245
202
|
|
|
246
203
|
Contributions welcome! Check out our [Contributing Guide](CONTRIBUTING.md).
|
|
247
|
-
|
|
248
204
|
```bash
|
|
249
205
|
git clone https://github.com/jkenley/glance-cli.git
|
|
250
206
|
cd glance-cli
|
|
251
207
|
bun install
|
|
252
|
-
bun dev https://
|
|
208
|
+
bun dev https://example.com
|
|
253
209
|
```
|
|
254
210
|
|
|
255
211
|
---
|
|
256
212
|
|
|
257
|
-
##
|
|
213
|
+
## Support
|
|
258
214
|
|
|
259
|
-
|
|
215
|
+
If you find glance-cli useful, consider [buying me a coffee](https://ko-fi.com/jkenley) ☕
|
|
260
216
|
|
|
261
217
|
[](https://ko-fi.com/jkenley)
|
|
262
218
|
|
|
263
219
|
---
|
|
264
220
|
|
|
265
|
-
##
|
|
266
|
-
|
|
267
|
-
MIT License - see [LICENSE](LICENSE) for details.
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
## 🔗 Links
|
|
221
|
+
## Links
|
|
272
222
|
|
|
273
223
|
- **GitHub**: [github.com/jkenley/glance-cli](https://github.com/jkenley/glance-cli)
|
|
274
224
|
- **NPM**: [npmjs.com/package/glance-cli](https://www.npmjs.com/package/glance-cli)
|
|
@@ -276,6 +226,6 @@ MIT License - see [LICENSE](LICENSE) for details.
|
|
|
276
226
|
|
|
277
227
|
---
|
|
278
228
|
|
|
279
|
-
**Built with ❤️ by [Kenley Jean](https://github.com/jkenley)**
|
|
229
|
+
**Built with ❤️ by [Kenley Jean](https://github.com/jkenley)** • MIT License
|
|
280
230
|
|
|
281
231
|
*Star ⭐ the repo if you find it useful!*
|