claude-statusline 2.1.2

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.
Files changed (48) hide show
  1. package/LICENSE +203 -0
  2. package/README.md +362 -0
  3. package/bin/claude-statusline +22 -0
  4. package/dist/core/cache.d.ts +67 -0
  5. package/dist/core/cache.js +223 -0
  6. package/dist/core/cache.js.map +1 -0
  7. package/dist/core/config.d.ts +190 -0
  8. package/dist/core/config.js +192 -0
  9. package/dist/core/config.js.map +1 -0
  10. package/dist/core/security.d.ts +27 -0
  11. package/dist/core/security.js +154 -0
  12. package/dist/core/security.js.map +1 -0
  13. package/dist/env/context.d.ts +92 -0
  14. package/dist/env/context.js +295 -0
  15. package/dist/env/context.js.map +1 -0
  16. package/dist/git/native.d.ts +35 -0
  17. package/dist/git/native.js +141 -0
  18. package/dist/git/native.js.map +1 -0
  19. package/dist/git/status.d.ts +65 -0
  20. package/dist/git/status.js +256 -0
  21. package/dist/git/status.js.map +1 -0
  22. package/dist/index.bundle.js +11 -0
  23. package/dist/index.d.ts +9 -0
  24. package/dist/index.js +396 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/metafile.prod.json +473 -0
  27. package/dist/ui/symbols.d.ts +31 -0
  28. package/dist/ui/symbols.js +308 -0
  29. package/dist/ui/symbols.js.map +1 -0
  30. package/dist/ui/width.d.ts +29 -0
  31. package/dist/ui/width.js +261 -0
  32. package/dist/ui/width.js.map +1 -0
  33. package/dist/utils/runtime.d.ts +31 -0
  34. package/dist/utils/runtime.js +82 -0
  35. package/dist/utils/runtime.js.map +1 -0
  36. package/docs/ARCHITECTURE.md +336 -0
  37. package/docs/FEATURE_COMPARISON.md +178 -0
  38. package/docs/MIGRATION.md +354 -0
  39. package/docs/README.md +101 -0
  40. package/docs/eval-01-terminal-widths.md +519 -0
  41. package/docs/guide-01-configuration.md +277 -0
  42. package/docs/guide-02-troubleshooting.md +416 -0
  43. package/docs/guide-03-performance.md +183 -0
  44. package/docs/prd-01-typescript-perf-optimization.md +480 -0
  45. package/docs/research-01-sandbox-detection.md +169 -0
  46. package/docs/research-02-competitive-analysis.md +226 -0
  47. package/docs/research-03-platform-analysis.md +142 -0
  48. package/package.json +89 -0
