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 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.15.0] - 2026-01-06
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
- ### 🚀 Added: Comprehensive Local Model Support
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 list of tested and supported local models in README
29
- - Included model-specific notes for optimal usage
30
- - Updated examples with various model options
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
  [![npm version](https://badge.fury.io/js/glance-cli.svg)](https://www.npmjs.com/package/glance-cli)
15
6
  [![Downloads](https://img.shields.io/npm/dm/glance-cli.svg)](https://www.npmjs.com/package/glance-cli)
16
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
17
8
 
18
9
  ---
19
10
 
20
- ## Quick Start
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
- bun install -g glance-cli # Or: npm install -g glance-cli
25
+ npm install -g glance-cli
25
26
 
26
27
  # Use immediately
27
- glance https://www.ayiti.ai # AI summary
28
- glance https://www.ayiti.ai/fr --read # Auto-detects French + voice
29
- glance https://news.com --output summary.md # Save as markdown
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
- ## 🎯 Core Features
42
+ ## Core Features
46
43
 
47
- ### 📝 **Content Modes**
44
+ ### 🌐 Interactive Browse Mode
45
+ Navigate websites interactively with AI summaries on demand.
48
46
  ```bash
49
- glance <url> # AI summary (default)
50
- glance <url> --tldr # One sentence
51
- glance <url> --key-points # Bullet points
52
- glance <url> --eli5 # Simple explanation
53
- glance <url> --full # Full content (no summary)
54
- glance <url> --ask "..." # Ask specific question
55
- glance <url> --copy # Copy summary to clipboard
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
- ### 🎤 **Voice & Audio**
60
+ ### 📝 Read & Summarize
61
+ Extract content with AI summaries in multiple styles.
59
62
  ```bash
60
- glance <url> --read # Read aloud
61
- glance <url> --audio-output article.mp3 # Save as MP3
62
- glance <url> --voice nova --read # Choose voice
63
- glance <url> -l fr --voice antoine --read # French voice
64
-
65
- glance --list-voices # See all voices
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
- **Voice Options:**
69
- - **Free**: System TTS (macOS Say, Windows SAPI, Linux espeak)
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 https://lemonde.fr --tldr # Auto-detects French from URL
75
- glance https://www.ayiti.ai/fr --read # Auto-detects French + voice
76
- glance <url> --full -l es --voice isabella --read # Override to Spanish + voice
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
- # Auto-detection: Detects language from URL patterns and content
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
- ### 🤖 **AI Models**
82
+ **Voice Options:**
83
+ - **Free**: System TTS (macOS/Windows/Linux)
84
+ - **Premium**: ElevenLabs (natural voices, requires API key)
84
85
 
85
- #### Tested & Supported Local Models (via Ollama)
86
- - **llama3:latest** - Fast, reliable, great for general use
87
- - ✅ **gemma3:4b** - Lightweight, efficient for quick summaries
88
- - **mistral:7b** / **mistral:latest** - Excellent quality responses
89
- - **gpt-oss:20b** - Advanced local model with reasoning capabilities
90
- - **gpt-oss:120b-cloud** - Largest model for complex tasks
91
- - ✅ **deepseek-r1:latest** - Strong reasoning and analysis
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
- # Free local AI (recommended)
95
- glance <url> --model llama3:latest
96
- glance <url> --model gemma3:4b
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
- ## 📖 Common Use Cases
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://techcrunch.com/article --tldr --copy
112
+ glance https://article.com --tldr --copy
120
113
 
121
- # Documentation lookup
122
- glance https://nextjs.org/docs --ask "What's the App Router?"
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
- # Auto language detection
128
- glance https://www.ayiti.ai/fr --tldr # Automatically detects French
120
+ # Save documentation
121
+ glance https://docs.python.org --output guide.md
129
122
 
130
- # Multilingual learning
131
- glance https://lemonde.fr --full -l en --read # French → English + voice
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
- ## 📚 All Options
129
+ ## AI Models
147
130
 
148
- ### **Content**
149
- ```bash
150
- --tldr # One sentence summary
151
- --key-points, -k # Bullet points
152
- --eli5 # Simple explanation
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
- ### **Voice & Audio**
137
+ **Cloud (Optional)** requires API keys:
138
+ - `gpt-4o-mini` – OpenAI
139
+ - `gemini-2.0-flash-exp` – Google Gemini
158
140
  ```bash
159
- --read, -r # Read aloud
160
- --audio-output <file> # Save as MP3
161
- --voice <name> # Choose voice (nova, onyx, antoine, isabella)
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
- ## 🔧 Configuration
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
- ## 🎓 Pro Tips
213
-
163
+ ## All Options
214
164
  ```bash
215
- # 1. Auto language detection + file saving
216
- glance https://lemonde.fr --output french-article.md # Auto-detects French format
217
-
218
- # 2. Quick sharing workflow
219
- glance https://article.com --tldr --copy # Copy summary for instant sharing
220
-
221
- # 2. Format override for different use cases
222
- glance https://news.com --format json --output backup.md # JSON content in .md file
223
-
224
- # 3. Use local AI
225
- glance https://www.ayiti.ai --model llama3 --free-only
226
-
227
- # 4. Match voice to auto-detected language
228
- glance https://www.ayiti.ai/fr --voice antoine --read # French detection + voice
229
-
230
- # 5. Streaming for long content
231
- glance https://long-article.com --stream
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
- ## 🚀 Performance
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://www.ayiti.ai
208
+ bun dev https://example.com
253
209
  ```
254
210
 
255
211
  ---
256
212
 
257
- ## Support
213
+ ## Support
258
214
 
259
- I built this in my spare time because I wanted a better way to read web content from my terminal. If you find it useful and want to support continued development, you can [buy me a coffee](https://ko-fi.com/jkenley).
215
+ If you find glance-cli useful, consider [buying me a coffee](https://ko-fi.com/jkenley)
260
216
 
261
217
  [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/jkenley)
262
218
 
263
219
  ---
264
220
 
265
- ## 📄 License
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!*