- เป็นเครื่องมือที่สามารถ ควบคุม Google Workspace API ทั้งหมดผ่าน CLI เดียว ได้ โดยรองรับ Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin และอื่น ๆ
- สร้างโครงคำสั่งแบบไดนามิกขณะรันไทม์โดยอิงจาก Google Discovery Service ทำให้เมื่อมี API ใหม่เพิ่มเข้ามาจะถูกสะท้อนโดยอัตโนมัติ
- มี สกิลสำหรับ AI agent มากกว่า 100 รายการ และรองรับการผสานกับ LLM ผ่านเอาต์พุต JSON แบบมีโครงสร้าง
- มีวิธีการยืนยันตัวตนหลายแบบ เช่น OAuth, Service Account และสภาพแวดล้อม CI พร้อมรองรับฟีเจอร์ความปลอดภัยของการตอบกลับผ่าน Model Armor
- เป็น CLI ที่เน้นระบบอัตโนมัติสำหรับทั้งมนุษย์และ AI ช่วยเพิ่มประสิทธิภาพด้าน การจัดการแบบรวมศูนย์และการทำงานอัตโนมัติ ในระบบนิเวศ Google Workspace
ภาพรวม
gws คือ CLI แบบรวมศูนย์สำหรับ Google Workspace โดยเฉพาะ ทำให้สามารถเรียกใช้ API ทั้งหมดของ Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin และอื่น ๆ ได้จากบรรทัดคำสั่งเดียว
- สร้างโครงคำสั่งอัตโนมัติผ่าน Google Discovery Service และเมื่อมี API endpoint ใหม่เพิ่มเข้ามาจะสะท้อนให้ใช้งานได้ทันที
- เอาต์พุตทั้งหมดอยู่ในรูปแบบ JSON แบบมีโครงสร้าง จึงเชื่อมต่อกับ AI agent หรือสคริปต์อัตโนมัติได้สะดวก
- โปรเจกต์นี้ยังอยู่ระหว่าง การพัฒนาอย่างต่อเนื่อง และก่อนถึง v1.0 อาจมีการเปลี่ยนแปลงสำคัญได้
ฟีเจอร์หลัก
- มีความสามารถแบบ CLI ที่เป็นมิตรกับผู้ใช้ เช่น tab completion, --help, --dry-run, การแบ่งหน้าข้อมูลอัตโนมัติ
- มีสกิลที่อิงจาก
SKILL.md มากกว่า 100 รายการเพื่อ การผสานกับ AI agent
- รวมสูตรขั้นสูงมากกว่า 50 รายการสำหรับบริการหลัก เช่น Gmail, Drive, Docs, Calendar และ Sheets
- เมื่อติดตั้ง Gemini CLI extension แล้ว Gemini agent จะสามารถเรียกใช้คำสั่ง
gws และสกิลได้โดยตรง
- ผ่านโหมด MCP (Model Context Protocol) server สามารถเปิดเผย Workspace API เป็นเครื่องมือให้ใช้งานใน Claude Desktop, Gemini CLI, VS Code และอื่น ๆ ได้
วิธีการยืนยันตัวตน
- การยืนยันตัวตนแบบโต้ตอบบนเครื่อง: เก็บข้อมูลรับรองที่เข้ารหัสด้วย AES-256-GCM ไว้ใน keyring ของระบบปฏิบัติการ
- การตั้งค่า OAuth แบบแมนนวล: สามารถสร้าง client ได้โดยตรงจาก Google Cloud Console
- การยืนยันตัวตนผ่านเบราว์เซอร์หรือ agent ช่วยเหลือ: อนุมัติ OAuth ได้ทั้งแบบแมนนวลและอัตโนมัติ
- การยืนยันตัวตนสำหรับสภาพแวดล้อม CI/เซิร์ฟเวอร์: ส่งออกข้อมูลรับรองด้วย
gws auth export และกำหนดผ่านตัวแปรสภาพแวดล้อม
- รองรับ Service Account และโทเคนที่ออกไว้ล่วงหน้า โดยลำดับความสำคัญคือ โทเคน > ไฟล์ข้อมูลรับรอง > ค่าที่เก็บใน keyring
AI Agent Skills
- สกิลมากกว่า 100 รายการ ที่รวมอยู่ในที่เก็บโค้ดช่วยทำงานอัตโนมัติให้แต่ละ API และเวิร์กโฟลว์ทั่วไป
- สามารถติดตั้งสกิลทั้งหมดหรือบางรายการได้ด้วยคำสั่ง
npx skills add
- ในสภาพแวดล้อม OpenClaw สามารถซิงก์สกิลได้ด้วย symbolic link หรือการคัดลอก
- สกิล
gws-shared มีความสามารถติดตั้ง CLI ให้อัตโนมัติเมื่อยังไม่ได้ติดตั้ง
Gemini CLI extension
- ติดตั้งได้ด้วยคำสั่ง
gemini extensions install https://github.com/googleworkspace/cli
- หลังติดตั้งแล้ว Gemini CLI agent จะเรียกใช้คำสั่ง
gws และสกิลได้โดยตรง
- สามารถสืบทอดข้อมูลการยืนยันตัวตนของ
gws โดยอัตโนมัติ ทำให้ใช้งานได้โดยไม่ต้องล็อกอินแยก
ความสามารถของ MCP server
- ใช้คำสั่ง
gws mcp เพื่อรัน MCP server และเปิดเผย Workspace API ให้กับไคลเอนต์ที่รองรับ MCP
- ตัวอย่าง:
gws mcp -s drive,gmail,calendar
- แต่ละบริการจะเพิ่มเครื่องมือ 10–80 รายการ และสามารถเลือกให้เหมาะกับข้อจำกัดจำนวนเครื่องมือของไคลเอนต์ (50–100 รายการ)
- ใช้แฟล็ก
--workflows, --helpers เพื่อเปิดเผยเครื่องมือเวิร์กโฟลว์และเครื่องมือช่วยเหลือได้
ฟีเจอร์ขั้นสูง
- Multipart upload: อัปโหลดไฟล์และสร้างเมทาดาทาพร้อมกัน
- การควบคุม pagination: มีตัวเลือก
--page-all, --page-limit, --page-delay
- การผสานกับ Model Armor: สแกนการตอบกลับจาก API เพื่อป้องกัน prompt injection
- ควบคุมได้ผ่านตัวแปรสภาพแวดล้อม
GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE, GOOGLE_WORKSPACE_CLI_SANITIZE_MODE
สถาปัตยกรรม
- ทำงานด้วย โครงสร้างการแยกวิเคราะห์ 2 ขั้นตอน
- ระบุบริการจากอาร์กิวเมนต์ตัวแรก
- ดึงเอกสาร Discovery (แคช 24 ชั่วโมง)
- สร้าง tree ของ
clap::Command
- แยกวิเคราะห์อาร์กิวเมนต์อีกครั้งและทำการยืนยันตัวตน
- ส่งคำขอ HTTP
- ผลลัพธ์ทั้งหมด (ความสำเร็จ, ข้อผิดพลาด, เมทาดาทา) จะถูกส่งออกในรูปแบบ JSON แบบมีโครงสร้าง
การแก้ปัญหา
- หาก API ยังไม่ถูกเปิดใช้งาน จะเกิดข้อผิดพลาด
accessNotConfigured
- คลิกลิงก์ในฟิลด์
enable_url เพื่อเปิดใช้งาน API แล้วลองใหม่อีกครั้ง
- สามารถใช้คำสั่ง
gws auth setup เพื่อเปิดใช้งาน API ที่จำเป็นโดยอัตโนมัติ
การพัฒนาและการเผยแพร่
- ใบอนุญาต Apache-2.0 ใช้ Rust (99.5%)
- ไม่ใช่ผลิตภัณฑ์ทางการของ Google และเป็น โปรเจกต์โอเพนซอร์สที่ไม่เป็นทางการ
2 ความคิดเห็น
แนวทางที่แตกต่างจาก
gogคือมันสร้างคำสั่งขึ้นมาแบบไดนามิกสำหรับทุก API ของ Google ซึ่งถือว่าเป็นวิธีที่น่าสนใจมากผู้พัฒนาคือ Justin Poehnelt และเป็น DevRel ของ Google Workspace ด้วย เลยยิ่งทำให้น่าเชื่อถือครับ
ความคิดเห็นจาก Hacker News
ในโลกของ AI และ MCPs ดูเหมือนจู่ ๆ บริษัทต่าง ๆ ก็เริ่มขยับมาสร้าง เครื่องมือ API/CLI ที่ใช้งานได้จริงกันมากขึ้น
ดูเหมือนว่านี่จะเป็น เวอร์ชัน CLI ของ Workspace Studio
น่ายินดีที่เห็น Google ขยับไปในทิศทางที่สอดคล้องกับวิธีที่นักพัฒนาต้องการใช้งานแอปจริง ๆ
คิดว่าดีกว่า Google dashboard หรือไลบรารี third-party ที่ทำแบบลวก ๆ มาก
แม้ Google จะบอกว่าไม่ใช่การสนับสนุนอย่างเป็นทางการ แต่ก็น่าจะได้รับการดูแลจากภายในดีกว่าของภายนอก
GCP Next มีกำหนดจัดในวันที่ 22–24 เมษายน
หวังว่าโปรเจ็กต์นี้จะยังคงถูกดูแลต่อหลังจากนั้น
สงสัยว่าทำไมถึงใช้
npmเพื่อติดตั้งไบนารีrustช่วงนี้พวก agent skills ต้องการ CLI กันพอดี ก็หวังว่ากระแสแบบนี้จะกลายเป็นเทรนด์
นึกภาพออกเลยว่า CTO ทุกคนกำลังตื่นตัวจะเอาสิ่งนี้ไปเชื่อมกับ อินสแตนซ์ OpenClaw ของตัวเอง
การที่คำสั่งที่ใช้งานได้เปลี่ยนแบบไดนามิกดูเป็น anti-pattern แต่ถ้าเป็น AI อาจจัดการเรื่องนั้นได้
อยากให้ Apple ใช้วิธีเดียวกันกับ iCloud บ้าง
น่าสนใจแต่ก็น่ากลัวนิดหน่อย ถ้านี่ไม่ใช่ผลิตภัณฑ์ทางการของ Google ก็อาจเข้าข่าย ละเมิด TOS ได้