Platforms overview
แอป Linux
Gateway รองรับ Linux อย่างเต็มรูปแบบและต้องใช้ Node โดยยังสามารถใช้ Bun
เป็นตัวติดตั้งการพึ่งพาหรือตัวเรียกใช้สคริปต์แพ็กเกจได้ แต่ไม่สามารถใช้รัน OpenClaw
ได้ เนื่องจากไม่มี node:sqlite
แอปเดสก์ท็อปคู่หู
แอปคู่หู OpenClaw สำหรับ Linux เป็นแอปเดสก์ท็อป Tauri สำหรับ Gateway ภายในเครื่อง โดยแอปจะ:
- ติดตั้ง OpenClaw CLI และรันไทม์ Node ที่มีการจัดการเมื่อยังไม่มี โดยบิลด์รุ่นเผยแพร่จะติดตั้งช่องทางเสถียรโดยอัตโนมัติ ส่วนบิลด์สำหรับการพัฒนาจะถามช่องทางก่อน
- เชื่อมต่อกับ Gateway ที่ทำงานสมบูรณ์ก่อนพยายามเปลี่ยนแปลงบริการ
- มอบหมายการติดตั้ง การเริ่ม หยุด และรีสตาร์ตให้บริการผู้ใช้ systemd ที่ CLI จัดการ
- ค้นหา Gateway ที่อยู่ใกล้เคียงผ่าน Bonjour และเปิด UI ควบคุมของแต่ละรายการในหน้าต่างที่กำหนดขอบเขตตามเส้นทาง เพื่อให้แดชบอร์ด Gateway หลายรายการเชื่อมต่อและใช้งานพร้อมกันได้
- เปิด UI ควบคุมที่ Gateway ให้บริการด้วย URL การยืนยันตัวตนที่แก้ไขแล้ว
- เปิด UI ควบคุมในโหมดเริ่มต้นใช้งานหลังจากติดตั้งในการเรียกใช้ครั้งแรก ซึ่ง เสนอให้นำเข้าหน่วยความจำ Claude Code, Codex หรือ Hermes ที่ตรวจพบไปยัง พื้นที่ทำงานของเอเจนต์ (การนำเข้าเดียวกันนี้ยังใช้งานได้ภายหลังที่ การตั้งค่า → นำเข้าหน่วยความจำ)
- เรนเดอร์ Canvas ที่เอเจนต์ควบคุมและเนื้อหา A2UI ที่รวมมาให้สำหรับโฮสต์ Node ของ CLI ที่อยู่ร่วมกัน
- ยังคงใช้งานได้จากถาดระบบเมื่อปิดหน้าต่าง
รุ่นเสถียรที่สร้างจาก main จะจัดส่งชุด .deb และ AppImage เป็นแอสเซ็ตใน
รุ่นเผยแพร่บน GitHub สำหรับแท็กนั้น
โดยใช้ชื่อ OpenClaw-<version>-amd64.deb และ OpenClaw-<version>-amd64.AppImage
พร้อมไฟล์เช็กซัม SHA256SUMS.linux-app.txt อยู่ข้างกัน ดาวน์โหลด
.deb และติดตั้งด้วย sudo apt install ./OpenClaw-<version>-amd64.deb
หรือกำหนดให้ AppImage เรียกใช้งานได้แล้วรันโดยตรง รันไทม์ AppImage
ต้องใช้ FUSE 2 (sudo apt install libfuse2 หรือ libfuse2t64 บน Ubuntu 24.04+);
หากไม่มี ให้รัน AppImage ด้วย APPIMAGE_EXTRACT_AND_RUN=1
คุณยังสามารถสร้างชุดเดียวกันจากเช็กเอาต์ซอร์สได้:
cd apps/linux/src-tauripnpm dlx @tauri-apps/cli@2.11.4 build --bundles deb,appimageเวิร์กโฟลว์ CI Linux App จะอัปโหลดชุดเดียวกันเป็นอาร์ติแฟกต์
openclaw-linux-companion สำหรับ pull request ที่แก้ไขแอปและสำหรับ
การเรียกใช้ด้วยตนเอง ดูการพึ่งพาสำหรับบิลด์ Linux
และคำสั่งสำหรับการพัฒนาได้ที่ apps/linux/README.md ในรีโพซิทอรี
แชทด่วน
เปิดแชทด่วนด้วย Ctrl+Shift+Space หรือรายการ แชทด่วน ในถาดระบบ ชิปเอเจนต์
จะแสดงอวตาร อีโมจิ หรืออักษรย่อที่กำหนดค่าไว้ ให้เลือกชิปเพื่อสลับเอเจนต์
ข้อความจะใช้เซสชันหลักของเอเจนต์ที่เลือกและเป็นไปตามขอบเขตเซสชันส่วนกลาง
ไคลเอ็นต์ Rust แบบเนทีฟเป็นเจ้าของข้อมูลประจำตัวอุปกรณ์ Ed25519 แบบถาวร โดยใช้
โทเค็นหรือรหัสผ่านที่ใช้ร่วมกันจากการส่งต่อของ CLI เพื่อเริ่มต้นการจับคู่เท่านั้น จากนั้นจัดเก็บและ
เลือกใช้โทเค็นอุปกรณ์ที่ Gateway ออกให้ในการเชื่อมต่อครั้งต่อไป ข้อมูลประจำตัวและ
โทเค็นอุปกรณ์จะอยู่ในไดเรกทอรีการกำหนดค่าของแอป ภายในไฟล์โหมด 0600; WebView ของแชทด่วน
จะไม่ได้รับทั้งข้อมูลรับรองและ WebSocket
เมื่อการเชื่อมต่อแบบเนทีฟไม่พร้อมใช้งาน แชทด่วนจะแสดง ไม่สามารถเข้าถึง Gateway
— กำลังลองใหม่ และปิดใช้งานการส่งจนกว่าจะเชื่อมต่อใหม่ อุปกรณ์ระยะไกล
ที่เข้าสู่ขั้นตอนการจับคู่แล้วจะแสดง อนุมัติอุปกรณ์นี้ในแดชบอร์ด
(Nodes) แทน พร้อม ID อุปกรณ์แบบสั้นเมื่อ Gateway ระบุให้
Gateway ที่ต้องใช้ข้อมูลรับรองร่วมกันซึ่งขาดหายไปจะแสดง Gateway ต้องใช้
ข้อมูลรับรอง — เปิดแดชบอร์ดบนโฮสต์ Gateway; ในสถานะดังกล่าวจะไม่มีคำขอจับคู่
รอการอนุมัติ คำแนะนำในการแก้ไขที่เซิร์ฟเวอร์ระบุ
จะแทนที่ข้อความสำรองเหล่านี้เมื่อมีรายละเอียดเฉพาะเจาะจงกว่า
สำหรับ Gateway ที่ใช้ TLS นั้น CLI จะส่งลายนิ้วมือ SHA-256 ของใบรับรอง
Gateway ให้แอป ไคลเอ็นต์แบบเนทีฟจะตรึงใบรับรองนั้นและรายงาน การเชื่อถือ TLS ของ Gateway
ล้มเหลว — ตรวจสอบลายนิ้วมือใบรับรอง แยกจากกรณีระบบหยุดทำงาน
Gateway ที่กำหนดค่าข้อมูลลับร่วมกันผ่าน SecretRef จะละข้อมูลดังกล่าวจาก
การส่งต่อของ CLI การติดตั้งที่จับคู่ไว้แล้วจะยังทำงานต่อผ่านโทเค็นอุปกรณ์
ที่จัดเก็บไว้ แต่การติดตั้งใหม่ไม่สามารถสร้างคำขอจับคู่ที่รอดำเนินการภายใต้การยืนยันตัวตน
ด้วยข้อมูลลับร่วมกันได้หากไม่มีข้อมูลรับรองสำหรับเริ่มต้นนั้น
การแลกรหัสตั้งค่าและ bootstrapToken ต้องใช้ UI ผลิตภัณฑ์เฉพาะและยังคงเป็น
งานติดตามผล แชทด่วนจะไม่พยายามดำเนินขั้นตอนใดขั้นตอนหนึ่ง
บน X11 ให้ใช้ไอคอนเฟืองในแชทด่วนเพื่อบันทึกหรือรีเซ็ตทางลัดที่กำหนดเอง ตัวสลับ
ทางลัดแชทด่วน ในถาดระบบจะเปิดหรือปิดใช้งานทางลัดโดยไม่ปิดใช้งาน
รายการ แชทด่วน ปกติในถาดระบบ ทางลัดส่วนกลางไม่พร้อมใช้งานบน Wayland ดังนั้น
การตั้งค่าทางลัดจะถูกซ่อน และรายการในถาดระบบยังคงเป็นจุดเข้าใช้งาน
หลังจากยอมรับการส่งแล้ว แชทด่วนจะยังเปิดอยู่และสตรีมคำตอบข้อความธรรมดาของเอเจนต์
ที่เลือกไว้ใต้ช่องเขียน กด Esc เพื่อปิดแถบและคำตอบ
โดย Ctrl+Enter ยังคงใช้เปิดแดชบอร์ด
Canvas
Canvas บน Linux ใช้สองโปรเซสที่ทำงานร่วมกัน openclaw node run ยังคงเป็นการเชื่อมต่อ Node เดียวกับ Gateway; Plugin linux-canvas ที่รวมมาให้จะส่งต่อการเรียก canvas.* ไปยังแอปเดสก์ท็อปที่กำลังทำงานผ่านซ็อกเก็ต Unix สำหรับผู้ใช้เท่านั้น แอปเป็นเจ้าของหน้าต่าง WebView แบบเปิดเมื่อต้องการหนึ่งหน้าต่าง ซึ่งรวมตัวเรนเดอร์ A2UI ที่ให้มาด้วยและบริดจ์การดำเนินการกลับไปยังเอเจนต์
Plugin เปิดใช้งานเป็นค่าเริ่มต้น โดยจะประกาศ Canvas เฉพาะเมื่อมีซ็อกเก็ตเดสก์ท็อปอยู่ที่ $XDG_RUNTIME_DIR/openclaw-canvas.sock หรือ /tmp/openclaw-canvas-$UID.sock เมื่อ XDG_RUNTIME_DIR ไม่พร้อมใช้งาน ปิดใช้งานได้ด้วย plugins.entries.linux-canvas.enabled: false บนเซิร์ฟเวอร์ Linux แบบไม่มีส่วนแสดงผลที่ไม่มีแอปเดสก์ท็อป จะไม่มีการประกาศ Canvas
Linux v1 ใช้หน้าต่าง Canvas หนึ่งหน้าต่าง สามารถเรนเดอร์หน้า HTTP และ HTTPS ได้ แต่จะยอมรับการดำเนินการ A2UI จากตัวเรนเดอร์ที่รวมมาให้เท่านั้น
ทางเลือก CLI และ SSH
CLI ยังคงเป็นตัวเลือกที่ง่ายที่สุดสำหรับเซิร์ฟเวอร์แบบไม่มีส่วนแสดงผล, VPS หรือ Gateway ระยะไกล:
- ติดตั้ง Node 24.15+ (แนะนำ), Node 22.22.3+ (LTS) หรือ Node 25.9+
npm i -g openclaw@latestopenclaw onboard --install-daemon- จากแล็ปท็อปของคุณ:
ssh -N -L 18789:127.0.0.1:18789 <user>@<host> - เปิด
http://127.0.0.1:18789/และยืนยันตัวตนด้วยข้อมูลลับร่วมกันที่กำหนดค่าไว้ (ใช้โทเค็นเป็นค่าเริ่มต้น; ใช้รหัสผ่านหากgateway.auth.modeเป็น"password")
คู่มือเซิร์ฟเวอร์ฉบับเต็ม: เซิร์ฟเวอร์ Linux ตัวอย่าง VPS แบบทีละขั้นตอน: exe.dev
ความสามารถของ Node
Plugin Node สำหรับ Linux ที่รวมมาให้จะเพิ่มความสามารถอุปกรณ์บริการ openclaw node แก่ CLI โดยไม่ต้องใช้แอปเดสก์ท็อป คำสั่งจะถูกประกาศไปยัง Gateway เฉพาะเมื่อเปิดใช้ความสามารถนั้นและมีเครื่องมือภายในเครื่องที่จำเป็น
| ความสามารถ | ค่าเริ่มต้น | ข้อกำหนด |
|---|---|---|
การแจ้งเตือนบนเดสก์ท็อป (system.notify) |
เปิด | notify-send จาก libnotify และเซสชันการแจ้งเตือนบนเดสก์ท็อป |
ภาพถ่ายและคลิปจากกล้อง (camera.*) |
ปิด | FFmpeg, สิทธิ์เข้าถึงกล้อง V4L2 และ PulseAudio หรือ PipeWire สำหรับเสียงในคลิป |
ตำแหน่งที่ตั้ง (location.get) |
ปิด | GeoClue2 และเดโม where-am-i |
กำหนดค่า Plugin ใน openclaw.json:
{ plugins: { entries: { "linux-node": { config: { notify: { enabled: true }, camera: { enabled: true }, location: { enabled: true }, }, }, }, },}รีสตาร์ตบริการ Node หลังเปลี่ยนการตั้งค่าเหล่านี้ ระบบจะตรวจสอบความพร้อมใช้งานหนึ่งครั้งต่อโปรเซส และสร้างการประกาศ Node ใหม่เมื่อรีสตาร์ต
Gateway จะอนุมัติพื้นผิวคำสั่งและความสามารถของ Node แยกจากการจับคู่อุปกรณ์ เมื่อเริ่มต้นครั้งแรกหรือหลังเปิดใช้ความสามารถเพิ่มเติม ให้อนุมัติพื้นผิวที่รอดำเนินการ:
openclaw nodes pendingopenclaw nodes approve <requestId>Node สามารถเชื่อมต่อและจับคู่กับอุปกรณ์แล้ว ขณะที่ caps และ commands ที่มีผลยังคงว่างอยู่จนกว่าการอนุมัตินี้จะเสร็จสมบูรณ์
ผู้ใช้บริการต้องมีสิทธิ์อ่านอุปกรณ์กล้อง ซึ่งโดยทั่วไปจะให้ผ่านกลุ่ม video คลิปจากกล้องจะใช้แหล่ง PulseAudio หรือ PipeWire เริ่มต้นเมื่อ includeAudio เป็น true; เสียงไมโครโฟนมีอยู่เฉพาะในรูปแทร็กของคลิปนั้น ไม่ใช่คำสั่งแยกต่างหาก ตำแหน่งที่ตั้งกำหนดให้ผู้ใช้บริการ Node ได้รับอนุญาตตามนโยบาย GeoClue ของโฮสต์
camera.snap และ camera.clip ยังต้องเปิดใช้งานอย่างชัดเจนจาก Gateway ผ่าน gateway.nodes.allowCommands ดูเพย์โหลด ขีดจำกัด และข้อผิดพลาดได้ที่ การจับภาพจากกล้อง และ คำสั่งตำแหน่งที่ตั้ง
การติดตั้ง
บริการ Gateway (systemd)
ติดตั้งด้วยวิธีใดวิธีหนึ่งต่อไปนี้:
openclaw onboard --install-daemonopenclaw gateway installopenclaw configure # select "Gateway service" when promptedซ่อมแซมหรือย้ายข้อมูลการติดตั้งที่มีอยู่:
openclaw doctoropenclaw gateway install จะเรนเดอร์ยูนิต ผู้ใช้ ของ systemd เป็นค่าเริ่มต้น คำแนะนำ
เกี่ยวกับบริการฉบับเต็ม รวมถึงยูนิตระดับ ระบบ สำหรับโฮสต์ที่ใช้ร่วมกันหรือ
เปิดตลอดเวลา อยู่ใน คู่มือการปฏิบัติงาน Gateway
เขียนยูนิตด้วยตนเองเฉพาะสำหรับการตั้งค่าแบบกำหนดเอง ตัวอย่างยูนิตผู้ใช้ขั้นต่ำ
(~/.config/systemd/user/openclaw-gateway[-<profile>].service):
[Unit]Description=OpenClaw Gateway (profile: <profile>, v<version>)After=network-online.targetWants=network-online.targetStartLimitBurst=5StartLimitIntervalSec=60 [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5RestartPreventExitStatus=78TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143OOMPolicy=continueKillMode=control-group [Install]WantedBy=default.targetยูนิตที่เขียนด้วยตนเองจะไม่ได้รับการปรับขนาดฮีปแบบปรับตัวที่ openclaw gateway install เขียนให้บริการ Gateway ที่มีการจัดการ ควรใช้ตัวติดตั้งที่มีการจัดการ หรือกำหนดขีดจำกัดฮีปอย่างชัดเจนในตัวควบคุมแบบกำหนดเองหลังจากคำนึงถึงพื้นที่สำรองสำหรับหน่วยความจำเนทีฟแล้ว
เปิดใช้งาน:
systemctl --user enable --now openclaw-gateway[-<profile>].serviceภาวะกดดันของหน่วยความจำและการยุติโดย OOM
บน Linux เคอร์เนลจะเลือกโปรเซสที่จะยุติโดย OOM เมื่อโฮสต์, VM หรือ cgroup ของคอนเทนเนอร์ มีหน่วยความจำไม่เพียงพอ Gateway ไม่ควรถูกเลือก เนื่องจากเป็นเจ้าของ เซสชันและการเชื่อมต่อช่องทางที่มีอายุยาวนาน ดังนั้น OpenClaw จึงปรับให้โปรเซสลูก ชั่วคราวถูกยุติก่อนเมื่อเป็นไปได้
สำหรับการสร้างโปรเซสลูก Linux ที่เข้าเกณฑ์ OpenClaw จะห่อคำสั่งด้วยชิม
/bin/sh แบบสั้นที่เพิ่ม oom_score_adj ของโปรเซสลูกเองเป็น 1000 จากนั้น
exec คำสั่งจริง การดำเนินการนี้ไม่ต้องใช้สิทธิ์พิเศษ เพราะโปรเซสสามารถเพิ่ม
คะแนน OOM ของตนเองได้เสมอ
พื้นผิวโปรเซสลูกที่ครอบคลุม:
- โปรเซสลูกของคำสั่งที่ตัวควบคุมจัดการ
- โปรเซสลูกของเชลล์ PTY
- โปรเซสลูกของเซิร์ฟเวอร์ stdio ของ MCP
- โปรเซสเบราว์เซอร์/Chrome ที่ OpenClaw เรียกใช้ (ผ่านรันไทม์โปรเซสของ SDK สำหรับ Plugin)
ตัวห่อนี้ใช้เฉพาะ Linux และจะถูกข้ามเมื่อ /bin/sh ไม่พร้อมใช้งาน หรือเมื่อ
สภาพแวดล้อมของโปรเซสลูกตั้งค่า OPENCLAW_CHILD_OOM_SCORE_ADJ เป็น 0, false, no หรือ
off
ตรวจสอบโปรเซสลูก:
cat /proc/<child-pid>/oom_score_adjค่าที่คาดไว้สำหรับโปรเซสลูกที่ครอบคลุมคือ 1000; ตัวโปรเซส Gateway เอง
จะคงคะแนนปกติไว้ (โดยทั่วไปคือ 0)
OOMPolicy=continue ของยูนิต systemd จะทำให้บริการ Gateway ยังทำงานต่อเมื่อ
โปรเซสลูกชั่วคราวถูกตัว OOM killer เลือก แทนที่จะทำเครื่องหมายให้ทั้ง
ยูนิตล้มเหลวและรีสตาร์ตทุกช่องทาง โดยโปรเซสลูก/เซสชันที่ล้มเหลวจะรายงาน
ข้อผิดพลาดของตนเอง
การดำเนินการนี้ไม่ได้ทดแทนการปรับแต่งหน่วยความจำตามปกติ หาก VPS หรือคอนเทนเนอร์ยุติ
โปรเซสลูกซ้ำๆ ให้เพิ่มขีดจำกัดหน่วยความจำ ลดการทำงานพร้อมกัน หรือเพิ่ม
การควบคุมทรัพยากรที่เข้มงวดยิ่งขึ้น (MemoryMax= ของ systemd, ขีดจำกัดหน่วยความจำของคอนเทนเนอร์)