เลิกกด Approve ไปเรื่อยๆ: วิธีปรับแต่ง Permissions ของ Claude Code CLI

ในการทำงานครั้งแรกกับ Claude Code ผมใช้เวลาไปกับการคลิก "Approve" มากกว่าการตรวจสอบงานเสียอีก

ทุกการอ่านไฟล์ ทุกสถานะ git ทุกคำสั่ง

พอถึงตอนจบ ผมคลิกผ่านไปถึง 40 prompt ผมรู้สึกไม่มั่นใจในการเปลี่ยนแปลงที่เกิดขึ้นเลยเมื่อเทียบกับตอนเริ่มต้น ระบบการขออนุญาตแบบนี้ทำให้ผมติดนิสัย rubber-stamp หรือการกดอนุมัติทุกอย่างไปโดยไม่ได้อ่านจริงๆ

คุณต้องตั้งค่า permissions เพื่อให้คุณอนุมัติเฉพาะสิ่งที่สำคัญเท่านั้น

Claude Code ไม่ใช่แค่หน้าต่างแชท แต่มันสามารถอ่านไฟล์ เขียนไฟล์ และรันคำสั่ง shell ได้ การใช้วิธี "อนุมัติทุกอย่าง" แบบเหมาเข่งนั้นอันตรายมาก

Modes จะกำหนดว่า Claude จะทำงานอย่างไรเมื่อไม่มีกฎเฉพาะเจาะจงระบุไว้

• default: ปลอดภัยสำหรับโปรเจกต์ใหม่ Reads: Auto. Edits: Asks. Bash: Asks. • plan: เหมาะที่สุดสำหรับการทำ code reviews. Reads: Auto. Edits: Blocked. Bash: Blocked. • acceptEdits: เหมาะที่สุดสำหรับการเขียนโค้ดอย่างจริงจัง. Reads: Auto. Edits: Auto. Bash: Asks. • bypassPermissions: เหมาะที่สุดสำหรับ CI/CD. Reads: Auto. Edits: Auto. Bash: Auto.

คุณสามารถสลับโหมดได้โดยใช้คำสั่ง /permissions

การตั้งค่าจะเรียงตามลำดับความสำคัญ (Hierarchy) โดยขอบเขตที่สูงกว่าจะชนะเสมอ

  1. Enterprise policy
  2. User settings (~/.claude/settings.json)
  3. Project settings (.claude/settings.json)
  4. Project local (.claude/settings.local.json)

กฎ (Rules) ใช้รูปแบบง่ายๆ คือ: allow, deny, หรือ ask

สำคัญ: ลำดับการตรวจสอบคือ deny, ตามด้วย ask, และสุดท้ายคือ allow โดยที่ deny จะชนะเสมอ

หากคุณต้องการปิดการใช้งานเครื่องมือใดเครื่องมือหนึ่งโดยสิ้นเชิง ให้ใช้ชื่อเครื่องมือนั้นตรงๆ แต่หากต้องการจำกัดการใช้งาน ให้ใช้กฎแบบระบุขอบเขต (scoped rule) ร่วมกับ glob pattern

ตัวอย่างสำหรับการพัฒนาโปรแกรม (active development):

  • Allow: Bash(npm run *), Bash(git status)
  • Deny: Bash(rm -rf *), Bash(curl *)
  • Ask: Bash(git push *)

คุณยังสามารถปกป้องข้อมูลที่ละเอียดอ่อนได้ด้วย โดยใช้กฎ deny สำหรับไฟล์อย่าง .env เพื่อให้แน่ใจว่า Claude จะไม่สามารถอ่านข้อมูลสำคัญ (credentials) ของคุณได้

เคล็ดลับระดับโปรสำหรับเวิร์กโฟลว์ของคุณ:

  • ใช้ /permissions ใน CLI เพื่อเปิด UI แบบโต้ตอบ
  • เพิ่มกฎสำหรับอะไรก็ตามที่คุณต้องกดอนุมัติมากกว่าสองครั้ง
  • ใช้ flag อย่าง --permission-mode เพื่อตั้งกฎสำหรับการใช้งานเพียงเซสชันเดียวโดยไม่เปลี่ยนไฟล์ตั้งค่า
  • ใน CI/CD ให้ใช้ bypassPermissions ร่วมกับกฎ deny ที่เข้มงวดเพื่อรักษาความปลอดภัยของสภาพแวดล้อมการทำงาน

เลิกกดอนุมัติไปเรื่อยๆ แล้วเริ่มตั้งค่ากันเถอะ

Source: https://dev.to/kapoormanish/stop-clicking-approve-how-to-customize-claude-code-cli-permissions-pnh

Optional learning community: https://t.me/GyaanSetuAi