pinglet-cli 0.2.10 โ†’ 0.2.12

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.ja.md ADDED
@@ -0,0 +1,94 @@
1
+ # Pinglet ๐Ÿ’Œ
2
+
3
+ **AIใŒ่€ƒใˆใฆใ„ใ‚‹้–“ใ€ไป–ใฎ้–‹็™บ่€…ใฎใฒใจ่จ€ใซๅ‡บไผšใŠใ†ใ€‚**
4
+
5
+ Claude Code ใŒใ‚ณใƒผใƒ‰ใ‚’็›ดใ—ใฆใ„ใ‚‹้–“ใ€ใ€ŒBefuddlingโ€ฆใ€ใฎใ‚นใƒ”ใƒŠใƒผใ‚’ใŸใ ็œบใ‚ใฆใ„ใŸใใฎๅ ดๆ‰€ใซใ€
6
+ ไป–ใฎ้–‹็™บ่€…ใŒๆฎ‹ใ—ใŸ็Ÿญใ„ใƒกใƒƒใ‚ปใƒผใ‚ธ๏ผˆ**Ping**๏ผ‰ใŒไปฃใ‚ใ‚Šใซ่กจ็คบใ•ใ‚Œใพใ™ใ€‚
7
+
8
+ ![Pinglet ใƒ‡ใƒข โ€” Claude Code ใฎใ‚นใƒ”ใƒŠใƒผใฎไฝ็ฝฎใซไป–ใฎ้–‹็™บ่€…ใฎ Ping ใŒ่กจ็คบใ•ใ‚Œใ‚‹](docs/pinglet-demo.gif)
9
+
10
+ ```
11
+ โœถ ๐Ÿ’Œ "้‡‘ๆ›œๅˆๅพŒใฎใƒ‡ใƒ—ใƒญใ‚คใฏๆฅไธ–ใซใ—ใพใ—ใ‚‡ใ†ใ€‚" (12s ยท โ†“ 1.2k tokens)
12
+ ```
13
+
14
+ ๐ŸŒ **ใƒ›ใƒผใƒ ใƒšใƒผใ‚ธ**: https://pinglet.halluci.co.kr/ja/
15
+
16
+ ๐Ÿ‡บ๐Ÿ‡ธ [English](./README.md) ยท ๐Ÿ‡ฐ๐Ÿ‡ท [ํ•œ๊ตญ์–ด](./README.ko.md)
17
+
18
+ ## ใฏใ˜ใ‚ใซ
19
+
20
+ ```bash
21
+ npm install -g pinglet-cli && pinglet install
22
+ ```
23
+
24
+ ใ“ใ‚Œใ ใ‘ใงใ™ใ€‚ใ‚ใจใฏใ„ใคใ‚‚้€šใ‚Š `claude` ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใ ใ‘ใ€‚
25
+
26
+ > ใ‚คใƒณใ‚นใƒˆใƒผใƒซไธญใซ npm ใŒ `install-scripts` ใฎ่ญฆๅ‘Šใ‚’่กจ็คบใ™ใ‚‹ใ“ใจใŒใ‚ใ‚Šใพใ™ โ€” ๅคใ„ npm ใง
27
+ > ๅˆๆœŸ่จญๅฎšใ‚’่‡ชๅ‹•ๅŒ–ใ—ใฆใ„ใŸใ‚นใ‚ฏใƒชใƒ—ใƒˆใซ้–ขใ™ใ‚‹ๆกˆๅ†…ใงใ€็„ก่ฆ–ใ—ใฆๆง‹ใ„ใพใ›ใ‚“ใ€‚
28
+ > ๆŽฅ็ถš็Šถๆ…‹ใฏ `pinglet doctor` ใงใ„ใคใงใ‚‚็ขบ่ชใงใใพใ™ใ€‚
29
+
30
+ - ๆ—ขๅญ˜ใฎ statusline ่จญๅฎšใŒใ‚ใ‚‹ๅ ดๅˆใฏ**ใƒใƒƒใ‚ฏใ‚ขใƒƒใƒ—ใ—ใŸไธŠใง็ฝฎใๆ›ใˆใ‚‹ใ‹็ขบ่ชใ—**ใ€ใ‚ขใƒณใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ™‚ใซๅ…ƒใซๆˆปใ—ใพใ™ใ€‚
31
+ - Codex ใซใ‚‚ๅฏพๅฟœใ—ใฆใ„ใพใ™๏ผˆexperimental๏ผ‰โ€” turn ๅฎŒไบ†ๆ™‚ใซ macOS ้€š็Ÿฅใง Ping ใŒๅฑŠใใพใ™ใ€‚
32
+ ้€š็ŸฅใŒ็…ฉใ‚ใ—ใ„ๅ ดๅˆใŒใ‚ใ‚‹ใŸใ‚ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏ็„กๅŠนใซใชใฃใฆใŠใ‚Šใ€ๅฟ…่ฆใชใจใใ ใ‘ `pinglet install --codex` ใงๆœ‰ๅŠนใซใ—ใฆใใ ใ•ใ„ใ€‚
33
+
34
+ ## Ping ใ‚’้€ใ‚‹
35
+
36
+ Claude Code ใ‚ปใƒƒใ‚ทใƒงใƒณใฎไธญใ‹ใ‚‰ใใฎใพใพ:
37
+
38
+ ```
39
+ > /pinglet ไปŠๆ—ฅใ‚‚ใƒ“ใƒซใƒ‰ใŒ็ท‘ใงใ‚ใ‚Šใพใ™ใ‚ˆใ†ใซ
40
+ ```
41
+
42
+ ใพใŸใฏใ‚ฟใƒผใƒŸใƒŠใƒซใ‹ใ‚‰:
43
+
44
+ ```bash
45
+ pinglet login # GitHub ใƒญใ‚ฐใ‚คใƒณ โ€” ใƒ–ใƒฉใ‚ฆใ‚ถใŒ้–‹ใ่‡ชๅ‹•ใงๅฎŒไบ†ใ—ใพใ™๏ผˆๅˆๅ›žใฎใฟ๏ผ‰
46
+ pinglet post "ใƒกใƒƒใ‚ปใƒผใ‚ธ"
47
+ ```
48
+
49
+ ่ชญใ‚€ใ ใ‘ใชใ‚‰ใƒญใ‚ฐใ‚คใƒณไธ่ฆใงใ€**ๆŠ•็จฟใซใฎใฟ GitHub ใƒญใ‚ฐใ‚คใƒณใŒๅฟ…่ฆใงใ™ใ€‚**
50
+ ่‡ชๅˆ†ใฎ Ping ใŒใฉใ‚Œใ ใ‘ๅฑŠใ„ใŸใ‹ใฏ statusline ใงใ™ใ็ขบ่ชใงใใพใ™:
51
+
52
+ ```
53
+ ๐Ÿ’Œ ่‡ชๅˆ†ใฎ Ping "ไปŠๆ—ฅใ‚‚ใƒ“ใƒซใƒ‰ใŒ็ท‘ใงใ‚ใ‚Šใพใ™ใ‚ˆใ†ใซ" โ†’ ๅˆฐ้”็އ 17%
54
+ ```
55
+
56
+ ## ใ‚ณใƒžใƒณใƒ‰
57
+
58
+ | ใ‚ณใƒžใƒณใƒ‰ | ่ชฌๆ˜Ž |
59
+ |---|---|
60
+ | `pinglet install` | Claude Code ใซๆŽฅ็ถš๏ผˆCodex ใฏ `--codex` ใงใ‚ชใƒ—ใƒˆใ‚คใƒณ๏ผ‰ |
61
+ | `pinglet login` | GitHub ใ‚ขใ‚ซใ‚ฆใƒณใƒˆใ‚’้€ฃๆบ๏ผˆๆŠ•็จฟใซๅฟ…่ฆ๏ผ‰ |
62
+ | `pinglet post "ใƒกใƒƒใ‚ปใƒผใ‚ธ"` | Ping ใ‚’้€ใ‚‹ |
63
+ | `pinglet ping` | ใ„ใพ่กจ็คบใ•ใ‚Œใ‚‹ใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ใƒ—ใƒฌใƒ“ใƒฅใƒผ |
64
+ | `pinglet doctor` | ใ‚คใƒณใ‚นใƒˆใƒผใƒซใƒปๆŽฅ็ถš็Šถๆ…‹ใ‚’่จบๆ–ญ |
65
+ | `pinglet uninstall` | ๆŽฅ็ถš่งฃ้™คใจๅ…ƒใฎ่จญๅฎšใฎๅพฉๅ…ƒ |
66
+
67
+ ## ๅฎ‰ๅฟƒใ—ใฆไฝฟใˆใพใ™
68
+
69
+ - **ใƒˆใƒผใ‚ฏใƒณไฝฟ็”จ้‡ 0** โ€” ใƒกใƒƒใ‚ปใƒผใ‚ธใฏ Claude Code ใฎ UI ้ ˜ๅŸŸ๏ผˆstatusline/spinner๏ผ‰ใซใฎใฟ
70
+ ่กจ็คบใ•ใ‚Œใ€ใƒขใƒ‡ใƒซใฎใ‚ณใƒณใƒ†ใ‚ญใ‚นใƒˆใซใฏไธ€ๅˆ‡ๅ…ฅใ‚Šใพใ›ใ‚“ใ€‚API ใ‚ณใ‚นใƒˆใ‚„ๅฟœ็ญ”ๅ“่ณชใซๅฝฑ้Ÿฟใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚
71
+ - **ใ‚ณใƒผใƒ‰ใ‚’่ชญใฟใพใ›ใ‚“** โ€” promptใ€ๅฟœ็ญ”ใ€ใ‚ณใƒผใƒ‰ใ€็’ฐๅขƒๅค‰ๆ•ฐใซใฏใ‚ขใ‚ฏใ‚ปใ‚นใ—ใพใ›ใ‚“ใ€‚
72
+ ๅŽ้›†ใ™ใ‚‹ใฎใฏใ‚คใƒณใ‚นใƒˆใƒผใƒซ IDใ€OS ใฎ็จฎ้กžใ€ใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใฎใƒใƒผใ‚ธใƒงใƒณใ€ใƒกใƒƒใ‚ปใƒผใ‚ธ่กจ็คบใ‚คใƒ™ใƒณใƒˆใ ใ‘ใงใ™ใ€‚
73
+ - **ใ‚ฟใƒผใƒŸใƒŠใƒซใŒ้…ใใชใ‚Šใพใ›ใ‚“** โ€” ่กจ็คบใฏใƒญใƒผใ‚ซใƒซใ‚ญใƒฃใƒƒใ‚ทใƒฅใ‚’่ชญใ‚€ใ ใ‘ใงใ€ใƒใƒƒใƒˆใƒฏใƒผใ‚ฏใฏ
74
+ ใƒใƒƒใ‚ฏใ‚ฐใƒฉใ‚ฆใƒณใƒ‰ใงใฎใฟไฝฟ็”จใ—ใพใ™ใ€‚ใ‚ชใƒ•ใƒฉใ‚คใƒณใงใ‚‚ๅ‹•ไฝœใ—ใพใ™ใ€‚
75
+ - **ใ™ในใฆใฎใƒกใƒƒใ‚ปใƒผใ‚ธใฏๅฏฉๆŸปใ‚’้€šใ‚Šใพใ™** โ€” URLใƒปๅ€‹ไบบๆƒ…ๅ ฑใƒปๅˆถๅพกๆ–‡ๅญ—ใƒปไธ้ฉๅˆ‡ใช่กจ็พใฏ
76
+ ่‡ชๅ‹•็š„ใซใƒ•ใ‚ฃใƒซใ‚ฟใƒชใƒณใ‚ฐใ•ใ‚Œใพใ™ใ€‚ๅ•้กŒใฎใ‚ใ‚‹ใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’่ฆ‹ใคใ‘ใŸใ‚‰ใ€ไธ‹่จ˜ใฎ้€ฃ็ตกๅ…ˆใ‹ใ‚‰
77
+ ใŠ็Ÿฅใ‚‰ใ›ใใ ใ•ใ„ใ€‚ใ™ใใซๅ–ใ‚Šไธ‹ใ’ใพใ™ใ€‚
78
+
79
+ ## ใ‚ขใƒณใ‚คใƒณใ‚นใƒˆใƒผใƒซ
80
+
81
+ ```bash
82
+ pinglet uninstall # ๆŽฅ็ถš่งฃ้™ค + ๅ…ƒใฎ่จญๅฎšใ‚’ๅพฉๅ…ƒ๏ผˆnpm ใ‹ใ‚‰ๅ‰Š้™คใ™ใ‚‹ๅ‰ใซ๏ผ๏ผ‰
83
+ npm uninstall -g pinglet-cli
84
+ ```
85
+
86
+ ใƒญใƒผใ‚ซใƒซใƒ‡ใƒผใ‚ฟ๏ผˆ`~/.pinglet`๏ผ‰ใพใงๅ‰Š้™คใ™ใ‚‹ใซใฏ `pinglet uninstall --purge`ใ€‚
87
+
88
+ ## ๅˆฉ็”จ่ฆ็ด„ใจใƒ—ใƒฉใ‚คใƒใ‚ทใƒผใƒใƒชใ‚ทใƒผ
89
+
90
+ ใƒญใ‚ฐใ‚คใƒณใ—ใฆใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’ๆŠ•็จฟใ™ใ‚‹ใจใ€ไปฅไธ‹ใฎๆ–‡ๆ›ธใซๅŒๆ„ใ—ใŸใ‚‚ใฎใจใฟใชใ•ใ‚Œใพใ™ใ€‚
91
+
92
+ - [ๅˆฉ็”จ่ฆ็ด„](https://pinglet.halluci.co.kr/terms) ยท [ใƒ—ใƒฉใ‚คใƒใ‚ทใƒผใƒใƒชใ‚ทใƒผ](https://pinglet.halluci.co.kr/privacy)
93
+
94
+ ใŠๅ•ใ„ๅˆใ‚ใ›ใƒปใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏ: halluci-data@naver.com ยท [GitHub Issues](https://github.com/mabyko/pinglet-client/issues)
package/README.ko.md ADDED
@@ -0,0 +1,95 @@
1
+ # Pinglet ๐Ÿ’Œ
2
+
3
+ **AI๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋™์•ˆ, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ ํ•œ ์ค„์„ ๋งŒ๋‚˜์„ธ์š”.**
4
+
5
+ Claude Code๊ฐ€ ์ฝ”๋“œ๋ฅผ ๊ณ ์น˜๋Š” ๋™์•ˆ "Befuddlingโ€ฆ" ์Šคํ”ผ๋„ˆ๋งŒ ๋ฐ”๋ผ๋ณด๋˜ ๊ทธ ์ž๋ฆฌ์—,
6
+ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋‚จ๊ธด ์งง์€ ๋ฉ”์‹œ์ง€(**Ping**)๊ฐ€ ๋Œ€์‹  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
7
+
8
+ ![Pinglet ๋ฐ๋ชจ โ€” Claude Code ์Šคํ”ผ๋„ˆ ์ž๋ฆฌ์— ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ Ping์ด ํ‘œ์‹œ๋œ๋‹ค](docs/pinglet-demo.gif)
9
+
10
+ ```
11
+ โœถ ๐Ÿ’Œ "๊ธˆ์š”์ผ ์˜คํ›„ ๋ฐฐํฌ๋Š” ๋‹ค์Œ ์ƒ์— ํ•ฉ์‹œ๋‹ค." (12s ยท โ†“ 1.2k tokens)
12
+ ```
13
+
14
+ ๐ŸŒ **ํ™ˆํŽ˜์ด์ง€**: https://pinglet.halluci.co.kr
15
+
16
+ ๐Ÿ‡บ๐Ÿ‡ธ [English](./README.md) ยท ๐Ÿ‡ฏ๐Ÿ‡ต [ๆ—ฅๆœฌ่ชž](./README.ja.md)
17
+
18
+ ## ์‹œ์ž‘ํ•˜๊ธฐ
19
+
20
+ ```bash
21
+ npm install -g pinglet-cli && pinglet install
22
+ ```
23
+
24
+ ์ด๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ์ดํ›„๋Š” ํ‰์†Œ์ฒ˜๋Ÿผ `claude`๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ผ์š”.
25
+
26
+ > ์„ค์น˜ ์ค‘ npm์ด `install-scripts` ๊ฒฝ๊ณ ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ๊ตฌ๋ฒ„์ „ npm์—์„œ
27
+ > ์ดˆ๊ธฐ ์„ค์ •์„ ์ž๋™ํ™”ํ•˜๋˜ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์•ˆ๋‚ด๋กœ, ๋ฌด์‹œํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.
28
+ > ์—ฐ๊ฒฐ ์ƒํƒœ๋Š” `pinglet doctor`๋กœ ์–ธ์ œ๋“  ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.
29
+
30
+ - ๊ธฐ์กด statusline ์„ค์ •์ด ์žˆ๋‹ค๋ฉด **๋ฐฑ์—… ํ›„ ๊ต์ฒดํ• ์ง€ ๋ฌผ์–ด๋ณด๊ณ **, ์ œ๊ฑฐ ์‹œ ์›๋ž˜๋Œ€๋กœ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
31
+ - Codex๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(experimental) โ€” turn ์™„๋ฃŒ ์‹œ macOS ์•Œ๋ฆผ์œผ๋กœ Ping์ด ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค.
32
+ ์•Œ๋ฆผ ๋ฐฉ์‹์ด ์‹œ๋„๋Ÿฌ์šธ ์ˆ˜ ์žˆ์–ด ๊ธฐ๋ณธ ์„ค์น˜์—์„œ๋Š” ์ œ์™ธ๋˜๋ฉฐ, ์›ํ•  ๋•Œ๋งŒ `pinglet install --codex`๋กœ ์ผœ์„ธ์š”.
33
+
34
+ ## Ping ๋ณด๋‚ด๊ธฐ
35
+
36
+ Claude Code ์„ธ์…˜ ์•ˆ์—์„œ ๋ฐ”๋กœ:
37
+
38
+ ```
39
+ > /pinglet ์˜ค๋Š˜๋„ ๋นŒ๋“œ๊ฐ€ ์ดˆ๋ก๋ถˆ์ด๊ธธ
40
+ ```
41
+
42
+ ๋˜๋Š” ํ„ฐ๋ฏธ๋„์—์„œ:
43
+
44
+ ```bash
45
+ pinglet login # GitHub ๋กœ๊ทธ์ธ โ€” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ด๋ฆฌ๊ณ  ์ž๋™์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค (์ตœ์ดˆ 1ํšŒ)
46
+ pinglet post "๋ฉ”์‹œ์ง€"
47
+ ```
48
+
49
+ ์ฝ๊ธฐ๋Š” ๋กœ๊ทธ์ธ ์—†์ด ๊ฐ€๋Šฅํ•˜๊ณ , **์ž‘์„ฑ์—๋งŒ GitHub ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.**
50
+ ๋‚ด๊ฐ€ ๋ณด๋‚ธ Ping์ด ์–ผ๋งˆ๋‚˜ ํผ์กŒ๋Š”์ง€๋Š” statusline์—์„œ ๋ฐ”๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค:
51
+
52
+ ```
53
+ ๐Ÿ’Œ ๋‚ด Ping "์˜ค๋Š˜๋„ ๋นŒ๋“œ๊ฐ€ ์ดˆ๋ก๋ถˆ์ด๊ธธ" โ†’ ๋„๋‹ฌ๋ฅ  17%
54
+ ```
55
+
56
+ ## ๋ช…๋ น์–ด
57
+
58
+ | ๋ช…๋ น | ์„ค๋ช… |
59
+ |---|---|
60
+ | `pinglet install` | Claude Code ์—ฐ๊ฒฐ (Codex๋Š” `--codex`๋กœ opt-in) |
61
+ | `pinglet login` | GitHub ๊ณ„์ • ์—ฐ๊ฒฐ (๋ฉ”์‹œ์ง€ ์ž‘์„ฑ์— ํ•„์š”) |
62
+ | `pinglet post "๋ฉ”์‹œ์ง€"` | Ping ๋ณด๋‚ด๊ธฐ |
63
+ | `pinglet ping` | ์ง€๊ธˆ ํ‘œ์‹œ๋  ๋ฉ”์‹œ์ง€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ |
64
+ | `pinglet doctor` | ์„ค์น˜ยท์—ฐ๊ฒฐ ์ƒํƒœ ์ง„๋‹จ |
65
+ | `pinglet uninstall` | ์—ฐ๊ฒฐ ํ•ด์ œ ๋ฐ ๊ธฐ์กด ์„ค์ • ๋ณต์› |
66
+
67
+ ## ์•ˆ์‹ฌํ•˜๊ณ  ์“ฐ์„ธ์š”
68
+
69
+ - **ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ 0** โ€” ๋ฉ”์‹œ์ง€๋Š” Claude Code์˜ UI ์˜์—ญ(statusline/spinner)์—๋งŒ
70
+ ํ‘œ์‹œ๋˜๊ณ  ๋ชจ๋ธ ์ปจํ…์ŠคํŠธ์—๋Š” ์ „ํ˜€ ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. API ๋น„์šฉ๊ณผ ์‘๋‹ต ํ’ˆ์งˆ์—
71
+ ์˜ํ–ฅ์ด ์—†์Šต๋‹ˆ๋‹ค.
72
+ - **์ฝ”๋“œ๋ฅผ ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค** โ€” prompt, ์‘๋‹ต, ์ฝ”๋“œ, ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
73
+ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์€ ์„ค์น˜ ID, OS ์ข…๋ฅ˜, ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „, ๋ฉ”์‹œ์ง€ ๋…ธ์ถœ ์ด๋ฒคํŠธ๋ฟ์ž…๋‹ˆ๋‹ค.
74
+ - **ํ„ฐ๋ฏธ๋„์ด ๋А๋ ค์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค** โ€” ํ‘œ์‹œ๋Š” ๋กœ์ปฌ ์บ์‹œ๋งŒ ์ฝ์–ด์„œ ๊ทธ๋ฆฌ๋ฉฐ, ๋„คํŠธ์›Œํฌ๋Š”
75
+ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”„๋ผ์ธ์—์„œ๋„ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
76
+ - **๋ชจ๋“  ๋ฉ”์‹œ์ง€๋Š” ๊ฒ€์ˆ˜๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค** โ€” URLยท๊ฐœ์ธ์ •๋ณดยท์ œ์–ด๋ฌธ์žยท๋ถ€์ ์ ˆํ•œ ํ‘œํ˜„์€
77
+ ์ž๋™์œผ๋กœ ๊ฑธ๋Ÿฌ์ง€๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ๋ฐœ๊ฒฌ ์‹œ ๋ฐ”๋กœ ๋‚ด๋ ค์ฃผ์„ธ์š”
78
+ (์•„๋ž˜ ๋ฌธ์˜ยทํ”ผ๋“œ๋ฐฑ ๋งํฌ).
79
+
80
+ ## ์ œ๊ฑฐ
81
+
82
+ ```bash
83
+ pinglet uninstall # ์—ฐ๊ฒฐ ํ•ด์ œ + ๊ธฐ์กด ์„ค์ • ๋ณต์› (npm ์ œ๊ฑฐ๋ณด๋‹ค ๋จผ์ €!)
84
+ npm uninstall -g pinglet-cli
85
+ ```
86
+
87
+ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ(`~/.pinglet`)๊นŒ์ง€ ์ง€์šฐ๋ ค๋ฉด `pinglet uninstall --purge`.
88
+
89
+ ## ์•ฝ๊ด€ ๋ฐ ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ
90
+
91
+ ๋กœ๊ทธ์ธํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์•„๋ž˜ ๋ฌธ์„œ์— ๋™์˜ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
92
+
93
+ - [์ด์šฉ์•ฝ๊ด€](https://pinglet.halluci.co.kr/terms) ยท [๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ](https://pinglet.halluci.co.kr/privacy)
94
+
95
+ ๋ฌธ์˜ยทํ”ผ๋“œ๋ฐฑ: halluci-data@naver.com ยท [GitHub Issues](https://github.com/mabyko/pinglet-client/issues)
package/README.md CHANGED
@@ -1,93 +1,96 @@
1
1
  # Pinglet ๐Ÿ’Œ
2
2
 
3
- **AI๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋™์•ˆ, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ ํ•œ ์ค„์„ ๋งŒ๋‚˜์„ธ์š”.**
3
+ **While the AI thinks, meet a line from another developer.**
4
4
 
5
- Claude Code๊ฐ€ ์ฝ”๋“œ๋ฅผ ๊ณ ์น˜๋Š” ๋™์•ˆ "Befuddlingโ€ฆ" ์Šคํ”ผ๋„ˆ๋งŒ ๋ฐ”๋ผ๋ณด๋˜ ๊ทธ ์ž๋ฆฌ์—,
6
- ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋‚จ๊ธด ์งง์€ ๋ฉ”์‹œ์ง€(**Ping**)๊ฐ€ ๋Œ€์‹  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
5
+ That spot where you used to stare at Claude Code's "Befuddlingโ€ฆ" spinner
6
+ now shows short messages (**Pings**) left by other developers.
7
7
 
8
- ![Pinglet ๋ฐ๋ชจ โ€” Claude Code ์Šคํ”ผ๋„ˆ ์ž๋ฆฌ์— ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ Ping์ด ํ‘œ์‹œ๋œ๋‹ค](docs/pinglet-demo.gif)
8
+ ![Pinglet demo โ€” another developer's Ping shown in place of the Claude Code spinner](docs/pinglet-demo.gif)
9
9
 
10
10
  ```
11
- โœถ ๐Ÿ’Œ "๊ธˆ์š”์ผ ์˜คํ›„ ๋ฐฐํฌ๋Š” ๋‹ค์Œ ์ƒ์— ํ•ฉ์‹œ๋‹ค." (12s ยท โ†“ 1.2k tokens)
11
+ โœถ ๐Ÿ’Œ "Friday-afternoon deploys are a next-life problem." (12s ยท โ†“ 1.2k tokens)
12
12
  ```
13
13
 
14
- ๐ŸŒ **ํ™ˆํŽ˜์ด์ง€**: https://pinglet.halluci.co.kr
14
+ ๐ŸŒ **Website**: https://pinglet.halluci.co.kr/en/
15
15
 
16
- ## ์‹œ์ž‘ํ•˜๊ธฐ
16
+ ๐Ÿ‡ฐ๐Ÿ‡ท [ํ•œ๊ตญ์–ด](./README.ko.md) ยท ๐Ÿ‡ฏ๐Ÿ‡ต [ๆ—ฅๆœฌ่ชž](./README.ja.md)
17
+
18
+ ## Getting started
17
19
 
18
20
  ```bash
19
21
  npm install -g pinglet-cli && pinglet install
20
22
  ```
21
23
 
22
- ์ด๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ์ดํ›„๋Š” ํ‰์†Œ์ฒ˜๋Ÿผ `claude`๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ผ์š”.
24
+ That's it. Just run `claude` as usual.
23
25
 
24
- > ์„ค์น˜ ์ค‘ npm์ด `install-scripts` ๊ฒฝ๊ณ ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ๊ตฌ๋ฒ„์ „ npm์—์„œ
25
- > ์ดˆ๊ธฐ ์„ค์ •์„ ์ž๋™ํ™”ํ•˜๋˜ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์•ˆ๋‚ด๋กœ, ๋ฌด์‹œํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.
26
- > ์—ฐ๊ฒฐ ์ƒํƒœ๋Š” `pinglet doctor`๋กœ ์–ธ์ œ๋“  ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.
26
+ > npm may show an `install-scripts` warning during installation โ€” it refers to a
27
+ > script that used to automate setup on older npm versions and can be ignored.
28
+ > You can check the connection anytime with `pinglet doctor`.
27
29
 
28
- - ๊ธฐ์กด statusline ์„ค์ •์ด ์žˆ๋‹ค๋ฉด **๋ฐฑ์—… ํ›„ ๊ต์ฒดํ• ์ง€ ๋ฌผ์–ด๋ณด๊ณ **, ์ œ๊ฑฐ ์‹œ ์›๋ž˜๋Œ€๋กœ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
29
- - Codex๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(experimental) โ€” turn ์™„๋ฃŒ ์‹œ macOS ์•Œ๋ฆผ์œผ๋กœ Ping์ด ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค.
30
- ์•Œ๋ฆผ ๋ฐฉ์‹์ด ์‹œ๋„๋Ÿฌ์šธ ์ˆ˜ ์žˆ์–ด ๊ธฐ๋ณธ ์„ค์น˜์—์„œ๋Š” ์ œ์™ธ๋˜๋ฉฐ, ์›ํ•  ๋•Œ๋งŒ `pinglet install --codex`๋กœ ์ผœ์„ธ์š”.
30
+ - If you already have a statusline configured, Pinglet **asks before replacing it (after backing it up)** and restores the original on uninstall.
31
+ - Codex is supported too (experimental) โ€” a Ping arrives as a macOS notification when a turn completes.
32
+ Since notifications can be noisy, it's excluded from the default install; opt in with `pinglet install --codex`.
31
33
 
32
- ## Ping ๋ณด๋‚ด๊ธฐ
34
+ ## Sending a Ping
33
35
 
34
- Claude Code ์„ธ์…˜ ์•ˆ์—์„œ ๋ฐ”๋กœ:
36
+ Right from a Claude Code session:
35
37
 
36
38
  ```
37
- > /pinglet ์˜ค๋Š˜๋„ ๋นŒ๋“œ๊ฐ€ ์ดˆ๋ก๋ถˆ์ด๊ธธ
39
+ > /pinglet may your build stay green today
38
40
  ```
39
41
 
40
- ๋˜๋Š” ํ„ฐ๋ฏธ๋„์—์„œ:
42
+ Or from the terminal:
41
43
 
42
44
  ```bash
43
- pinglet login # GitHub ๋กœ๊ทธ์ธ โ€” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ด๋ฆฌ๊ณ  ์ž๋™์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค (์ตœ์ดˆ 1ํšŒ)
44
- pinglet post "๋ฉ”์‹œ์ง€"
45
+ pinglet login # GitHub login โ€” opens a browser and completes automatically (once)
46
+ pinglet post "message"
45
47
  ```
46
48
 
47
- ์ฝ๊ธฐ๋Š” ๋กœ๊ทธ์ธ ์—†์ด ๊ฐ€๋Šฅํ•˜๊ณ , **์ž‘์„ฑ์—๋งŒ GitHub ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.**
48
- ๋‚ด๊ฐ€ ๋ณด๋‚ธ Ping์ด ์–ผ๋งˆ๋‚˜ ํผ์กŒ๋Š”์ง€๋Š” statusline์—์„œ ๋ฐ”๋กœ ํ™•์ธ๋ฉ๋‹ˆ๋‹ค:
49
+ Reading requires no login; **only posting requires a GitHub login.**
50
+ You can see how far your Ping has traveled right in the statusline:
49
51
 
50
52
  ```
51
- ๐Ÿ’Œ ๋‚ด Ping "์˜ค๋Š˜๋„ ๋นŒ๋“œ๊ฐ€ ์ดˆ๋ก๋ถˆ์ด๊ธธ" โ†’ ๋„๋‹ฌ๋ฅ  17%
53
+ ๐Ÿ’Œ My Ping "may your build stay green today" โ†’ reach 17%
52
54
  ```
53
55
 
54
- ## ๋ช…๋ น์–ด
56
+ ## Commands
55
57
 
56
- | ๋ช…๋ น | ์„ค๋ช… |
58
+ | Command | Description |
57
59
  |---|---|
58
- | `pinglet install` | Claude Code ์—ฐ๊ฒฐ (Codex๋Š” `--codex`๋กœ opt-in) |
59
- | `pinglet login` | GitHub ๊ณ„์ • ์—ฐ๊ฒฐ (๋ฉ”์‹œ์ง€ ์ž‘์„ฑ์— ํ•„์š”) |
60
- | `pinglet post "๋ฉ”์‹œ์ง€"` | Ping ๋ณด๋‚ด๊ธฐ |
61
- | `pinglet ping` | ์ง€๊ธˆ ํ‘œ์‹œ๋  ๋ฉ”์‹œ์ง€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ |
62
- | `pinglet doctor` | ์„ค์น˜ยท์—ฐ๊ฒฐ ์ƒํƒœ ์ง„๋‹จ |
63
- | `pinglet uninstall` | ์—ฐ๊ฒฐ ํ•ด์ œ ๋ฐ ๊ธฐ์กด ์„ค์ • ๋ณต์› |
64
-
65
- ## ์•ˆ์‹ฌํ•˜๊ณ  ์“ฐ์„ธ์š”
66
-
67
- - **ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ 0** โ€” ๋ฉ”์‹œ์ง€๋Š” Claude Code์˜ UI ์˜์—ญ(statusline/spinner)์—๋งŒ
68
- ํ‘œ์‹œ๋˜๊ณ  ๋ชจ๋ธ ์ปจํ…์ŠคํŠธ์—๋Š” ์ „ํ˜€ ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. API ๋น„์šฉ๊ณผ ์‘๋‹ต ํ’ˆ์งˆ์—
69
- ์˜ํ–ฅ์ด ์—†์Šต๋‹ˆ๋‹ค.
70
- - **์ฝ”๋“œ๋ฅผ ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค** โ€” prompt, ์‘๋‹ต, ์ฝ”๋“œ, ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
71
- ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์€ ์„ค์น˜ ID, OS ์ข…๋ฅ˜, ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „, ๋ฉ”์‹œ์ง€ ๋…ธ์ถœ ์ด๋ฒคํŠธ๋ฟ์ž…๋‹ˆ๋‹ค.
72
- - **ํ„ฐ๋ฏธ๋„์ด ๋А๋ ค์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค** โ€” ํ‘œ์‹œ๋Š” ๋กœ์ปฌ ์บ์‹œ๋งŒ ์ฝ์–ด์„œ ๊ทธ๋ฆฌ๋ฉฐ, ๋„คํŠธ์›Œํฌ๋Š”
73
- ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”„๋ผ์ธ์—์„œ๋„ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
74
- - **๋ชจ๋“  ๋ฉ”์‹œ์ง€๋Š” ๊ฒ€์ˆ˜๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค** โ€” URLยท๊ฐœ์ธ์ •๋ณดยท์ œ์–ด๋ฌธ์žยท๋ถ€์ ์ ˆํ•œ ํ‘œํ˜„์€
75
- ์ž๋™์œผ๋กœ ๊ฑธ๋Ÿฌ์ง€๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ๋ฐœ๊ฒฌ ์‹œ ๋ฐ”๋กœ ๋‚ด๋ ค์ฃผ์„ธ์š”
76
- (์•„๋ž˜ ๋ฌธ์˜ยทํ”ผ๋“œ๋ฐฑ ๋งํฌ).
77
-
78
- ## ์ œ๊ฑฐ
60
+ | `pinglet install` | Connect to Claude Code (opt in to Codex with `--codex`) |
61
+ | `pinglet login` | Link your GitHub account (required for posting) |
62
+ | `pinglet post "message"` | Send a Ping |
63
+ | `pinglet ping` | Preview the message that would be shown now |
64
+ | `pinglet doctor` | Diagnose installation and connection status |
65
+ | `pinglet uninstall` | Disconnect and restore your previous settings |
66
+
67
+ ## Safe to use
68
+
69
+ - **Zero token usage** โ€” messages are shown only in Claude Code's UI area
70
+ (statusline/spinner) and never enter the model context. No impact on API cost
71
+ or response quality.
72
+ - **Never reads your code** โ€” no access to prompts, responses, code, or
73
+ environment variables. The only data collected: an install ID, OS type,
74
+ client version, and message-impression events.
75
+ - **Doesn't slow down your terminal** โ€” rendering reads only a local cache;
76
+ the network is used in the background only. Works offline too.
77
+ - **Every message is moderated** โ€” URLs, personal information, control
78
+ characters, and inappropriate content are filtered automatically. If you spot
79
+ a problematic message, report it via the links below and we'll take it down.
80
+
81
+ ## Uninstall
79
82
 
80
83
  ```bash
81
- pinglet uninstall # ์—ฐ๊ฒฐ ํ•ด์ œ + ๊ธฐ์กด ์„ค์ • ๋ณต์› (npm ์ œ๊ฑฐ๋ณด๋‹ค ๋จผ์ €!)
84
+ pinglet uninstall # disconnect + restore previous settings (do this before removing the npm package!)
82
85
  npm uninstall -g pinglet-cli
83
86
  ```
84
87
 
85
- ๋กœ์ปฌ ๋ฐ์ดํ„ฐ(`~/.pinglet`)๊นŒ์ง€ ์ง€์šฐ๋ ค๋ฉด `pinglet uninstall --purge`.
88
+ To also remove local data (`~/.pinglet`), run `pinglet uninstall --purge`.
86
89
 
87
- ## ์•ฝ๊ด€ ๋ฐ ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ
90
+ ## Terms & Privacy
88
91
 
89
- ๋กœ๊ทธ์ธํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์•„๋ž˜ ๋ฌธ์„œ์— ๋™์˜ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
92
+ By logging in and posting messages you agree to the following:
90
93
 
91
- - [์ด์šฉ์•ฝ๊ด€](https://pinglet.halluci.co.kr/terms) ยท [๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ](https://pinglet.halluci.co.kr/privacy)
94
+ - [Terms of Service](https://pinglet.halluci.co.kr/terms) ยท [Privacy Policy](https://pinglet.halluci.co.kr/privacy)
92
95
 
93
- ๋ฌธ์˜ยทํ”ผ๋“œ๋ฐฑ: halluci-data@naver.com ยท [GitHub Issues](https://github.com/mabyko/pinglet-client/issues)
96
+ Contact & feedback: halluci-data@naver.com ยท [GitHub Issues](https://github.com/mabyko/pinglet-client/issues)
@@ -180,9 +180,25 @@ function writeSettings(settings, expectedMtimeMs) {
180
180
  if (settingsMtimeMs() !== expectedMtimeMs)
181
181
  return false;
182
182
  // settings.json์€ Claude Code๊ฐ€ ์ˆ˜์‹œ๋กœ ์ฝ๋Š” ํŒŒ์ผ์ด๋ผ tmp+rename์œผ๋กœ ์›์ž์ ์œผ๋กœ ์“ด๋‹ค.
183
- const tmp = SETTINGS_PATH + ".pinglet-tmp";
184
- fs.writeFileSync(tmp, JSON.stringify(settings, null, 2) + "\n");
185
- fs.renameSync(tmp, SETTINGS_PATH);
183
+ // tmp ์ด๋ฆ„์— pid๋ฅผ ๋ถ™์—ฌ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ ๋‹ค โ€” ์—ฌ๋Ÿฌ ์„ธ์…˜์˜ statusline์ด
184
+ // ๋™์‹œ์— ๋Œ๋ฉด ๊ฐ™์€ tmp์— ๊ฒน์ณ ์“ฐ๊ฒŒ ๋˜๊ณ , writeFileSync๋Š” truncate ํ›„ ์“ฐ๊ธฐ๋ผ
185
+ // ์งง์€ ๋‚ด์šฉ ๋’ค์— ๊ธด ๋‚ด์šฉ์˜ ๊ผฌ๋ฆฌ๊ฐ€ ๋‚จ์€ ์ฑ„๋กœ rename ๋˜์–ด settings.json์ด ๊นจ์ง„๋‹ค.
186
+ // rename ์ž์ฒด๋Š” tmp ์ด๋ฆ„๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์›์ž์ ์ด๋ผ ์ด๊ฒƒ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค.
187
+ const tmp = `${SETTINGS_PATH}.pinglet-tmp.${process.pid}`;
188
+ try {
189
+ fs.writeFileSync(tmp, JSON.stringify(settings, null, 2) + "\n");
190
+ fs.renameSync(tmp, SETTINGS_PATH);
191
+ }
192
+ catch (error) {
193
+ // rename ์ „์— ์‹คํŒจํ•˜๋ฉด tmp๊ฐ€ ๋‚จ๋Š”๋‹ค โ€” ์ด๋ฆ„์ด pid๋ณ„๋กœ ๋‹ฌ๋ผ ๋ฐฉ์น˜ํ•˜๋ฉด ์Œ“์ธ๋‹ค.
194
+ try {
195
+ fs.unlinkSync(tmp);
196
+ }
197
+ catch {
198
+ // ์ด๋ฏธ ์—†์œผ๋ฉด ๋ฌด์‹œ
199
+ }
200
+ throw error;
201
+ }
186
202
  return true;
187
203
  }
188
204
  function isPingletTip(tip) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pinglet-cli",
3
- "version": "0.2.10",
4
- "description": "AI๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์˜ Ping์„ ๋งŒ๋‚˜๋Š” ๋ฉ”์‹œ์ง€ ๋„คํŠธ์›Œํฌ โ€” Claude Code / Codex integration",
3
+ "version": "0.2.12",
4
+ "description": "Short messages from other developers shown in your Claude Code spinner while the AI thinks โ€” zero tokens, never reads your code. Claude Code / Codex integration",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",