@@ -0,0 +1,354 @@
1
+ # Migration Guide
2
+
3
+ Complete guide for migrating from bash v1.0 to TypeScript v2.0 (Released).
4
+
5
+ **Not sure if you should upgrade?** See the [Feature Comparison](./FEATURE_COMPARISON.md) to compare versions.
6
+
7
+ ## Quick Migration Checklist
8
+
9
+ - [ ] Install TypeScript v2.0
10
+ - [ ] Convert environment variables to config file
11
+ - [ ] Test with your current workflow
12
+ - [ ] Update Claude Code settings (if needed)
13
+ - [ ] Remove bash v1.0 (optional)
14
+
15
+ ## Step 1: Install TypeScript v2.0
16
+
17
+ ### Option A: npm (Recommended)
18
+ ```bash
19
+ npm install -g claude-statusline
20
+ ```
21
+
22
+ ### Option B: bun
23
+ ```bash
24
+ bun install -g claude-statusline
25
+ ```
26
+
27
+ ### Option C: Manual Download
28
+ ```bash
29
+ # Download the latest binary for your platform
30
+ curl -L -o claude-statusline https://github.com/shrwnsan/claude-statusline/releases/download/v2.0.0/claude-statusline
31
+ chmod +x claude-statusline
32
+ ```
33
+
34
+ Verify installation:
35
+ ```bash
36
+ claude-statusline --version
37
+ ```
38
+
39
+ ## Step 2: Convert Environment Variables to Configuration
40
+
41
+ ### Current Environment Variables (Bash v1.0)
42
+
43
+ Check your current setup:
44
+ ```bash
45
+ echo "NO_EMOJI: $CLAUDE_CODE_STATUSLINE_NO_EMOJI"
46
+ echo "NO_GITSTATUS: $CLAUDE_CODE_STATUSLINE_NO_GITSTATUS"
47
+ echo "ENV_CONTEXT: $CLAUDE_CODE_STATUSLINE_ENV_CONTEXT"
48
+ echo "TRUNCATE: $CLAUDE_CODE_STATUSLINE_TRUNCATE"
49
+ ```
50
+
51
+ ### Migration Examples
52
+
53
+ #### Example 1: Basic Setup
54
+ **Before (bash v1.0 environment variables):**
55
+ ```bash
56
+ export CLAUDE_CODE_STATUSLINE_ENV_CONTEXT=1
57
+ export CLAUDE_CODE_STATUSLINE_TRUNCATE=1
58
+ ```
59
+
60
+ **After (TypeScript v2.0 config file):**
61
+ ```bash
62
+ # Create configuration file
63
+ cp .claude-statusline.json.example.min ~/.claude/.claude-statusline.json
64
+
65
+ # Or create manually
66
+ mkdir -p ~/.claude
67
+ cat > ~/.claude/.claude-statusline.json << EOF
68
+ {
69
+ "envContext": true,
70
+ "truncate": true
71
+ }
72
+ EOF
73
+ ```
74
+
75
+ #### Example 2: ASCII Mode Setup
76
+ **Before (bash v1.0):**
77
+ ```bash
78
+ export CLAUDE_CODE_STATUSLINE_NO_EMOJI=1
79
+ export CLAUDE_CODE_STATUSLINE_ENV_CONTEXT=1
80
+ ```
81
+
82
+ **After (TypeScript v2.0):**
83
+ ```json
84
+ {
85
+ "noEmoji": true,
86
+ "envContext": true,
87
+ "symbols": {
88
+ "git": "@",
89
+ "model": "*",
90
+ "staged": "+",
91
+ "conflict": "C",
92
+ "stashed": "$",
93
+ "ahead": "A",
94
+ "behind": "B",
95
+ "diverged": "D",
96
+ "renamed": ">",
97
+ "deleted": "X"
98
+ }
99
+ }
100
+ ```
101
+
102
+ #### Example 3: Full Feature Setup
103
+ **Before (bash v1.0):**
104
+ ```bash
105
+ export CLAUDE_CODE_STATUSLINE_ENV_CONTEXT=1
106
+ export CLAUDE_CODE_STATUSLINE_TRUNCATE=1
107
+ export CLAUDE_CODE_STATUSLINE_NO_EMOJI=0
108
+ export CLAUDE_CODE_STATUSLINE_NO_GITSTATUS=0
109
+ ```
110
+
111
+ **After (TypeScript v2.0):**
112
+ ```json
113
+ {
114
+ "envContext": true,
115
+ "truncate": true,
116
+ "noEmoji": false,
117
+ "noGitStatus": false,
118
+ "debugWidth": false
119
+ }
120
+ ```
121
+
122
+ ### Environment Variable to Config Mapping
123
+
124
+ | Environment Variable | Config Option | Values |
125
+ |---------------------|---------------|---------|
126
+ | `CLAUDE_CODE_STATUSLINE_NO_EMOJI=1` | `"noEmoji": true` | boolean |
127
+ | `CLAUDE_CODE_STATUSLINE_NO_GITSTATUS=1` | `"noGitStatus": true` | boolean |
128
+ | `CLAUDE_CODE_STATUSLINE_ENV_CONTEXT=1` | `"envContext": true` | boolean |
129
+ | `CLAUDE_CODE_STATUSLINE_TRUNCATE=1` | `"truncate": true` | boolean |
130
+ | (not available in v1) | `"debugWidth": true` | boolean |
131
+ | (not available in v1) | `"rightMargin": 15` | number |
132
+
133
+ ## Step 3: Update Claude Code Settings
134
+
135
+ If you previously had bash v1.0 in your settings, update the path:
136
+
137
+ ### Standard Configuration (Node.js Runtime)
138
+ ```json
139
+ {
140
+ "statusLine": {
141
+ "type": "command",
142
+ "command": "claude-statusline",
143
+ "padding": 0
144
+ }
145
+ }
146
+ ```
147
+
148
+ ### Performance-Optimized Configuration (Bun Runtime)
149
+ For best performance (~5ms), explicitly use Bun:
150
+ ```json
151
+ {
152
+ "statusLine": {
153
+ "type": "command",
154
+ "command": "bun claude-statusline",
155
+ "padding": 0
156
+ }
157
+ }
158
+ ```
159
+
160
+ > **Performance Note**: Using "bun claude-statusline" gives you ~5ms response time vs ~28ms with standard Node.js. Both work perfectly - choose based on your performance needs.
161
+
162
+ ### With Custom Path (if not in PATH)
163
+ ```json
164
+ {
165
+ "statusLine": {
166
+ "type": "command",
167
+ "command": "/path/to/claude-statusline-v2",
168
+ "padding": 0
169
+ }
170
+ }
171
+ ```
172
+
173
+ ## Step 4: Test Migration
174
+
175
+ ### Test the New Installation
176
+ ```bash
177
+ # Test with sample input
178
+ echo '{"workspace":{"current_dir":"'"$PWD"'"},"model":{"display_name":"Test Migration"}}' | claude-statusline
179
+ ```
180
+
181
+ ### Test in Claude Code
182
+ 1. Restart Claude Code to pick up the new binary
183
+ 2. Verify the statusline appears correctly
184
+ 3. Check that all your expected features are working
185
+
186
+ ### Common Issues and Solutions
187
+
188
+ #### Issue: Symbols Not Displaying
189
+ **Solution**: The new version has better symbol detection, but you can force ASCII mode:
190
+ ```json
191
+ {
192
+ "noEmoji": true
193
+ }
194
+ ```
195
+
196
+ #### Issue: Configuration Not Loading
197
+ **Solution**: Verify the config file location and format:
198
+ ```bash
199
+ # Check if config exists
200
+ ls -la ~/.claude/.claude-statusline.json
201
+
202
+ # Validate JSON format
203
+ cat ~/.claude/.claude-statusline.json | jq .
204
+ ```
205
+
206
+ #### Issue: Performance Slower Than Expected
207
+ **Solution**: Check cache permissions and clear if needed:
208
+ ```bash
209
+ # Clear cache to force fresh start
210
+ rm -rf /tmp/.claude-statusline-cache/
211
+ ```
212
+
213
+ ## Step 5: Clean Up (Optional)
214
+
215
+ Once you're satisfied with TypeScript v2.0, you can remove bash v1.0:
216
+
217
+ ### Remove Bash v1.0
218
+ ```bash
219
+ # Remove the bash script if you installed it manually
220
+ rm -f /usr/local/bin/claude-statusline-bash
221
+ rm -f ~/.local/bin/claude-statusline-bash
222
+
223
+ # Remove from your .bashrc/.zshrc if added
224
+ # Remove lines like: export PATH="$HOME/.local/bin:$PATH"
225
+ ```
226
+
227
+ ### Remove Environment Variables
228
+ ```bash
229
+ # Remove from .bashrc/.zshrc
230
+ unset CLAUDE_CODE_STATUSLINE_NO_EMOJI
231
+ unset CLAUDE_CODE_STATUSLINE_NO_GITSTATUS
232
+ unset CLAUDE_CODE_STATUSLINE_ENV_CONTEXT
233
+ unset CLAUDE_CODE_STATUSLINE_TRUNCATE
234
+ ```
235
+
236
+ ## Advanced Migration Scenarios
237
+
238
+ ### Scenario 1: Multiple Machines with Different Setups
239
+
240
+ Create a shared configuration file and sync it:
241
+
242
+ ```bash
243
+ # Create a portable config
244
+ cat > ~/.claude/.claude-statusline.json << EOF
245
+ {
246
+ "envContext": true,
247
+ "truncate": true,
248
+ "noEmoji": false,
249
+ "cacheTTL": 600
250
+ }
251
+ EOF
252
+
253
+ # Sync across machines (using your preferred method)
254
+ scp ~/.claude/.claude-statusline.json user@machine:~/.claude/
255
+ ```
256
+
257
+ ### Scenario 2: Team Standardization
258
+
259
+ Create a team configuration template:
260
+
261
+ ```bash
262
+ # Save as team-config.json
263
+ {
264
+ "envContext": true,
265
+ "truncate": true,
266
+ "noEmoji": false,
267
+ "debugWidth": false,
268
+ "symbols": {
269
+ "git": "",
270
+ "model": "󰚩",
271
+ "staged": "+",
272
+ "conflict": "×",
273
+ "stashed": "⚑",
274
+ "ahead": "↑",
275
+ "behind": "↓",
276
+ "diverged": "⇕",
277
+ "renamed": "»",
278
+ "deleted": "✘"
279
+ }
280
+ }
281
+ ```
282
+
283
+ Team members can install with:
284
+ ```bash
285
+ cp team-config.json ~/.claude/.claude-statusline.json
286
+ ```
287
+
288
+ ### Scenario 3: Gradual Migration with A/B Testing
289
+
290
+ Keep both versions temporarily for comparison:
291
+
292
+ ```bash
293
+ # Test bash v1.0
294
+ echo '{"workspace":{"current_dir":"'"$PWD"'"},"model":{"display_name":"Test"}}' | /path/to/claude-statusline-v1
295
+
296
+ # Test TypeScript v2.0
297
+ echo '{"workspace":{"current_dir":"'"$PWD"'"},"model":{"display_name":"Test"}}' | claude-statusline
298
+
299
+ # Compare performance
300
+ time echo '{"workspace":{"current_dir":"'"$PWD"'"},"model":{"display_name":"Test"}}' | /path/to/claude-statusline-v1
301
+ time echo '{"workspace":{"current_dir":"'"$PWD"'"},"model":{"display_name":"Test"}}' | claude-statusline
302
+ ```
303
+
304
+ ## Validation Checklist
305
+
306
+ After migration, verify:
307
+
308
+ - [ ] Statusline appears in Claude Code
309
+ - [ ] Git status indicators work correctly
310
+ - [ ] Environment context shows if enabled
311
+ - [ ] Symbols display correctly (or ASCII fallback works)
312
+ - [ ] Performance is satisfactory
313
+ - [ ] Configuration file loads properly
314
+ - [ ] No error messages in Claude Code console
315
+
316
+ ## Rollback Plan
317
+
318
+ If you need to rollback to bash v1.0:
319
+
320
+ ```bash
321
+ # Restore bash v1.0
322
+ cp /path/to/backup/claude-statusline-v1 /usr/local/bin/claude-statusline
323
+ chmod +x /usr/local/bin/claude-statusline
324
+
325
+ # Restore environment variables
326
+ echo 'export CLAUDE_CODE_STATUSLINE_ENV_CONTEXT=1' >> ~/.bashrc
327
+ echo 'export CLAUDE_CODE_STATUSLINE_TRUNCATE=1' >> ~/.bashrc
328
+ source ~/.bashrc
329
+
330
+ # Update Claude Code settings back to bash path
331
+ ```
332
+
333
+ ## Support
334
+
335
+ If you encounter issues during migration:
336
+
337
+ 1. **Check the logs**: Run with debug mode enabled
338
+ 2. **Validate config**: Use JSON validator or `jq .` on your config file
339
+ 3. **Test manually**: Use echo/curl to test the binary directly
340
+ 4. **Check permissions**: Ensure the binary is executable
341
+ 5. **Report issues**: Open an issue on GitHub with details
342
+
343
+ ## Migration Benefits Summary
344
+
345
+ After migrating to TypeScript v2.0, you'll enjoy:
346
+
347
+ - ✅ **19.5x faster cold starts** (45ms vs 888ms)
348
+ - ✅ **5x faster runtime with Bun** (~5ms vs ~28ms with Node.js)
349
+ - ✅ **Native Windows support**
350
+ - ✅ **Configuration file support**
351
+ - ✅ **Package manager integration**
352
+ - ✅ **Enhanced debugging options**
353
+ - ✅ **Better cross-platform compatibility**
354
+ - ✅ **Future-proof architecture**
package/docs/README.md ADDED
@@ -0,0 +1,101 @@
1
+ # Claude Statusline Documentation
2
+
3
+ Comprehensive documentation for the Claude Code statusline tool.
4
+
5
+ ## Documentation Structure
6
+
7
+ ### Getting Started
8
+ - [**Main README**](../README.md) - Installation, quick start, and overview
9
+ - [**Migration Guide**](MIGRATION.md) - Migrating from bash v1.0 to TypeScript v2.0
10
+ - [**Configuration Guide**](guide-01-configuration.md) - Complete configuration options and examples
11
+
12
+ ### Reference
13
+ - [**Feature Comparison**](FEATURE_COMPARISON.md) - Detailed comparison between versions
14
+ - [**Architecture**](ARCHITECTURE.md) - Technical architecture and design
15
+ - [**Contributing**](../CONTRIBUTING.md) - How to contribute to the project
16
+
17
+ ## Quick Links
18
+
19
+ ### For New Users
20
+ 1. [Installation Guide](../README.md#installation)
21
+ 2. [Quick Configuration](guide-01-configuration.md#quick-setup)
22
+ 3. [Popular Configurations](guide-01-configuration.md#popular-configurations)
23
+
24
+ ### For Existing Users (bash v1.0)
25
+ 1. [Migration Guide](MIGRATION.md)
26
+ 2. [Feature Comparison](FEATURE_COMPARISON.md)
27
+ 3. [Configuration Changes](MIGRATION.md#step-2-convert-environment-variables-to-configuration)
28
+
29
+ ### For Advanced Users
30
+ 1. [Complete Configuration Reference](guide-01-configuration.md#configuration-options)
31
+ 2. [Performance Comparison](FEATURE_COMPARISON.md#performance-benchmarks)
32
+ 3. [Feature Matrix](FEATURE_COMPARISON.md#feature-matrix)
33
+
34
+ ## Version-Specific Information
35
+
36
+ ### TypeScript v2.0 (Stable)
37
+ - **Performance**: ~5ms with Bun runtime, ~28ms with Node.js runtime
38
+ - **Features**: Configuration files, Windows support, npm distribution
39
+ - **Recommended for**: New users, Windows users, performance-critical setups
40
+
41
+ ### Bash v1.0 (Stable)
42
+ - **Performance**: Good performance (~99ms)
43
+ - **Features**: Environment variables, Unix-like systems only
44
+ - **Recommended for**: Maximum stability, minimal dependencies
45
+
46
+ ## Configuration Formats
47
+
48
+ - **JSON** (`claude-statusline.json`) - Editor autocompletion via JSON Schema
49
+ - **YAML** (`claude-statusline.yaml`) - More minimal syntax
50
+ - Both formats support exactly the same options
51
+
52
+ ## Quick Reference
53
+
54
+ ### Installation Options
55
+ ```bash
56
+ # Bun install (recommended - 5x faster than Node.js)
57
+ bun install -g claude-statusline
58
+
59
+ # Or npm install (works well too)
60
+ npm install -g claude-statusline
61
+
62
+ # Or pnpm/yarn
63
+ pnpm add -g claude-statusline
64
+ yarn global add claude-statusline
65
+ ```
66
+
67
+ ### Common Configurations
68
+ ```bash
69
+ # Minimal setup
70
+ cp .claude-statusline.json.example.min ~/.claude/.claude-statusline.json
71
+
72
+ # Complete setup
73
+ cp .claude-statusline.json.example ~/.claude/.claude-statusline.json
74
+ ```
75
+
76
+ ### Claude Code Integration
77
+ ```json
78
+ {
79
+ "statusLine": {
80
+ "type": "command",
81
+ "command": "claude-statusline"
82
+ }
83
+ }
84
+ ```
85
+
86
+ ## Getting Help
87
+
88
+ - **Issues**: [GitHub Issues](https://github.com/shrwnsan/claude-statusline/issues)
89
+ - **Discussions**: [GitHub Discussions](https://github.com/shrwnsan/claude-statusline/discussions)
90
+ - **Documentation**: This directory and the main README
91
+
92
+ ## File Index
93
+
94
+ - `/` - Project root with main README
95
+ - `/docs/` - This documentation directory
96
+ - `/docs/CONFIGURATION.md` - Complete configuration guide
97
+ - `/docs/MIGRATION.md` - Migration from bash v1.0 to v2.0
98
+ - `/docs/FEATURE_COMPARISON.md` - Version comparison and features
99
+ - `/docs/README.md` - This documentation overview
100
+ - `/.claude-statusline.json.example` - Complete configuration example
101
+ - `/.claude-statusline.json.example.min` - Minimal configuration example