- 1. Copilot CLI เหมาะกับใคร
- 2. ความสามารถหลัก
- 3. ข้อกำหนดเบื้องต้น
- 4. การติดตั้ง
- 5. การเข้าสู่ระบบ
- 6. การใช้งานแบบ Interactive
- 7. การอ้างอิงไฟล์และบริบท
- 8. การใช้งานแบบ Programmatic
- 9. คำสั่ง CLI ที่ควรรู้
- 10. Sandbox และความปลอดภัย
- 11. MCP, Skills, Agents และ Hooks
- 12. โฟลเดอร์การตั้งค่า
- 13. Workflow แนะนำสำหรับงานพัฒนาซอฟต์แวร์
- 14. เปรียบเทียบ Copilot CLI กับ Copilot ใน IDE
- 15. สรุป
- แหล่งอ้างอิง
GitHub Copilot CLI คือผู้ช่วยเขียนโปรแกรมแบบ AI Agent ที่ทำงานจาก Terminal โดยตรง ผู้ใช้สามารถถามคำถามเกี่ยวกับโค้ด สร้างหรือแก้ไขไฟล์ วิเคราะห์ปัญหา รันการทดสอบ ทำงานกับ Git และติดต่อกับ GitHub เช่น Issues, Pull Requests และ GitHub Actions ได้จากบริบทของโปรเจกต์เดียวกัน
#1. Copilot CLI เหมาะกับใคร
Copilot CLI เหมาะกับนักพัฒนาที่ต้องการทำงานกับโค้ดจาก Terminal และต้องการให้ AI ช่วยวิเคราะห์หรือดำเนินงานหลายขั้นตอน เช่น
- สำรวจโค้ดเบสหรือโปรเจกต์เก่าที่ไม่คุ้นเคย
- สร้างฟีเจอร์ใหม่ที่เกี่ยวข้องกับหลายไฟล์
- Refactor โค้ดและปรับปรุงเอกสาร
- สร้างและแก้ไข Unit Test หรือ Integration Test
- วิเคราะห์สาเหตุของ Bug และตรวจสอบผลการแก้ไข
- ทำงานกับ Git branch, commit และ Pull Request
- สร้าง GitHub Actions workflow
- ใช้ MCP server, custom agent, skill หรือ hook เพื่อขยายความสามารถ
จุดสำคัญคือ Copilot CLI ไม่ได้ทำหน้าที่เพียงเติมโค้ด แต่สามารถวางแผน เรียกใช้เครื่องมือ ตรวจสอบผลลัพธ์ และทำงานต่อเนื่องในโปรเจกต์ได้
#2. ความสามารถหลัก
| ความสามารถ | คำอธิบาย |
|---|---|
| Interactive session | สนทนากับ Copilot ต่อเนื่องจาก Terminal ด้วยคำสั่ง copilot |
| Plan mode | ให้ AI วิเคราะห์งานและจัดทำแผนก่อนแก้ไขโค้ด |
| Programmatic mode | ส่ง Prompt ด้วย -p หรือ --prompt แล้วให้ CLI ทำงานและจบการทำงาน |
| GitHub integration | อ่าน Issues/PRs, สร้าง branch, commit หรือ Pull Request ตามสิทธิ์ที่อนุญาต |
| MCP | เชื่อมต่อข้อมูลและเครื่องมือจาก MCP server |
| Custom agents | สร้าง Agent เฉพาะด้าน เช่น Code Review หรือ Test Engineer |
| Skills | เพิ่มคำแนะนำ สคริปต์ และทรัพยากรสำหรับงานเฉพาะทาง |
| Hooks | เรียกคำสั่ง Shell เพื่อทำ Validation, Logging หรือ Security Scan |
| Sandboxing | จำกัดการเข้าถึงไฟล์ Network และความสามารถของระบบ |
| Model selection | เลือกโมเดลที่เหมาะกับความเร็ว ต้นทุน และความสามารถของงาน |
#3. ข้อกำหนดเบื้องต้น
เอกสาร GitHub ระบุข้อกำหนดหลักดังนี้
- มี GitHub Copilot subscription ที่ใช้งานได้
- หากใช้งานผ่าน Organization หรือ Enterprise ผู้ดูแลต้องเปิดใช้นโยบาย Copilot CLI
- บน Windows ต้องใช้ PowerShell 6 ขึ้นไป
- หากติดตั้งผ่าน npm ต้องใช้ Node.js 22 ขึ้นไป
Copilot CLI รองรับ Linux, macOS และ Windows ผ่าน PowerShell หรือ Windows Subsystem for Linux (WSL)
#4. การติดตั้ง
#4.1 ติดตั้งด้วย npm
ใช้ได้ทุกแพลตฟอร์มที่มี Node.js 22 ขึ้นไป
npm install -g @github/copilot
หากไฟล์ ~/.npmrc กำหนด ignore-scripts=true ให้ใช้คำสั่งต่อไปนี้
npm_config_ignore_scripts=false npm install -g @github/copilot
#4.2 ติดตั้งบน Windows ด้วย WinGet
winget install GitHub.Copilot
#4.3 ติดตั้งบน macOS หรือ Linux ด้วย Homebrew
brew install --cask copilot-cli
#4.4 ติดตั้งด้วย Install Script
curl -fsSL https://gh.io/copilot-install | bash
หรือ
wget -qO- https://gh.io/copilot-install | bash
#4.5 ตรวจสอบเวอร์ชัน
copilot version
อัปเดตเป็นเวอร์ชันล่าสุดได้ด้วย
copilot update
#5. การเข้าสู่ระบบ
เริ่มต้นใช้งานแบบ Interactive ด้วยคำสั่ง
copilot
เมื่อเริ่มใช้งานครั้งแรก ให้ใช้ Slash Command ต่อไปนี้ใน Session
/login
หรือเข้าสู่ระบบจากภายนอก Interactive Session ด้วย OAuth
copilot login
บนเครื่อง Local โดยทั่วไปจะเปิด Web Flow ส่วน Remote Terminal หรือ CI สามารถบังคับใช้ Device Code Flow ได้
copilot login --device-code
หากต้องการใช้ Fine-grained Personal Access Token ต้องเปิดสิทธิ์ Copilot Requests และเก็บ Token ผ่าน Environment Variable เช่น COPILOT_GITHUB_TOKEN, GH_TOKEN หรือ GITHUB_TOKEN ตามลำดับความสำคัญที่ GitHub กำหนด
#6. การใช้งานแบบ Interactive
เข้าไปยังโฟลเดอร์ของโปรเจกต์ก่อน
cd my-project
copilot
จากนั้นพิมพ์คำสั่งด้วยภาษาธรรมชาติ เช่น
อธิบายโครงสร้างของโปรเจกต์นี้ และระบุจุดเริ่มต้นของการทำงานของแอป
ตรวจสอบฟังก์ชันการยืนยันตัวตนและเสนอแนวทางปรับปรุงด้านความปลอดภัย
สร้าง Unit Test สำหรับ service ที่เกี่ยวข้องกับการคำนวณราคา พร้อมรัน Test และสรุปผล
ตรวจสอบการเปลี่ยนแปลงในไฟล์ที่แก้ไขทั้งหมด และรายงานความเสี่ยงก่อนสร้าง Commit
#Plan mode
กด Shift + Tab เพื่อสลับโหมดการทำงาน โดย Plan mode ช่วยให้ Copilot วิเคราะห์ขอบเขตงาน ตั้งคำถามที่จำเป็น และสร้างแผนก่อนเขียนโค้ด เหมาะกับงานที่กระทบหลายไฟล์หรือมีความเสี่ยงสูง
ตัวอย่าง Prompt ที่เหมาะกับ Plan mode
วางแผนเพิ่มระบบ Role-Based Access Control ใน Laravel API
ขอให้ตรวจสอบโครงสร้างเดิม ระบุไฟล์ที่จะเปลี่ยน แผนการทดสอบ และความเสี่ยง
ยังไม่ต้องแก้ไขไฟล์จนกว่าจะได้รับการยืนยัน
#7. การอ้างอิงไฟล์และบริบท
ใน Prompt สามารถอ้างอิงไฟล์หรือโฟลเดอร์ด้วยรูปแบบ @ เพื่อช่วยให้ Copilot ใช้บริบทที่ตรงจุดมากขึ้น เช่น
ตรวจสอบ @src/auth/login.ts และ @tests/auth/login.test.ts
เปรียบเทียบ Logic การ Login กับ Test ที่มีอยู่ แล้วเสนอ Test Case ที่ยังขาด
ควรระบุเป้าหมาย ขอบเขต และเกณฑ์การตรวจสอบให้ชัดเจน เช่น
แก้เฉพาะไฟล์ใน src/orders
ห้ามเปลี่ยน Database Schema
ต้องรัน npm test และ npm run lint ให้ผ่าน
สรุปไฟล์ที่เปลี่ยนและเหตุผลท้ายงาน
#8. การใช้งานแบบ Programmatic
ใช้ -p หรือ --prompt เพื่อส่งคำสั่งครั้งเดียว เหมาะกับ Script, CI/CD และ Automation
copilot -p "สรุป Commit ของสัปดาห์นี้" --allow-tool='shell(git)'
ใช้ -s หรือ --silent เพื่อให้แสดงเฉพาะผลลัพธ์ เหมาะกับการนำ Output ไปต่อใน Pipeline
copilot -p "ตรวจสอบไฟล์ package.json และสรุป Dependencies ที่ล้าสมัย" -s
ตัวเลือกที่สำคัญ
| ตัวเลือก | การใช้งาน |
|---|---|
-p PROMPT |
ทำงานแบบ Non-interactive แล้วจบการทำงาน |
-s |
ลดข้อความตกแต่งและแสดงเฉพาะผลลัพธ์ |
--model MODEL |
เลือกโมเดล |
--agent AGENT |
เลือก Custom Agent |
--add-dir DIRECTORY |
เพิ่มโฟลเดอร์ที่อนุญาตให้เข้าถึง |
--allow-tool TOOL |
อนุญาตเฉพาะ Tool ที่กำหนด |
--allow-url URL |
อนุญาตให้เข้าถึง URL หรือ Domain ที่กำหนด |
--available-tools TOOL |
จำกัด Tool ที่มองเห็นได้ |
--deny-tool TOOL |
ปฏิเสธ Tool ที่กำหนด |
--allow-all |
อนุญาตทุกสิทธิ์ ควรใช้ด้วยความระมัดระวังมาก |
ตัวอย่างสำหรับ CI ที่จำกัดสิทธิ์
copilot -p "รัน Test และสรุปเฉพาะผลลัพธ์" \
--allow-tool='shell(npm)' \
--allow-tool='shell(git)' \
--add-dir="$PWD" \
-s
#9. คำสั่ง CLI ที่ควรรู้
| คำสั่ง | จุดประสงค์ |
|---|---|
copilot |
เปิด Interactive UI |
copilot help |
แสดงความช่วยเหลือ |
copilot login |
เข้าสู่ระบบด้วย OAuth |
copilot version |
แสดงเวอร์ชันและตรวจสอบ Update |
copilot update |
ดาวน์โหลดและติดตั้งเวอร์ชันล่าสุด |
copilot init |
เตรียม Custom Instructions ให้ Repository |
copilot config |
อ่านหรือแก้ไขการตั้งค่า |
copilot mcp |
จัดการ MCP Server |
copilot plugin |
จัดการ Plugin และ Marketplace |
copilot skill |
จัดการ Agent Skills |
copilot workflow run |
เรียกใช้ Dynamic Workflow |
copilot --cloud |
เริ่ม Session ใน Cloud Sandbox |
#10. Sandbox และความปลอดภัย
Copilot CLI สามารถอ่านและแก้ไขไฟล์หรือเรียกใช้คำสั่ง Shell ได้ ดังนั้นควรให้สิทธิ์เท่าที่จำเป็น
#Local sandbox
ภายใน Interactive Session ใช้คำสั่งต่อไปนี้เพื่อจำกัดการเข้าถึง Filesystem, Network และความสามารถของระบบ
/sandbox enable
#Cloud sandbox
เริ่ม Session ในสภาพแวดล้อม Cloud ที่แยกออกจากเครื่อง Local ได้ด้วย
copilot --cloud
เหมาะกับงานทดลอง การรันโค้ดที่ไม่ต้องการให้กระทบเครื่องหลัก งานที่ต้องการรักษา Session หรือการทำงานหลายงานแบบแยกสภาพแวดล้อม ทั้งนี้ Cloud Sandbox อาจเป็นฟีเจอร์ Public Preview และมีรายละเอียดที่เปลี่ยนแปลงได้
#แนวทางปฏิบัติที่แนะนำ
- เริ่มจากการให้สิทธิ์แบบจำกัดด้วย
--allow-toolและ--add-dir - ใช้ Plan mode ก่อนงานที่แก้ไขหลายไฟล์
- ตรวจสอบ Diff และ Test Result ทุกครั้งก่อน Commit
- หลีกเลี่ยง
--allow-allใน Repository ที่มีข้อมูลสำคัญ - ไม่ใส่ Secret, Token หรือ Password ลงใน Prompt
- ใช้ Branch แยกสำหรับงานที่มีผลกระทบสูง
- กำหนดคำสั่ง Validation และ Security Scan เป็นส่วนหนึ่งของ Workflow
- ใช้ Sandbox เมื่อต้องทดลองโค้ดที่ไม่แน่ใจพฤติกรรม
#11. MCP, Skills, Agents และ Hooks
Copilot CLI สามารถขยายความสามารถได้หลายชั้น
#MCP Server
ใช้เชื่อมต่อ Database, API, ระบบเอกสาร หรือเครื่องมือภายนอกที่มี MCP Server รองรับ
copilot mcp
ควรอนุญาตเฉพาะ MCP Server ที่เชื่อถือได้ และกำหนดขอบเขตข้อมูลที่เข้าถึงได้
#Custom Agent
สร้าง Agent เฉพาะบทบาท เช่น code-review, qa-engineer หรือ devops-engineer แล้วเรียกใช้แบบ Programmatic
copilot -p "ตรวจสอบ Commit ล่าสุด" --agent code-review
#Skills
Skills คือชุดคำแนะนำ สคริปต์ และทรัพยากรที่ทำให้ Copilot ทำงานเฉพาะทางได้สม่ำเสมอขึ้น เช่น Skill สำหรับการทดสอบ API หรือการสร้าง Kubernetes Manifest
copilot skill
#Hooks
Hooks ช่วยเรียกคำสั่ง Shell ในจุดสำคัญระหว่างการทำงาน เช่น ตรวจสอบ Format, บันทึก Log หรือสแกนช่องโหว่ก่อนยอมรับการเปลี่ยนแปลง
#12. โฟลเดอร์การตั้งค่า
โดยปกติ Copilot CLI เก็บการตั้งค่า Session และการปรับแต่งไว้ที่
~/.copilot
ตัวอย่างรายการสำคัญ ได้แก่
~/.copilot/
├── agents/ # Custom Agent ส่วนตัว
├── copilot-instructions.md # คำแนะนำส่วนตัว
├── extensions/ # Extensions
├── hooks/ # Hook Scripts
├── mcp-config.json # MCP Server Configuration
├── session-state/ # Session และ Workspace Data
├── settings.json # การตั้งค่าส่วนตัว
└── skills/ # Custom Skills
สามารถเปลี่ยนตำแหน่งโฟลเดอร์นี้ด้วย Environment Variable COPILOT_HOME
#13. Workflow แนะนำสำหรับงานพัฒนาซอฟต์แวร์
สำรวจ Repository
↓
กำหนดขอบเขตและเกณฑ์สำเร็จ
↓
ใช้ Plan mode
↓
อนุมัติแผนและให้ Copilot แก้ไข
↓
รัน Test / Lint / Security Scan
↓
ตรวจสอบ Diff
↓
Commit และสร้าง Pull Request
↓
ให้ Copilot Review ซ้ำ
ตัวอย่าง Prompt แบบมีโครงสร้าง
เป้าหมาย: เพิ่ม Endpoint GET /api/orders/{id}
ขอบเขต:
- แก้เฉพาะ Controller, Service และ Test ที่เกี่ยวข้อง
- ห้ามเปลี่ยน Database Schema
ข้อกำหนด:
- ใช้รูปแบบโค้ดเดิมของโปรเจกต์
- ตรวจสอบ Authentication และ Authorization
- เพิ่มกรณีสำเร็จ, ไม่พบข้อมูล และข้อมูลไม่ถูกต้อง
การตรวจสอบ:
- รัน Unit Test
- รัน Integration Test
- รัน Linter
- สรุปไฟล์ที่เปลี่ยนและผลการทดสอบ
#14. เปรียบเทียบ Copilot CLI กับ Copilot ใน IDE
| ประเด็น | Copilot CLI | Copilot ใน IDE |
|---|---|---|
| จุดทำงาน | Terminal | Editor และ Chat Panel |
| งานหลายขั้นตอน | เหมาะมาก | เหมาะกับงานที่อยู่ในบริบทไฟล์ที่เปิด |
| งาน Git และ CI/CD | สะดวก | ทำได้ แต่อาจต้องสลับหน้าจอ |
| การทำงานอัตโนมัติ | รองรับ -p, Script และ Workflow |
มักเน้น Interactive |
| การควบคุมสิทธิ์ | Tool, URL, Path และ Sandbox | ขึ้นกับการตั้งค่าของ IDE |
| การใช้ทรัพยากร | แยกจากกระบวนการของ Editor | ใช้ทรัพยากรร่วมกับ IDE |
| เหมาะกับ | Repo-wide task, Debug, Refactor, Automation | Inline completion และแก้โค้ดเฉพาะจุด |
ทั้งสองรูปแบบสามารถใช้ร่วมกันได้: ใช้ IDE สำหรับดูโค้ดและแก้ไขเล็ก ๆ ส่วน CLI เหมาะกับงานที่ต้องทำต่อเนื่องหลายขั้นตอนหรือทำงานระดับ Repository
#15. สรุป
GitHub Copilot CLI เปลี่ยน Terminal ให้เป็นพื้นที่ทำงานร่วมกับ AI Agent ที่สามารถเข้าใจ Repository, วางแผนงาน, แก้ไขโค้ด, รันทดสอบ และทำงานกับ GitHub ได้ การใช้งานที่มีประสิทธิภาพควรเริ่มจาก Prompt ที่ชัดเจน ใช้ Plan mode กับงานซับซ้อน จำกัดสิทธิ์ของ Tool และตรวจสอบ Diff กับ Test Result ก่อนนำการเปลี่ยนแปลงไปใช้จริง
สำหรับทีมพัฒนา Copilot CLI มีประโยชน์มากเมื่อผสานเข้ากับแนวทาง Engineering ที่มีการตรวจสอบ เช่น Branch Protection, Automated Test, Linting, Security Scan, Code Review และ Pull Request Workflow