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 ระบุข้อกำหนดหลักดังนี้

  1. มี GitHub Copilot subscription ที่ใช้งานได้
  2. หากใช้งานผ่าน Organization หรือ Enterprise ผู้ดูแลต้องเปิดใช้นโยบาย Copilot CLI
  3. บน Windows ต้องใช้ PowerShell 6 ขึ้นไป
  4. หากติดตั้งผ่าน 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 และมีรายละเอียดที่เปลี่ยนแปลงได้

#แนวทางปฏิบัติที่แนะนำ

  1. เริ่มจากการให้สิทธิ์แบบจำกัดด้วย --allow-tool และ --add-dir
  2. ใช้ Plan mode ก่อนงานที่แก้ไขหลายไฟล์
  3. ตรวจสอบ Diff และ Test Result ทุกครั้งก่อน Commit
  4. หลีกเลี่ยง --allow-all ใน Repository ที่มีข้อมูลสำคัญ
  5. ไม่ใส่ Secret, Token หรือ Password ลงใน Prompt
  6. ใช้ Branch แยกสำหรับงานที่มีผลกระทบสูง
  7. กำหนดคำสั่ง Validation และ Security Scan เป็นส่วนหนึ่งของ Workflow
  8. ใช้ 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

#แหล่งอ้างอิง