claude-settings-sync 0.3.0 → 0.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.ko.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 설정을 GitHub Gist로 동기화합니다.
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/claudesync)](https://www.npmjs.com/package/claudesync)
5
+ [![npm version](https://img.shields.io/npm/v/claude-settings-sync)](https://www.npmjs.com/package/claude-settings-sync)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
7
  [![Node.js](https://img.shields.io/badge/Node.js-18%2B-green)](https://nodejs.org)
8
8
 
@@ -26,7 +26,7 @@ Claude Code의 설정(`~/.claude/`)은 기기 간 동기화가 안 됩니다.
26
26
  ## 설치
27
27
 
28
28
  ```bash
29
- npm install -g claudesync
29
+ npm install -g claude-settings-sync
30
30
  ```
31
31
 
32
32
  <details>
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Sync your [Claude Code](https://docs.anthropic.com/en/docs/claude-code) settings across machines via GitHub Gist.
4
4
 
5
- [![npm version](https://img.shields.io/npm/v/claudesync)](https://www.npmjs.com/package/claudesync)
5
+ [![npm version](https://img.shields.io/npm/v/claude-settings-sync)](https://www.npmjs.com/package/claude-settings-sync)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
7
  [![Node.js](https://img.shields.io/badge/Node.js-18%2B-green)](https://nodejs.org)
8
8
 
@@ -26,7 +26,7 @@ Claude Code stores settings in `~/.claude/` — instructions, hooks, skills, key
26
26
  ## Install
27
27
 
28
28
  ```bash
29
- npm install -g claudesync
29
+ npm install -g claude-settings-sync
30
30
  ```
31
31
 
32
32
  <details>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-settings-sync",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Sync Claude Code settings across machines via GitHub Gist",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,11 +10,13 @@
10
10
  "build": "tsup",
11
11
  "dev": "tsup --watch",
12
12
  "test": "vitest run",
13
- "test:watch": "vitest"
13
+ "test:watch": "vitest",
14
+ "postinstall": "node scripts/postinstall.js"
14
15
  },
15
16
  "files": [
16
17
  "bin",
17
- "dist"
18
+ "dist",
19
+ "scripts"
18
20
  ],
19
21
  "keywords": [
20
22
  "claude",
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env node
2
+
3
+ // ── Color support ───────────────────────────────────
4
+ const noColor =
5
+ process.env.NO_COLOR !== undefined ||
6
+ process.env.CI !== undefined ||
7
+ !process.stderr.isTTY;
8
+
9
+ const esc = (code) => (noColor ? '' : `\x1b[${code}m`);
10
+ const reset = noColor ? '' : '\x1b[0m';
11
+
12
+ const c = {
13
+ bold: (s) => `${esc('1')}${s}${reset}`,
14
+ dim: (s) => `${esc('2')}${s}${reset}`,
15
+ cyan: (s) => `${esc('36')}${s}${reset}`,
16
+ green: (s) => `${esc('32')}${s}${reset}`,
17
+ };
18
+
19
+ // ── Layout helpers ──────────────────────────────────
20
+ const W = 50;
21
+
22
+ function pad(left, content, right) {
23
+ const visibleContent = content.replace(/\x1b\[[0-9;]*m/g, '');
24
+ const visibleRight = right.replace(/\x1b\[[0-9;]*m/g, '');
25
+ const totalText = left + visibleContent + visibleRight;
26
+ const gap = W - totalText.length;
27
+ return left + content + right + ' '.repeat(Math.max(0, gap));
28
+ }
29
+
30
+ function center(text) {
31
+ const visible = text.replace(/\x1b\[[0-9;]*m/g, '');
32
+ const left = Math.floor((W - visible.length) / 2);
33
+ const right = W - visible.length - left;
34
+ return ' '.repeat(left) + text + ' '.repeat(right);
35
+ }
36
+
37
+ const top = c.dim(`╭${'─'.repeat(W)}╮`);
38
+ const mid = c.dim(`├${'─'.repeat(W)}┤`);
39
+ const bot = c.dim(`╰${'─'.repeat(W)}╯`);
40
+ const row = (s) => `${c.dim('│')}${s}${c.dim('│')}`;
41
+ const blank = row(' '.repeat(W));
42
+
43
+ // ── Logo (figlet "small" font) ──────────────────────
44
+ const logo = [
45
+ ' ___ _ _ _ _ ___ ___ ',
46
+ ' / __| | /_\\ | | | | \\| __| ',
47
+ '| (__| |__ / _ \\| |_| | |) | _| ',
48
+ ' \\___|____/_/ \\_\\\\___/|___/|___| ',
49
+ ];
50
+
51
+ const logoLines = logo.map((l) => row(center(c.cyan(l))));
52
+
53
+ const header = [
54
+ top,
55
+ blank,
56
+ ...logoLines,
57
+ row(center(c.cyan(c.bold('S Y N C')))),
58
+ blank,
59
+ row(center('Sync your Claude Code settings across')),
60
+ row(center('machines — powered by GitHub Gist')),
61
+ blank,
62
+ ];
63
+
64
+ // ── Command sections ────────────────────────────────
65
+ function cmdLine(cmd, desc) {
66
+ return row(pad(' ', c.green(`$ ${cmd}`), ` ${c.dim(desc)}`));
67
+ }
68
+
69
+ function sectionTitle(title) {
70
+ return row(pad(' ', c.bold(`▸ ${title}`), ''));
71
+ }
72
+
73
+ const body = [
74
+ mid,
75
+ blank,
76
+ sectionTitle('Getting Started'),
77
+ cmdLine('claudesync init ', 'Authenticate'),
78
+ cmdLine('claudesync push ', 'Upload settings'),
79
+ cmdLine('claudesync pull ', 'Download settings'),
80
+ blank,
81
+ sectionTitle('Auto Sync'),
82
+ cmdLine('claudesync auto ', 'Interactive setup'),
83
+ cmdLine('claudesync auto status ', 'Check status'),
84
+ cmdLine('claudesync auto disable ', 'Stop auto-sync'),
85
+ blank,
86
+ sectionTitle('History & Rollback'),
87
+ cmdLine('claudesync history ', 'View revisions'),
88
+ cmdLine('claudesync rollback <v> ', 'Restore revision'),
89
+ blank,
90
+ sectionTitle('Language'),
91
+ row(pad(' ', c.green('$ claudesync config lang ko|en'), '')),
92
+ row(pad(' ', c.dim('(defaults to system language)'), '')),
93
+ blank,
94
+ row(pad(' ', `${c.green('$ claudesync --help')} ${c.dim('Full reference')}`, '')),
95
+ blank,
96
+ bot,
97
+ ];
98
+
99
+ // ── Print ───────────────────────────────────────────
100
+ const banner = [...header, ...body].join('\n');
101
+ process.stderr.write('\n' + banner + '\n\n');