การติดตั้งและการใช้งาน
ฟีเจอร์
การควบคุมระยะไกล
- ดำเนินเซสชันต่อจากเบราว์เซอร์ด้วยข้อความหรือไฟล์แนบรูปภาพ
- เริ่มต้นเซสชันใหม่บนพาธโปรเจกต์ใดๆ ได้โดยตรงจาก UI บนเว็บ
- สลับโมเดลและเลือกระดับการคิดในเบราว์เซอร์ ต่อเซสชัน
- สถานะ worker ต่อเซสชัน (idle / running / error) พร้อมกู้คืนอัตโนมัติเมื่อเกิดการขัดข้อง
- หลายเซสชันทำงานพร้อมกัน — เริ่มงานในเซสชันหนึ่ง ดูสตรีมอีกเซสชันหนึ่ง
PI_WEB_TOKENสำหรับการเปิดเผยใน LAN อย่างปลอดภัย — จำเป็นตามค่าเริ่มต้นสำหรับการ bind ที่ไม่ใช่ loopback อย่างชัดแจ้ง
การอ่านเซสชัน
- เรียกดูเซสชันข้ามโปรเจกต์ด้วยตัวกรอง การค้นหา และการนำทาง branch แบบเต็ม
- อัปเดตแบบเพิ่มหน่วยแบบสดในขณะที่ pi กำลังทำงาน (ผ่าน fsnotify; ความหน่วง ~ms)
- โหมดติดตามสำหรับการ tail เซสชันที่กำลังทำงานอยู่
- ลิงก์ลึกไปยังข้อความแต่ละข้อความ
- ดาวน์โหลดเซสชันเป็น JSONL
- แชร์สแนปชอตแบบคงที่เป็น secret GitHub Gists
- ส่วนขยาย pi
/web,/remote,/refresh,/pi-web tokenและ/pi-web set-tokenสำหรับการเปิดเซสชัน, QR ระยะไกล, การซิงค์เซสชัน และการจัดการโทเค็น
ข้อกำหนด
- Go 1.25+
piอยู่ในPATHของคุณสำหรับการแชทในเบราว์เซอร์/การสลับโมเดล- ตัวเลือก:
ghสำหรับการแชร์
การติดตั้ง
แพ็กเกจ Pi (แนะนำ)
pi install npm:@ygncode/pi-web@betaคำสั่งเดียวนี้:
- ติดตั้งแพ็กเกจ npm pi ภายใต้ไดเรกทอรีแพ็กเกจของ pi
- รันสคริปต์
postinstallของแพ็กเกจ (bash install.sh) - ดาวน์โหลดไบนารี pi-web ที่ตรงกับเวอร์ชันแพ็กเกจและแพลตฟอร์มของคุณจาก GitHub Releases
- ติดตั้งไปที่
~/.pi/agent/bin/pi-web - ตั้งค่าการเริ่มต้นอัตโนมัติเมื่อเข้าสู่ระบบ (launchd บน macOS, systemd บน Linux)
- ลงทะเบียนคำสั่ง pi
/web,/remote,/refresh,/pi-web tokenและ/pi-web set-token
การตั้งชื่อเซสชันอัตโนมัติมีอยู่ใน pi-web (ไม่ใช่ส่วนขยาย) และกำหนดค่าบนหน้า /settings เปิดใช้งานตามค่าเริ่มต้น: pi-web ตั้งชื่อเซสชันโดยอัตโนมัติโดยใช้ฮิวริสติกคำในตัวฟรี (ไม่มี AI) เปลี่ยนชื่อทุกครั้งที่มีข้อความใหม่ คุณสามารถเปลี่ยนเป็นการตั้งชื่อครั้งเดียวต่อเซสชัน และ/หรือเลือกโมเดลเพื่อเขียนชื่อที่ฉลาดกว่าแทนฮิวริสติก
บน Linux การเริ่มต้นอัตโนมัติถูกกำหนดค่าเป็นบริการ systemd ผู้ใช้ที่ ~/.config/systemd/user/pi-web.service ตัวติดตั้งจะเขียน ExecStart ใหม่ให้เป็นพาธไบนารีที่ติดตั้งจริง หาก Tailscale พร้อมใช้งานขณะรันไทม์ pi-web จะเผยแพร่เซิร์ฟเวอร์ localhost ด้วย Tailscale Serve HTTPS หาก systemd ผู้ใช้ไม่พร้อมใช้งาน ให้รันด้วยตนเองด้วย ~/.pi/agent/bin/pi-web -o
เพื่อติดตั้งเฉพาะสำหรับโปรเจกต์ใดโปรเจกต์หนึ่ง (แชร์กับทีมของคุณผ่าน .pi/settings.json):
pi install -l npm:@ygncode/pi-web@betaจากนั้นเริ่ม pi ใหม่ (หรือรัน /reload) และใช้ /web, /pi-web, /remote, /refresh จัดการโทเค็นการเข้าถึงของคุณด้วย /pi-web token และ /pi-web set-token
หาก npm ยกเลิกด้วย ENOTEMPTY ขณะเปลี่ยนชื่อ @ygncode/pi-web ให้ลบไดเรกทอรีสำรองที่ซ่อนอยู่ที่ค้างของ npm และติดตั้งช่อง beta ใหม่:
rm -rf ~/.pi/agent/npm/node_modules/@ygncode/.pi-web-*
pi install npm:@ygncode/pi-web@betaติดตั้งด่วน (ไม่ต้องใช้เครื่องมือ build)
curl -fsSL https://raw.githubusercontent.com/ygncode/pi-web/main/install.sh | bashสิ่งนี้ดาวน์โหลดไบนารี pi-web ล่าสุด ติดตั้งไปที่ /usr/local/bin และตั้งค่าการเริ่มต้นอัตโนมัติเมื่อเข้าสู่ระบบ ไม่ต้องใช้ Go, Node หรือ pi
ดาวน์โหลดไบนารี
ไบนารีที่ build แล้วแนบอยู่ในแต่ละ GitHub Release
# macOS (Apple Silicon)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-darwin-arm64
chmod +x pi-web
# macOS (Intel)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-darwin-amd64
chmod +x pi-web
# Linux (amd64)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-linux-amd64
chmod +x pi-web
# Linux (arm64)
curl -L -o pi-web https://github.com/ygncode/pi-web/releases/latest/download/pi-web-linux-arm64
chmod +x pi-webจากนั้นย้ายไปยัง PATH ของคุณ:
cp pi-web ~/.pi/agent/bin/
# หรือทั้งระบบ:
sudo cp pi-web /usr/local/bin/Build จากซอร์ส
git clone https://github.com/ygncode/pi-web.git
cd pi-web
make build # build Vite bundle แล้วฝังลงใน Go binary
# ตัวเลือก: วางไว้ใน PATH
cp pi-web ~/.pi/agent/bin/frontend bundle ถูกฝังโดย web/assets_embed.go ดังนั้น go build จำเป็นต้องมี web/dist อยู่ก่อน make build ทำทั้งสองขั้นตอนตามลำดับ หากคุณ build ด้วยตนเอง ให้รัน npm --prefix web install && npm --prefix web run build ก่อน go build ./cmd/pi-web
การถอนการติดตั้ง
pi remove npm:@ygncode/pi-web@betaสิ่งนี้รันสคริปต์ preuninstall ของแพ็กเกจ (bash uninstall.sh) ซึ่งหยุด อินสแตนซ์ที่กำลังทำงานและลบ:
- ไบนารี pi-web (
~/.pi/agent/bin/pi-webหรือ/usr/local/bin/pi-webสำหรับการติดตั้งแบบสแตนด์อโลน) - ไฟล์เวอร์ชัน (
~/.pi/agent/pi-web-version) - ไฟล์สถานะรันไทม์ (
~/.pi/agent/pi-web/pi-web-state.json) - การกำหนดค่าการเริ่มต้นอัตโนมัติ (launchd plist บน macOS, บริการ systemd ผู้ใช้บน Linux)
ข้อมูลของคุณถูกเก็บไว้เพื่อให้การติดตั้งใหม่ในภายหลังดำเนินต่อจากจุดที่คุณค้างไว้: ~/.pi/agent/pi-web.sqlite, ~/.pi/agent/pi-web-memory.sqlite, ไฟล์เซสชัน ของคุณภายใต้ ~/.pi/agent/sessions/ และ ~/.config/pi-web/env (รวมถึง PI_WEB_TOKEN) ลบสิ่งเหล่านั้นด้วยตนเองหากคุณต้องการเริ่มต้นใหม่ทั้งหมด
การใช้งาน
# เริ่มต้นบนพอร์ตเริ่มต้น (31415)
pi-web
# เริ่มต้นและเปิดเบราว์เซอร์
pi-web -o
# พอร์ตกำหนดเอง
pi-web -p 8080
# แทนที่โฮสต์ bind (loopback ไม่ต้องรับรองตัวตนตามค่าเริ่มต้น)
pi-web --host 127.0.0.1
# การ bind ที่ไม่ใช่ loopback ต้องใช้โทเค็น — pi-web ปฏิเสธที่จะเริ่มต้นหากไม่มี
PI_WEB_TOKEN=$(openssl rand -hex 16) pi-web --host 192.168.1.50ตามค่าเริ่มต้น pi-web bind ไปที่ 127.0.0.1 หาก Tailscale กำลังทำงานด้วย MagicDNS pi-web จะรัน tailscale serve --bg --https=<port> http://127.0.0.1:<port> และพิมพ์ URL tailnet HTTPS การ bind ที่ไม่ใช่ loopback อย่างชัดแจ้งใดๆ ต้องการให้ตั้งค่า PI_WEB_TOKEN ส่ง --insecure เพื่อแทนที่สำหรับการทดสอบในเครื่อง
การเข้าถึงระยะไกล
ปล่อยให้ pi-web รับฟังในเครื่อง จากนั้นใช้ URL Tailscale HTTPS ที่พิมพ์จากโทรศัพท์หรือแล็ปท็อปของคุณบน tailnet
บน Linux อนุญาตให้ผู้ใช้ของคุณจัดการ Tailscale ก่อนติดตั้ง/รัน pi-web มิฉะนั้น tailscale serve อาจต้องใช้ sudo และการเริ่มต้นอัตโนมัติอาจล้มเหลว:
sudo tailscale set --operator=$USER# 1. เริ่มต้น pi-web
pi-web
# 2. จากอุปกรณ์อื่นที่เชื่อมต่อ Tailscale เปิด URL
# "Tailscale HTTPS" ที่พิมพ์ออกมาตามค่าเริ่มต้น pi-web ปฏิเสธที่จะ bind ไปยังที่อยู่ที่ไม่ใช่ loopback เว้นแต่จะตั้งค่า
PI_WEB_TOKEN— ใครก็ตามที่สามารถเข้าถึงที่อยู่ที่ bind ไว้สามารถดูเซสชันและส่งคำสั่งไปยัง pi ได้ หากต้องการแทนที่การป้องกันนี้สำหรับการทดสอบเครือข่ายท้องถิ่น ให้ส่ง--insecureอย่าใช้--insecureบน Tailscale หรือที่อยู่ใดๆ ที่เข้าถึงได้จากภายนอกเครื่องของคุณไคลเอนต์สามารถส่งโทเค็นผ่านส่วนหัว
Authorization: Bearer <token>, ส่วนหัวX-Pi-Tokenหรือครั้งเดียวผ่าน?token=<token>(ซึ่งตั้งค่า cookiepi_tokenสำหรับคำขอถัดไป) โทเค็นที่ส่งผ่าน?token=จะปรากฏในประวัติเบราว์เซอร์ บันทึกการเข้าถึงของเซิร์ฟเวอร์ และส่วนหัวRefererจากลิงก์ใดๆ บนหน้า — ควรใช้รูปแบบส่วนหัวสำหรับสิ่งอื่นนอกเหนือจากบุ๊กมาร์กเริ่มต้น
การแชทในเบราว์เซอร์
เปิดหน้าเซสชันและใช้คอมโพเซอร์ที่ด้านล่างเพื่อดำเนินเซสชันนั้นต่อ
Enterส่ง,Shift+Enterแทรกบรรทัดใหม่- ลากและวางหรือวางรูปภาพโดยตรงลงในคอมโพเซอร์
- ตัวเลือกโมเดลและตัวเลือกระดับการคิดอยู่ที่ส่วนหัว — การเปลี่ยนแปลงจะมีผลกับ worker pi พื้นฐานทันที
- แต่ละเซสชันที่ทำงานอยู่ได้รับ worker
pi --mode rpcเฉพาะของตัวเอง ดังนั้นเซสชันต่างๆ จึงไม่บล็อกกัน
การแชร์เซสชัน
คลิก Share บนหน้าเซสชันเพื่อสร้าง secret GitHub Gist
ข้อกำหนด:
- ติดตั้ง
ghแล้ว - ทำ
gh auth loginเสร็จสิ้นแล้ว
การแชร์ส่งคืน:
- URL gist ลับ
- URL ตัวอย่างที่
https://pi.dev/session/#<gistId>
gist ที่แชร์เป็นสแนปชอตและไม่มีการอัปเดตแบบสด
การเริ่มต้นอัตโนมัติเมื่อเข้าสู่ระบบ
macOS
cp init/com.pi-web.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.pi-web.plistLinux (systemd)
# ติดตั้งบริการ systemd ผู้ใช้
mkdir -p ~/.config/systemd/user
cp init/pi-web.service ~/.config/systemd/user/
# ตัวเลือก: ตั้งค่า PI_WEB_TOKEN ของคุณสำหรับการ bind ที่ไม่ใช่ loopback
# (หรือใช้ /pi-web set-token <token> จากภายใน pi)
mkdir -p ~/.config/pi-web
echo 'PI_WEB_TOKEN=your-token-here' > ~/.config/pi-web/env
# เปิดใช้งานและเริ่มต้น
systemctl --user daemon-reload
systemctl --user enable --now pi-web.service
# ตรวจสอบสถานะ
systemctl --user status pi-web.service
# ดูบันทึก
journalctl --user -u pi-web.service -fเพื่อให้บริการเริ่มต้นตอนบูต (ก่อนเข้าสู่ระบบ) ให้ใช้บริการ system แทน: คัดลอก
init/pi-web.serviceไปที่/etc/systemd/system/และใช้sudo systemctl