CLI commands
ACP
Jalankan jembatan Agent Client Protocol (ACP) yang berbicara dengan OpenClaw Gateway.
Perintah ini berbicara ACP melalui stdio untuk IDE dan meneruskan prompt ke Gateway melalui WebSocket. Perintah ini menjaga sesi ACP tetap dipetakan ke kunci sesi Gateway.
openclaw acp adalah jembatan ACP yang didukung Gateway, bukan runtime editor
ACP-native penuh. Perintah ini berfokus pada perutean sesi, pengiriman prompt, dan pembaruan
streaming dasar.
Jika Anda ingin klien MCP eksternal berbicara langsung dengan percakapan channel
OpenClaw alih-alih menghosting sesi harness ACP, gunakan
openclaw mcp serve sebagai gantinya.
Ini bukan apa
Halaman ini sering tertukar dengan sesi harness ACP.
openclaw acp berarti:
- OpenClaw bertindak sebagai server ACP
- IDE atau klien ACP terhubung ke OpenClaw
- OpenClaw meneruskan pekerjaan itu ke dalam sesi Gateway
Ini berbeda dari ACP Agents, tempat OpenClaw menjalankan
harness eksternal seperti Codex atau Claude Code melalui acpx.
Aturan cepat:
- editor/klien ingin berbicara ACP ke OpenClaw: gunakan
openclaw acp - OpenClaw harus meluncurkan Codex/Claude/Gemini sebagai harness ACP: gunakan
/acp spawndan ACP Agents
Matriks Kompatibilitas
| Area ACP | Status | Catatan |
|---|---|---|
initialize, newSession, prompt, cancel |
Diimplementasikan | Alur jembatan inti melalui stdio ke chat/send + abort Gateway. |
listSessions, perintah slash |
Diimplementasikan | Daftar sesi bekerja terhadap status sesi Gateway dengan paginasi kursor terbatas dan pemfilteran cwd saat baris sesi Gateway membawa metadata workspace; perintah diiklankan melalui available_commands_update. |
| Metadata garis keturunan sesi | Diimplementasikan | Listing sesi dan snapshot info sesi menyertakan garis keturunan induk dan anak OpenClaw di _meta sehingga klien ACP dapat merender grafik subagen tanpa side channel Gateway privat. |
resumeSession, closeSession |
Diimplementasikan | Resume mengikat ulang sesi ACP ke sesi Gateway yang sudah ada tanpa memutar ulang riwayat. Close membatalkan pekerjaan jembatan aktif, menyelesaikan prompt tertunda sebagai dibatalkan, dan merilis status sesi jembatan. |
loadSession |
Parsial | Mengikat ulang sesi ACP ke kunci sesi Gateway dan memutar ulang riwayat ledger peristiwa ACP untuk sesi yang dibuat jembatan. Sesi lama/tanpa ledger kembali ke teks pengguna/asisten yang tersimpan. |
Konten prompt (text, resource tertanam, gambar) |
Parsial | Teks/resource diratakan menjadi input chat; gambar menjadi lampiran Gateway. |
| Mode sesi | Parsial | session/set_mode didukung dan jembatan mengekspos kontrol sesi awal yang didukung Gateway untuk tingkat pemikiran, verbositas tool, reasoning, detail penggunaan, dan tindakan elevated. Permukaan mode/konfigurasi ACP-native yang lebih luas masih di luar cakupan. |
| Info sesi dan pembaruan penggunaan | Parsial | Jembatan memancarkan notifikasi session_info_update dan usage_update upaya terbaik dari snapshot sesi Gateway yang di-cache. Penggunaan bersifat perkiraan dan hanya dikirim saat total token Gateway ditandai segar. |
| Streaming tool | Parsial | Peristiwa tool_call / tool_call_update menyertakan I/O mentah, konten teks, dan lokasi file upaya terbaik saat argumen/hasil tool Gateway mengeksposnya. Terminal tertanam dan output diff-native yang lebih kaya masih belum diekspos. |
| Persetujuan exec | Parsial | Prompt persetujuan exec Gateway selama putaran prompt ACP aktif diteruskan ke klien ACP dengan session/request_permission. |
Server MCP per sesi (mcpServers) |
Tidak didukung | Mode jembatan menolak permintaan server MCP per sesi. Konfigurasikan MCP pada Gateway atau agen OpenClaw sebagai gantinya. |
Metode filesystem klien (fs/read_text_file, fs/write_text_file) |
Tidak didukung | Jembatan tidak memanggil metode filesystem klien ACP. |
Metode terminal klien (terminal/*) |
Tidak didukung | Jembatan tidak membuat terminal klien ACP atau mengalirkan id terminal melalui panggilan tool. |
| Rencana sesi / streaming pemikiran | Tidak didukung | Jembatan saat ini memancarkan teks output dan status tool, bukan pembaruan rencana atau pemikiran ACP. |
Batasan yang Diketahui
loadSessiondapat memutar ulang riwayat ledger peristiwa ACP lengkap hanya untuk sesi yang dibuat jembatan. Sesi lama/tanpa ledger masih menggunakan fallback transkrip dan tidak merekonstruksi panggilan tool historis atau pemberitahuan sistem.- Jika beberapa klien ACP berbagi kunci sesi Gateway yang sama, perutean peristiwa dan pembatalan
bersifat upaya terbaik, bukan terisolasi ketat per klien. Pilih sesi
default terisolasi
acp-bridge:<uuid>saat Anda membutuhkan putaran editor-lokal yang bersih. - Status berhenti Gateway diterjemahkan menjadi alasan berhenti ACP, tetapi pemetaan itu kurang ekspresif dibanding runtime ACP-native penuh.
- Kontrol sesi awal saat ini menampilkan subset knob Gateway yang terfokus: tingkat pemikiran, verbositas tool, reasoning, detail penggunaan, dan tindakan elevated. Pemilihan model dan kontrol exec-host belum diekspos sebagai opsi konfigurasi ACP.
session_info_updatedanusage_updatediturunkan dari snapshot sesi Gateway, bukan akuntansi runtime ACP-native langsung. Penggunaan bersifat perkiraan, tidak membawa data biaya, dan hanya dipancarkan saat Gateway menandai data total token sebagai segar.- Data mengikuti tool bersifat upaya terbaik. Jembatan dapat menampilkan path file yang muncul dalam argumen/hasil tool yang dikenal, tetapi belum memancarkan terminal ACP atau diff file terstruktur.
- Relay persetujuan exec dibatasi pada putaran prompt ACP aktif; persetujuan dari sesi Gateway lain diabaikan.
Penggunaan
openclaw acp # Remote Gatewayopenclaw acp --url wss://gateway-host:18789 --token <token> # Remote Gateway (token from file)openclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token # Attach to an existing session keyopenclaw acp --session agent:main:main # Attach by label (must already exist)openclaw acp --session-label "support inbox" # Reset the session key before the first promptopenclaw acp --session agent:main:main --reset-sessionKlien ACP (debug)
Gunakan klien ACP bawaan untuk memeriksa kewarasan jembatan tanpa IDE. Klien ini menjalankan jembatan ACP dan memungkinkan Anda mengetik prompt secara interaktif.
openclaw acp client # Point the spawned bridge at a remote Gatewayopenclaw acp client --server-args --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.token # Override the server command (default: openclaw)openclaw acp client --server "node" --server-args openclaw.mjs acp --url ws://127.0.0.1:19001Model izin (mode debug klien):
- Persetujuan otomatis berbasis allowlist dan hanya berlaku untuk ID tool inti tepercaya.
- Persetujuan otomatis
readdibatasi ke direktori kerja saat ini (--cwdsaat disetel). - ACP hanya menyetujui otomatis kelas readonly yang sempit: panggilan
readtercakup di bawah cwd aktif ditambah tool pencarian readonly (search,web_search,memory_search). Tool yang tidak dikenal/non-inti, pembacaan di luar cakupan, tool berkemampuan exec, tool control-plane, tool yang memutasi, dan alur interaktif selalu memerlukan persetujuan prompt eksplisit. toolCall.kindyang disediakan server diperlakukan sebagai metadata tidak tepercaya (bukan sumber otorisasi).- Kebijakan jembatan ACP ini terpisah dari izin harness ACPX. Jika Anda menjalankan OpenClaw melalui backend
acpx,plugins.entries.acpx.config.permissionMode=approve-alladalah sakelar "yolo" darurat untuk sesi harness tersebut.
Pengujian smoke protokol
Untuk debugging tingkat protokol, mulai Gateway dengan status terisolasi dan kendalikan
openclaw acp melalui stdio dengan klien JSON-RPC ACP. Cakup initialize,
session/new, session/list dengan cwd absolut, session/resume,
session/close, close duplikat, dan resume yang hilang.
Bukti harus menyertakan kemampuan siklus hidup yang diiklankan, baris sesi yang didukung
Gateway, notifikasi pembaruan, dan log sessions.list Gateway:
{ "initialize": { "protocolVersion": 1, "agentCapabilities": { "sessionCapabilities": { "list": {}, "resume": {}, "close": {} } } }, "listSessions": { "sessions": [ { "sessionId": "agent:main:acp-smoke", "cwd": "/path/to/workspace", "_meta": { "sessionKey": "agent:main:acp-smoke", "kind": "direct" } } ], "nextCursor": null }, "notifications": ["session_info_update", "available_commands_update", "usage_update"], "gatewayLogTail": ["[gateway] ready", "[ws] ⇄ res ✓ sessions.list 305ms"]}Hindari menggunakan openclaw gateway call sessions.list sebagai satu-satunya bukti ACP. Path
CLI itu dapat meminta peningkatan cakupan operator fresh-token; kebenaran jembatan ACP
dibuktikan oleh frame stdio ACP ditambah log sessions.list Gateway.
Cara menggunakan ini
Gunakan ACP saat IDE (atau klien lain) berbicara Agent Client Protocol dan Anda ingin klien tersebut mengendalikan sesi OpenClaw Gateway.
- Pastikan Gateway berjalan (lokal atau jarak jauh).
- Konfigurasikan target Gateway (konfigurasi atau flag).
- Arahkan IDE Anda untuk menjalankan
openclaw acpmelalui stdio.
Contoh konfigurasi (dipersistenkan):
openclaw config set gateway.remote.url wss://gateway-host:18789openclaw config set gateway.remote.token <token>Contoh jalankan langsung (tanpa penulisan konfigurasi):
openclaw acp --url wss://gateway-host:18789 --token <token># preferred for local process safetyopenclaw acp --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.tokenMemilih agen
ACP tidak memilih agen secara langsung. ACP merutekan berdasarkan kunci sesi Gateway.
Gunakan kunci sesi bercakupan agen untuk menargetkan agen tertentu:
openclaw acp --session agent:main:mainopenclaw acp --session agent:design:mainopenclaw acp --session agent:qa:bug-123Setiap sesi ACP dipetakan ke satu kunci sesi Gateway. Satu agen dapat memiliki banyak
sesi; ACP secara default menggunakan sesi acp-bridge:<uuid> yang terisolasi kecuali Anda menimpa
kunci atau labelnya.
mcpServers per sesi tidak didukung dalam mode bridge. Jika klien ACP
mengirimkannya selama newSession atau loadSession, bridge mengembalikan
kesalahan yang jelas alih-alih mengabaikannya secara diam-diam.
Jika Anda ingin sesi yang didukung ACPX melihat alat Plugin OpenClaw atau alat
bawaan tertentu seperti cron, aktifkan bridge ACPX MCP di sisi Gateway alih-alih
mencoba meneruskan mcpServers per sesi. Lihat
ACP Agents dan
bridge MCP alat OpenClaw.
Gunakan dari acpx (Codex, Claude, klien ACP lainnya)
Jika Anda ingin agen pengodean seperti Codex atau Claude Code berbicara dengan
bot OpenClaw Anda melalui ACP, gunakan acpx dengan target openclaw bawaannya.
Alur umum:
- Jalankan Gateway dan pastikan bridge ACP dapat menjangkaunya.
- Arahkan
acpx openclawkeopenclaw acp. - Targetkan kunci sesi OpenClaw yang Anda ingin digunakan oleh agen pengodean.
Contoh:
# Permintaan sekali jalan ke sesi ACP OpenClaw default Andaacpx openclaw exec "Summarize the active OpenClaw session state." # Sesi bernama persisten untuk giliran lanjutanacpx openclaw sessions ensure --name codex-bridgeacpx openclaw -s codex-bridge --cwd /path/to/repo \ "Ask my OpenClaw work agent for recent context relevant to this repo."Jika Anda ingin acpx openclaw menargetkan Gateway dan kunci sesi tertentu setiap
saat, timpa perintah agen openclaw di ~/.acpx/config.json:
{ "agents": { "openclaw": { "command": "env OPENCLAW_HIDE_BANNER=1 OPENCLAW_SUPPRESS_NOTES=1 openclaw acp --url ws://127.0.0.1:18789 --token-file ~/.openclaw/gateway.token --session agent:main:main" } }}Untuk checkout OpenClaw lokal repo, gunakan entrypoint CLI langsung alih-alih runner dev agar stream ACP tetap bersih. Misalnya:
env OPENCLAW_HIDE_BANNER=1 OPENCLAW_SUPPRESS_NOTES=1 node openclaw.mjs acp ...Ini adalah cara termudah untuk memungkinkan Codex, Claude Code, atau klien lain yang paham ACP menarik informasi kontekstual dari agen OpenClaw tanpa melakukan scraping terminal.
Penyiapan editor Zed
Tambahkan agen ACP kustom di ~/.config/zed/settings.json (atau gunakan UI Settings Zed):
{ "agent_servers": { "OpenClaw ACP": { "type": "custom", "command": "openclaw", "args": ["acp"], "env": {} } }}Untuk menargetkan Gateway atau agen tertentu:
{ "agent_servers": { "OpenClaw ACP": { "type": "custom", "command": "openclaw", "args": [ "acp", "--url", "wss://gateway-host:18789", "--token", "<token>", "--session", "agent:design:main" ], "env": {} } }}Di Zed, buka panel Agent dan pilih "OpenClaw ACP" untuk memulai thread.
Pemetaan sesi
Secara default, sesi bridge ACP mendapatkan kunci sesi Gateway terisolasi dengan
prefiks acp-bridge:. Sesi bridge model normal ini bersifat sintetis dan
tunduk pada pemangkasan entri usang serta batas jumlah entri. Untuk menggunakan kembali sesi yang diketahui,
teruskan kunci atau label sesi:
--session <key>: gunakan kunci sesi Gateway tertentu.--session-label <label>: selesaikan sesi yang sudah ada berdasarkan label.--reset-session: buat id sesi baru untuk kunci tersebut (kunci yang sama, transkrip baru).
Jika klien ACP Anda mendukung metadata, Anda dapat menimpa per sesi:
{ "_meta": { "sessionKey": "agent:main:main", "sessionLabel": "support inbox", "resetSession": true }}Pelajari selengkapnya tentang kunci sesi di /concepts/session.
Opsi
--url <url>: URL WebSocket Gateway (default ke gateway.remote.url saat dikonfigurasi).--token <token>: token autentikasi Gateway.--token-file <path>: baca token autentikasi Gateway dari file.--password <password>: kata sandi autentikasi Gateway.--password-file <path>: baca kata sandi autentikasi Gateway dari file.--session <key>: kunci sesi default.--session-label <label>: label sesi default untuk diselesaikan.--require-existing: gagal jika kunci/label sesi tidak ada.--reset-session: reset kunci sesi sebelum penggunaan pertama.--no-prefix-cwd: jangan awali prompt dengan direktori kerja.--provenance <off|meta|meta+receipt>: sertakan metadata atau tanda terima provenance ACP.--verbose, -v: logging verbose ke stderr.
Catatan keamanan:
--tokendan--passworddapat terlihat dalam daftar proses lokal pada beberapa sistem.- Utamakan
--token-file/--password-fileatau variabel lingkungan (OPENCLAW_GATEWAY_TOKEN,OPENCLAW_GATEWAY_PASSWORD). - Resolusi autentikasi Gateway mengikuti kontrak bersama yang digunakan oleh klien Gateway lainnya:
- mode lokal: env (
OPENCLAW_GATEWAY_*) ->gateway.auth.*-> fallbackgateway.remote.*hanya saatgateway.auth.*tidak disetel (SecretRefs lokal yang dikonfigurasi tetapi tidak terselesaikan gagal tertutup) - mode remote:
gateway.remote.*dengan fallback env/config sesuai aturan prioritas remote --urlaman sebagai override dan tidak menggunakan ulang kredensial config/env implisit; teruskan--token/--passwordeksplisit (atau varian file)
- mode lokal: env (
- Proses anak backend runtime ACP menerima
OPENCLAW_SHELL=acp, yang dapat digunakan untuk aturan shell/profil khusus konteks. openclaw acp clientmenyetelOPENCLAW_SHELL=acp-clientpada proses bridge yang di-spawn.
Opsi acp client
--cwd <dir>: direktori kerja untuk sesi ACP.--server <command>: perintah server ACP (default:openclaw).--server-args <args...>: argumen tambahan yang diteruskan ke server ACP.--server-verbose: aktifkan logging verbose pada server ACP.--verbose, -v: logging klien verbose.