claude-starter 1.3.5 → 1.4.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/README.md +13 -0
- package/index.js +25 -0
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
<strong>Claude Code 的主页。</strong>你的所有会话,一目了然。
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
|
+
<p align="center">
|
|
19
|
+
Built for <strong>AI-native developer workflows</strong>: local-first, searchable, resumable, and fast — so the next session starts faster than the last one ended.
|
|
20
|
+
</p>
|
|
21
|
+
|
|
18
22
|
<p align="center">
|
|
19
23
|
<code>npm install -g claude-starter</code> → <code>claude-starter</code>
|
|
20
24
|
</p>
|
|
@@ -31,6 +35,8 @@
|
|
|
31
35
|
|
|
32
36
|
Claude Code's `/resume` gives you a wall of UUIDs:
|
|
33
37
|
|
|
38
|
+
If you use Claude Code as part of a real development loop, session history stops being archive data and becomes working context. You need to find old agent work by repo, topic, and intent — not by opaque IDs.
|
|
39
|
+
|
|
34
40
|
```
|
|
35
41
|
? Select a conversation
|
|
36
42
|
3ee0f33a-b882-424f-9ba4-260342e4dd5b - 4/3/2026, 10:53:41 AM
|
|
@@ -48,6 +54,8 @@ claude-starter
|
|
|
48
54
|
|
|
49
55
|
Beautiful split-pane UI with Tokyo Night colors. The left panel shows every session with project, time, and topic. The right panel previews the full conversation. Not UUIDs — your **actual words**.
|
|
50
56
|
|
|
57
|
+
`claude-starter` is built for developers treating coding agents as part of a daily workflow: keep everything local, cut resume friction, and make past conversations actually reusable.
|
|
58
|
+
|
|
51
59
|
## 🔍 Search — The Killer Feature
|
|
52
60
|
|
|
53
61
|
Press `/` and start typing. **That's it.** No Enter needed.
|
|
@@ -140,6 +148,11 @@ Reads the JSONL session files from `~/.claude/projects/`, parses metadata and co
|
|
|
140
148
|
- **Node.js** >= 18
|
|
141
149
|
- **Claude Code** ([`claude`](https://docs.anthropic.com/en/docs/claude-code) in PATH)
|
|
142
150
|
|
|
151
|
+
## Related Projects
|
|
152
|
+
|
|
153
|
+
- **[codex-starter](https://github.com/Bojun-Vvibe/codex-starter)** — the Codex counterpart with the same local-first workflow philosophy
|
|
154
|
+
- **[Bojun-Vvibe](https://github.com/Bojun-Vvibe)** — more terminal UX and AI-native workflow experiments
|
|
155
|
+
|
|
143
156
|
## License
|
|
144
157
|
|
|
145
158
|
MIT
|
package/index.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* claude-starter # Launch interactive TUI
|
|
10
10
|
* claude-starter --list # Print sessions as a table (no TUI)
|
|
11
11
|
* claude-starter --list N # Print the latest N sessions
|
|
12
|
+
* claude-starter --exclude "pat" # Exclude sessions matching regex (repeatable)
|
|
12
13
|
* claude-starter --version # Show version
|
|
13
14
|
* claude-starter --update # Update to the latest version
|
|
14
15
|
*
|
|
@@ -35,6 +36,10 @@ const path = require('path');
|
|
|
35
36
|
const { spawn, execSync } = require('child_process');
|
|
36
37
|
const os = require('os');
|
|
37
38
|
|
|
39
|
+
let excludePatterns = [];
|
|
40
|
+
|
|
41
|
+
function setExcludePatterns(patterns) { excludePatterns = patterns; }
|
|
42
|
+
|
|
38
43
|
// ─── CLI Detection ──────────────────────────────────────────────────────────
|
|
39
44
|
// Detect whether `mai-claude` is available (binary, alias, or function).
|
|
40
45
|
// First checks PATH directly, then sources shell config non-interactively
|
|
@@ -417,6 +422,7 @@ function loadAllSessions() {
|
|
|
417
422
|
if (session.firstTs
|
|
418
423
|
&& session.topic !== '(no user messages)'
|
|
419
424
|
&& !/^warmup$/i.test(session.topic.trim())
|
|
425
|
+
&& !excludePatterns.some(re => re.test(session.topic))
|
|
420
426
|
) sessions.push(session);
|
|
421
427
|
} catch (e) { /* skip */ }
|
|
422
428
|
}
|
|
@@ -1532,6 +1538,7 @@ if (typeof module !== 'undefined') {
|
|
|
1532
1538
|
getEffectivePermissionMode,
|
|
1533
1539
|
setSessionPermissionMode,
|
|
1534
1540
|
setGlobalPermissionMode,
|
|
1541
|
+
setExcludePatterns,
|
|
1535
1542
|
// Constants
|
|
1536
1543
|
PERMISSION_MODES,
|
|
1537
1544
|
PROJECT_COLORS,
|
|
@@ -1555,6 +1562,20 @@ if (require.main === module) {
|
|
|
1555
1562
|
|
|
1556
1563
|
const args = process.argv.slice(2);
|
|
1557
1564
|
|
|
1565
|
+
for (let i = 0; i < args.length; i++) {
|
|
1566
|
+
if (args[i] === '--exclude' && args[i + 1]) {
|
|
1567
|
+
try { excludePatterns.push(new RegExp(args[i + 1], 'i')); } catch {}
|
|
1568
|
+
i++;
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
if (process.env.CLAUDE_STARTER_EXCLUDE) {
|
|
1572
|
+
for (const p of process.env.CLAUDE_STARTER_EXCLUDE.split(',')) {
|
|
1573
|
+
if (p.trim()) {
|
|
1574
|
+
try { excludePatterns.push(new RegExp(p.trim(), 'i')); } catch {}
|
|
1575
|
+
}
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1558
1579
|
if (args.includes('--version') || args.includes('-v') || args.includes('-V')) {
|
|
1559
1580
|
console.log(`claude-starter v${PKG.version}`);
|
|
1560
1581
|
process.exit(0);
|
|
@@ -1606,10 +1627,14 @@ if (require.main === module) {
|
|
|
1606
1627
|
Usage:
|
|
1607
1628
|
claude-starter Launch interactive TUI
|
|
1608
1629
|
claude-starter --list [N] Print latest N sessions (default: 30)
|
|
1630
|
+
claude-starter --exclude "pat" Exclude sessions matching regex (repeatable)
|
|
1609
1631
|
claude-starter --version Show version
|
|
1610
1632
|
claude-starter --update Update to the latest version
|
|
1611
1633
|
claude-starter --help Show this help
|
|
1612
1634
|
|
|
1635
|
+
Environment Variables:
|
|
1636
|
+
CLAUDE_STARTER_EXCLUDE=pat1,pat2 Comma-separated regex patterns to exclude
|
|
1637
|
+
|
|
1613
1638
|
TUI Keyboard Shortcuts:
|
|
1614
1639
|
↑/↓ Navigate sessions
|
|
1615
1640
|
Enter Start new / resume selected session
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-starter",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "A beautiful terminal UI for managing Claude Code sessions — start new or resume past conversations",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,11 @@
|
|
|
20
20
|
"terminal",
|
|
21
21
|
"session",
|
|
22
22
|
"resume",
|
|
23
|
-
"ai"
|
|
23
|
+
"ai",
|
|
24
|
+
"ai-native",
|
|
25
|
+
"developer-workflow",
|
|
26
|
+
"local-first",
|
|
27
|
+
"agentic-tooling"
|
|
24
28
|
],
|
|
25
29
|
"author": "Bojun Chai <just_cbj@sina.com>",
|
|
26
30
|
"license": "MIT",
|
|
@@ -28,6 +32,10 @@
|
|
|
28
32
|
"type": "git",
|
|
29
33
|
"url": "https://github.com/Bojun-Vvibe/claude-starter.git"
|
|
30
34
|
},
|
|
35
|
+
"homepage": "https://github.com/Bojun-Vvibe/claude-starter#readme",
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/Bojun-Vvibe/claude-starter/issues"
|
|
38
|
+
},
|
|
31
39
|
"engines": {
|
|
32
40
|
"node": ">=18"
|
|
33
41
|
},
|