@alyibrahim/claude-statusline 1.5.0 → 1.5.1

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/README.md CHANGED
@@ -92,6 +92,18 @@ claude-statusline disable-history # Disable session tracking
92
92
 
93
93
  Data is stored at `~/.claude/statusline-history.jsonl`.
94
94
 
95
+ ### Claude Code slash commands
96
+
97
+ History commands are also available directly inside Claude Code as slash commands:
98
+
99
+ - `/history`
100
+ - `/history-enable`
101
+ - `/history-disable`
102
+ - `/history-mode <web|terminal>`
103
+
104
+ Project contributors get these from the repo at `.claude/commands/`.
105
+ Global npm installs copy them to `~/.claude/commands/` automatically.
106
+
95
107
  ### Terminal TUI
96
108
 
97
109
  `--mode terminal` opens an interactive full-screen dashboard directly in your terminal — no browser required. Requires the native Rust binary (falls back to web dashboard with a warning if unavailable).
@@ -194,6 +206,8 @@ npm uninstall -g @alyibrahim/claude-statusline
194
206
 
195
207
  > Always run `claude-statusline uninstall` first — it removes the `statusLine` entry from `~/.claude/settings.json` before the files are deleted.
196
208
 
209
+ `npm uninstall -g @alyibrahim/claude-statusline` also removes the four history slash command files installed by this package from `~/.claude/commands/`, without touching other custom commands.
210
+
197
211
  ---
198
212
 
199
213
  <div align="center">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alyibrahim/claude-statusline",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "Rich statusline for Claude Code — model, context bar, real-time token tracking, git branch, rate limits, and session stats. Rust binary, ~5ms startup.",
5
5
  "keywords": [
6
6
  "claude",
@@ -56,11 +56,11 @@
56
56
  "open": "^10.1.0"
57
57
  },
58
58
  "optionalDependencies": {
59
- "@alyibrahim/claude-statusline-linux-x64": "1.5.0",
60
- "@alyibrahim/claude-statusline-linux-arm64": "1.5.0",
61
- "@alyibrahim/claude-statusline-darwin-x64": "1.5.0",
62
- "@alyibrahim/claude-statusline-darwin-arm64": "1.5.0",
63
- "@alyibrahim/claude-statusline-win32-x64": "1.5.0"
59
+ "@alyibrahim/claude-statusline-linux-x64": "1.5.1",
60
+ "@alyibrahim/claude-statusline-linux-arm64": "1.5.1",
61
+ "@alyibrahim/claude-statusline-darwin-x64": "1.5.1",
62
+ "@alyibrahim/claude-statusline-darwin-arm64": "1.5.1",
63
+ "@alyibrahim/claude-statusline-win32-x64": "1.5.1"
64
64
  },
65
65
  "devDependencies": {
66
66
  "jest": "^29.0.0"
@@ -1,11 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
  const fs = require('fs');
4
+ const path = require('path');
4
5
  const { setup } = require('./setup');
5
6
  const config = require('./config');
6
7
  try {
7
8
  const result = setup({ force: false });
8
9
  if (result.settingsPath === null) process.exit(0); // non-global install, skip silently
10
+
11
+ const sourceDir = path.join(__dirname, '..', '.claude', 'commands');
12
+ const commandsDir = path.join(path.dirname(result.settingsPath), 'commands');
13
+ fs.mkdirSync(commandsDir, { recursive: true });
14
+ for (const f of fs.readdirSync(sourceDir)) {
15
+ fs.copyFileSync(path.join(sourceDir, f), path.join(commandsDir, f));
16
+ }
17
+
9
18
  if (!result.ok) {
10
19
  console.warn('\n⚠ claude-statusline: auto-setup failed:', result.error);
11
20
  console.warn(' Run manually: claude-statusline setup\n');
@@ -1,5 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { getSettingsPath } = require('./config');
3
6
  const { uninstall } = require('./uninstall');
4
- try { uninstall(); } catch (e) {} // fully silent — best-effort cleanup
7
+
8
+ const FILES = ['history.md', 'history-enable.md', 'history-disable.md', 'history-mode.md'];
9
+
10
+ try {
11
+ const commandsDir = path.join(path.dirname(getSettingsPath()), 'commands');
12
+ for (const f of FILES) {
13
+ const dest = path.join(commandsDir, f);
14
+ if (fs.existsSync(dest)) fs.unlinkSync(dest);
15
+ }
16
+ uninstall();
17
+ } catch (e) {} // fully silent — best-effort cleanup
5
18
  process.exit(0);