- Pi คือ เอเจนต์เขียนโค้ดแบบมินิมอลบนเทอร์มินัล ที่มีโครงสร้างซึ่งขยายต่อได้ตามเวิร์กโฟลว์ของผู้ใช้
- สามารถผสาน ส่วนขยาย TypeScript, skills, เทมเพลตพรอมป์ต์, ธีม เพื่อประกอบเป็นสภาพแวดล้อมการพัฒนาของตนเอง และแชร์เป็น แพ็กเกจ npm หรือ git ได้
- รองรับ ผู้ให้บริการ AI มากกว่า 15 รายและโมเดลหลายร้อยรายการ พร้อมสลับโมเดลระหว่างเซสชันหรือเพิ่มโมเดลแบบกำหนดเองได้
- เซสชันถูกบันทึกเป็น ประวัติแบบโครงสร้างต้นไม้ ทำให้ย้อนกลับไปยังจุดก่อนหน้าได้ หรือส่งออกเป็น HTML·GitHub gist ได้
- ลดฟีเจอร์แกนกลางให้เหลือน้อยที่สุดและยึด แนวคิดการออกแบบที่เน้นการขยายต่อ เพื่อให้นักพัฒนาสร้างเฉพาะความสามารถที่ต้องการเองหรือเพิ่มผ่านแพ็กเกจได้
ภาพรวมของ Pi
- Pi เป็น ฮาร์เนสสำหรับการเขียนโค้ดบนเทอร์มินัล ที่ออกแบบมาให้ผู้ใช้ปรับแต่งเครื่องมือได้โดยไม่ต้องเปลี่ยนเวิร์กโฟลว์
- รองรับองค์ประกอบที่ขยายได้ เช่น ส่วนขยาย TypeScript, skills, เทมเพลตพรอมป์ต์, ธีม
- สามารถติดตั้งและแชร์ แพ็กเกจ pi ที่รวมสิ่งเหล่านี้ไว้ผ่าน npm หรือ git ได้
- การตั้งค่าเริ่มต้นนั้นทรงพลัง แต่ ไม่มีฟีเจอร์อย่าง sub-agent หรือ plan mode มาให้
- มี 4 โหมดให้ใช้ ได้แก่ interactive, print/JSON, RPC และ SDK โดยดูตัวอย่างการผสานใช้งานจริงได้ใน clawdbot
โมเดลและผู้ให้บริการ
- รองรับ ผู้ให้บริการมากกว่า 15 ราย และโมเดลอีกหลายร้อยรายการ เช่น Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama
- ยืนยันตัวตนได้ด้วย API key หรือ OAuth
- สลับโมเดลระหว่างเซสชันได้ด้วยคำสั่ง
/model หรือ Ctrl+L และวนดูโมเดลโปรดด้วย Ctrl+P
- เพิ่มโมเดลแบบกำหนดเองได้ผ่าน models.json หรือส่วนขยาย
การจัดการเซสชัน
- เซสชันจะถูกเก็บในรูปแบบ โครงสร้างต้นไม้ และใช้คำสั่ง
/tree เพื่อย้อนกลับไปยังจุดก่อนหน้าได้
- ทุกกิ่งก้านจะถูกเก็บไว้ในไฟล์เดียว พร้อมรองรับ การกรองตามประเภทข้อความและการติดป้าย bookmark
- ใช้
/export เพื่อส่งออกเป็น HTML และ /share เพื่ออัปโหลดเป็น GitHub gist พร้อมสร้าง URL สำหรับแชร์ได้
วิศวกรรมคอนเท็กซ์
- ควบคุม context window ได้อย่างละเอียดด้วย system prompt ที่น้อยที่สุดเท่าที่จำเป็น และความสามารถในการขยายต่อ
- AGENTS.md: โหลดคำแนะนำของโปรเจกต์อัตโนมัติเมื่อเริ่มต้น
- SYSTEM.md: แทนที่หรือเพิ่ม system prompt เริ่มต้นของแต่ละโปรเจกต์
- Compaction: สรุปข้อความก่อนหน้าโดยอัตโนมัติเมื่อถึงขีดจำกัดของคอนเท็กซ์ และสามารถใช้ส่วนขยายเพื่อทำสรุปตามหัวข้อหรือสรุปที่รับรู้โค้ดได้
- Skills: แพ็กเกจความสามารถที่โหลดเมื่อจำเป็น ช่วยคง prompt cache และเพิ่มฟังก์ชันแบบค่อยเป็นค่อยไป
- Prompt templates: พรอมป์ต์ที่นำกลับมาใช้ซ้ำและขยายได้ผ่านคำสั่ง
/name
- Dynamic context: ใช้ส่วนขยายเพื่อแทรกข้อความ กรองประวัติ ทำ RAG หรือสร้าง long-term memory ได้
การคิวข้อความ
- สามารถส่งข้อความได้แม้ตอนที่เอเจนต์กำลังทำงานอยู่
Enter: steering message ที่จะถูกส่งหลังจากเครื่องมือที่กำลังรันอยู่เสร็จ
Alt+Enter: follow-up message ที่จะถูกส่งหลังงานเสร็จสมบูรณ์
โครงสร้างส่วนขยาย
- Pi ถูกออกแบบโดยเน้น องค์ประกอบพื้นฐาน (Primitives) มากกว่าฟีเจอร์สำเร็จรูป ทำให้ผู้ใช้สร้างฟังก์ชันต่าง ๆ เองได้
- ส่วนขยายอยู่ในรูปโมดูล TypeScript และเข้าถึง เครื่องมือ, คำสั่ง, คีย์ลัด, อีเวนต์, TUI ทั้งหมด ได้
- ตัวอย่างส่วนขยาย: sub-agent, plan mode, permission gate, path protection, การรัน SSH, sandboxing, การผสาน MCP, custom editor, overlay เป็นต้น
- มีแม้แต่ ส่วนขยาย overlay สำหรับเกม ตามตัวอย่างคำว่า “Yes, Doom runs.”
- หากไม่ต้องการลงมือทำเอง ก็เพิ่มความสามารถได้ด้วยการติดตั้ง แพ็กเกจ pi
- มี ตัวอย่างส่วนขยายมากกว่า 50 รายการ เปิดเผยบน GitHub
การจัดการแพ็กเกจ
- สามารถ รวมส่วนขยาย, skills, พรอมป์ต์, ธีมเป็นแพ็กเกจเดียว และติดตั้งจาก npm หรือ git ได้
- ค้นหาและแชร์แพ็กเกจได้ด้วยคำค้นหา npm
pi-package หรือผ่าน ช่อง Discord
โหมดการผสานใช้งาน
- Interactive: สภาพแวดล้อม TUI แบบเต็มรูปแบบ
- Print/JSON:
pi -p "query" สำหรับสคริปต์, --mode json สำหรับ event stream
- RPC: รองรับการผสานในสภาพแวดล้อมที่ไม่ใช่ Node ผ่านโปรโตคอล JSON บน stdin/stdout
- SDK: ฝังใช้งานในแอปพลิเคชันได้ โดยมีตัวอย่างการใช้งานจริงใน clawdbot
ปรัชญาการออกแบบ
- Pi ถูกออกแบบมาเพื่อ ขยายต่อได้สูงสุด โดยทำให้แกนกลางเล็กที่สุดและเปิดให้ผู้ใช้กำหนดเวิร์กโฟลว์เอง
- MCP, sub-agent, permission popup, plan mode, TODO ในตัว, background bash ไม่ได้ถูกรวมมาให้
- แต่สามารถสร้างความสามารถเดียวกันหรือเชื่อมกับเครื่องมือภายนอกได้ผ่านส่วนขยาย, skills และแพ็กเกจ
- รองรับการรันแบบขนานและการสังเกตการณ์ผ่าน tmux
- แนวทางนี้ทำให้สามารถ ประกอบสภาพแวดล้อมการพัฒนาแบบผู้ใช้เป็นผู้กำหนดเอง ได้
- มีคำอธิบายเพิ่มเติมเกี่ยวกับแนวคิดทั้งหมดใน บล็อกโพสต์ ที่เกี่ยวข้อง
2 ความคิดเห็น
ฉันชอบ pi มากเลย
ความคิดเห็นจาก Hacker News
เหตุผลที่ Pi และปรากฏการณ์ “claw” น่าสนใจสำหรับฉัน คือมันแสดงให้เห็นอนาคตของโอเพนซอร์ส
ตอนนี้เราเข้าสู่ยุคที่แทนที่จะส่ง feature request หรือ PR เราจะดาวน์โหลด ไฟล์ skill ที่บอก coding agent ว่าจะเพิ่มฟีเจอร์อย่างไร
ซอฟต์แวร์ไม่ใช่ผลลัพธ์แบบตายตัวอีกต่อไป แต่กลายเป็น เครื่องมือมีชีวิต ที่แตกต่างกันไปในแต่ละผู้ใช้
ฉันสงสัยว่าจะมี tooling แบบไหนเกิดขึ้นภายใต้กระบวนทัศน์ความร่วมมือใหม่นี้
ซอฟต์แวร์ทุกวันนี้ทำให้ผู้ใช้ควบคุมสภาพแวดล้อมของตัวเองไม่ได้ จนเกิดความรู้สึก 疎離/แปลกแยก
แต่ซอฟต์แวร์ที่ปรับให้เหมาะกับแต่ละคนได้ ราคาถูก และยืดหยุ่น สามารถให้ความรู้สึกของ ความเป็นเจ้าของ อย่างแท้จริงได้
เมื่อก่อน Linux desktop เคยมอบอิสรภาพแบบนั้น และตอนนี้ดูเหมือนว่าทุกคนจะได้ประโยชน์นั้นบ้างแล้ว
ฉันมองอนาคตนี้ในแง่ดี
ต่อไปน่าจะมี ซอฟต์แวร์ที่ปรับแต่งเฉพาะบุคคลอย่างสุดขั้ว มากขึ้น — ถึงระดับที่มีแค่คนคนหนึ่งหรือกลุ่มเล็ก ๆ เท่านั้นที่เข้าใจ
ช่วงหลังฉันก็ใช้ Claude สร้างเครื่องมือเยอะมากที่มีแค่ฉันกับคนไม่กี่คนใช้
เช่น แอปจัดตาราง DnD, ตัวเช็กข่าว Formula E แบบไร้สปอยล์, เว็บไซต์โหวตของสหกรณ์ปีนหน้าผา
เมื่อก่อนมันไม่มีเหตุผลพอจะสร้างสิ่งพวกนี้ แต่ตอนนี้ทำได้แล้ว
ฉันเขียนเรื่องนี้ไว้ที่ Releasing Software Now
บริษัทใหญ่หรือรัฐบาลคงไม่ยอมให้มีระบบที่ไม่สม่ำเสมอแบบนี้
กลับกัน ฉันคิดว่าน่าจะได้ เครื่องมือที่แย่ลง มากกว่า
ฉันคุ้นกับ OpenCode เลยกำลังคิดว่าจะลองใช้เป็น AI workspace ส่วนตัวดีไหม
Pi มี ecosystem เล็กกว่า แต่ดูมี ความยืดหยุ่นและการขยายต่อ มากกว่า และยังรู้สึกได้ถึงความกระตือรือร้นของชุมชนด้วย
เลยสงสัยว่าการใช้ Pi แทน OpenCode จะดีกว่าไหม และมี ตัวเลือก UI อะไรบ้าง
ฉันลองใช้ OpenCode กับไฟล์ .md เพื่อเขียนและจัดระเบียบข้อมูล ซึ่งมันเข้ากันได้ดีพอสมควร
ตอนนี้เลยกำลังมองหา harness แบบใหม่ ที่เหมาะกับงานนี้มากกว่า
นี่คือ harness ที่ฉันชอบที่สุดในช่วงนี้
มันต่อขยายเองได้ จึงมีประสิทธิภาพสูง และฉันก็รวมมันเข้าไปใน โปรเจ็กต์ vibes แล้ว
มันเร็วกว่า ACP มาก
ฉันกำลังมองหาโปรโตคอลโต้ตอบกับ agent แบบทั่วไป และ ACP ก็เคยเป็นตัวเลือกนั้น
แต่พอเห็นว่าแม้แต่ OpenCode เองก็ไม่ใช้ ACP ใน UI ก็ดูเหมือนว่ามันน่าจะมีปัญหาบางอย่าง
เลยอยากรู้ว่ามีตัวเลือกอื่นที่ดีกว่าสำหรับใช้แทนไหม
ฉันยังไม่เคยเห็นใครที่ลองใช้ Pi แค่ไม่กี่วันแล้ว ไม่ใช้มันในชีวิตประจำวัน
พอได้ลิ้มรสอิสระในการตั้งค่าเครื่องมือให้ตรงใจตัวเองแล้ว มันยากที่จะย้อนกลับไป
แถมยังสร้างส่วนขยายเจ๋ง ๆ บนมันได้อีกด้วย
ความสามารถในการขยายของ Pi น่าสนใจ แต่คุณภาพของงานจริงยังไม่พอ
ฉันไม่เข้าใจว่าทำไมต้องเขียนโค้ดผ่าน แอปในเทอร์มินัล ด้วย
ถ้าทำเป็นส่วนขยาย IDE ก็น่าจะทำสิ่งเดียวกันได้ดีกว่า และใน VSCode ก็คืน layout ของหน้าต่างได้เหมือนกัน
มันเหมือนกับ สั่งงานเพื่อนร่วมทีมผ่านแชตข้อความ
อย่างเช่น ฉันโยนงานโปรแกรมบำรุงรักษาเซิร์ฟเวอร์ให้ Claude ทำ แล้วไปทำอย่างอื่นก่อนค่อยกลับมาดูผล
ถ้าเทสต์ผ่านแล้ว โค้ดหน้าตาเป็นอย่างไรก็ไม่สำคัญ
ในทางปฏิบัติ ฉันทำงานหลายอย่างคู่กันได้โดยใช้เวลาแบบ active แค่ราว 15 นาที
ฉันใช้ Pi ผ่าน แพ็กเกจ pi-coding-agent สำหรับ Emacs
ในโหมด RPC มันสร้าง Markdown buffer สำหรับรับเข้า/ส่งออก ทำให้ใช้งานสบายกว่า TUI อื่นมาก
ฉันเชื่อมกับ issue tracker ได้ง่าย และนิยามคำสั่ง
readกับwriteใหม่ให้ทำงานบนพื้นฐานของ Emacs bufferฉันยังอยากลองปรับปรุงคำสั่ง
editโดยใช้ tree-sitter query ของ Emacs ด้วยและยังเปิดให้สำรวจเอกสารผ่าน EWW ได้ด้วยคำสั่ง
emacs_evalreadกับwriteเข้ากับ Emacs buffer อย่างไรอนึ่ง โหมด Pi สำหรับ Emacs ติดตั้งได้ที่นี่
ตอนนี้กำลังเพิ่มฟีเจอร์ให้เปิดไฟล์ที่เกี่ยวข้องได้ทันทีจากผลลัพธ์ของการเรียก
read,write,editและอีกไม่นานจะรองรับการท่อง session กับ tree ของ Pi รวมถึง การเชื่อมกับ Magit ด้วย
ฉันเริ่มจาก Pi แล้วในช่วง 2 สัปดาห์ที่ผ่านมาใช้ oh-my-pi อยู่
repo ของ oh-my-pi คือ Pi เวอร์ชัน จัดเต็มพร้อมใช้
ฉันเองก็อยากโคลนโปรเจ็กต์เดิมแล้วปล่อยใหม่ในชื่ออื่นเหมือนกัน
เช่น “Waterfox — ผู้บริโภคเว็บแบบมินิมอล” อะไรทำนองนั้น
Pi เวอร์ชันที่ตั้งค่ามาให้แล้ว: oh-my-pi
น่าจะต้องมี สภาพแวดล้อมแยก ที่ติดตั้งและทดสอบได้อย่างปลอดภัยเหมือนแอป
ฉันย้ายจาก codex/claude code → opencode → pi → oh-my-pi
สักวันหนึ่งฉันคงลองทำเอง
เสน่ห์ของ Pi คือ ความเบาและความเป็นอิสระ แต่ oh-my-pi มีฟีเจอร์เยอะจนให้ความรู้สึก หนักคล้าย OpenCode แทน
Pi มี การตัดสินใจด้านการออกแบบ ที่ยอดเยี่ยมจริง ๆ
ขอชื่นชม Mario กับ Armin — คนที่มีรสนิยมดีสุดท้ายก็แสดงออกมาเอง