CLI commands
ACP
Uruchamia mostek Agent Client Protocol (ACP), który komunikuje się z OmeniaClaw Gateway.
To polecenie mówi ACP przez stdio dla IDE i przekazuje prompty do Gateway przez WebSocket. Utrzymuje mapowanie sesji ACP na klucze sesji Gateway.
OmeniaClaw acp to mostek ACP wspierany przez Gateway, a nie pełne środowisko
edytora natywne dla ACP. Skupia się na routingu sesji, dostarczaniu promptów i
podstawowych aktualizacjach strumieniowych.
Jeśli chcesz, aby zewnętrzny klient MCP rozmawiał bezpośrednio z konwersacjami
kanału OmeniaClaw zamiast hostować sesję uprzęży ACP, użyj zamiast tego
OmeniaClaw mcp serve.
Czym to nie jest
Ta strona jest często mylona z sesjami uprzęży ACP.
OmeniaClaw acp oznacza:
- OmeniaClaw działa jako serwer ACP
- IDE lub klient ACP łączy się z OmeniaClaw
- OmeniaClaw przekazuje tę pracę do sesji Gateway
Różni się to od Agentów ACP, gdzie OmeniaClaw uruchamia
zewnętrzną uprząż, taką jak Codex lub Claude Code, przez acpx.
Szybka zasada:
- edytor/klient chce rozmawiać z OmeniaClaw przez ACP: użyj
OmeniaClaw acp - OmeniaClaw ma uruchomić Codex/Claude/Gemini jako uprząż ACP: użyj
/acp spawni Agentów ACP
Macierz zgodności
| Obszar ACP | Status | Uwagi |
|---|---|---|
initialize, newSession, prompt, cancel |
Zaimplementowane | Główny przepływ mostka przez stdio do czatu/wysyłania Gateway + przerwanie. |
listSessions, polecenia ukośnikowe |
Zaimplementowane | Lista sesji działa względem stanu sesji Gateway z ograniczoną paginacją kursora i filtrowaniem cwd, gdy wiersze sesji Gateway zawierają metadane przestrzeni roboczej; polecenia są ogłaszane przez available_commands_update. |
| Metadane pochodzenia sesji | Zaimplementowane | Listy sesji i migawki informacji o sesji zawierają pochodzenie nadrzędne i podrzędne OmeniaClaw w _meta, dzięki czemu klienci ACP mogą renderować grafy podagentów bez prywatnych kanałów bocznych Gateway. |
resumeSession, closeSession |
Zaimplementowane | Resume ponownie wiąże sesję ACP z istniejącą sesją Gateway bez odtwarzania historii. Close anuluje aktywną pracę mostka, rozwiązuje oczekujące prompty jako anulowane i zwalnia stan sesji mostka. |
loadSession |
Częściowe | Ponownie wiąże sesję ACP z kluczem sesji Gateway i odtwarza historię rejestru zdarzeń ACP dla sesji utworzonych przez mostek. Starsze sesje lub sesje bez rejestru wracają do zapisanego tekstu użytkownika/asystenta. |
Treść promptu (text, osadzony resource, obrazy) |
Częściowe | Tekst/zasoby są spłaszczane do wejścia czatu; obrazy stają się załącznikami Gateway. |
| Tryby sesji | Częściowe | session/set_mode jest obsługiwane, a mostek udostępnia początkowe kontrolki sesji wspierane przez Gateway dla poziomu myślenia, szczegółowości narzędzi, rozumowania, szczegółów użycia i działań z podwyższonymi uprawnieniami. Szersze natywne dla ACP powierzchnie trybów/konfiguracji pozostają poza zakresem. |
| Informacje o sesji i aktualizacje użycia | Częściowe | Mostek emituje powiadomienia session_info_update i best-effort usage_update z buforowanych migawek sesji Gateway. Użycie jest przybliżone i wysyłane tylko wtedy, gdy sumy tokenów Gateway są oznaczone jako świeże. |
| Strumieniowanie narzędzi | Częściowe | Zdarzenia tool_call / tool_call_update zawierają surowe I/O, treść tekstową i best-effort lokalizacje plików, gdy argumenty/wyniki narzędzi Gateway je ujawniają. Osadzone terminale i bogatsze wyjście natywne dla diff nadal nie są ujawniane. |
| Zatwierdzenia exec | Częściowe | Prompty zatwierdzeń exec Gateway podczas aktywnych tur promptów ACP są przekazywane do klienta ACP przez session/request_permission. |
Serwery MCP dla poszczególnych sesji (mcpServers) |
Nieobsługiwane | Tryb mostka odrzuca żądania serwera MCP dla poszczególnych sesji. Skonfiguruj MCP zamiast tego na Gateway lub agencie OmeniaClaw. |
Metody systemu plików klienta (fs/read_text_file, fs/write_text_file) |
Nieobsługiwane | Mostek nie wywołuje metod systemu plików klienta ACP. |
Metody terminala klienta (terminal/*) |
Nieobsługiwane | Mostek nie tworzy terminali klienta ACP ani nie strumieniuje identyfikatorów terminali przez wywołania narzędzi. |
| Plany sesji / strumieniowanie myśli | Nieobsługiwane | Mostek obecnie emituje tekst wyjściowy i status narzędzi, a nie aktualizacje planów ani myśli ACP. |
Znane ograniczenia
loadSessionmoże odtworzyć pełną historię rejestru zdarzeń ACP tylko dla sesji utworzonych przez mostek. Starsze sesje lub sesje bez rejestru nadal używają awaryjnie transkrypcji i nie rekonstruują historycznych wywołań narzędzi ani powiadomień systemowych.- Jeśli wielu klientów ACP współdzieli ten sam klucz sesji Gateway, routing
zdarzeń i anulowania jest best-effort, a nie ściśle izolowany dla każdego
klienta. Preferuj domyślne izolowane sesje
acp:<uuid>, gdy potrzebujesz czystych, lokalnych dla edytora tur. - Stany zatrzymania Gateway są tłumaczone na powody zatrzymania ACP, ale to mapowanie jest mniej ekspresyjne niż w pełni natywne dla ACP środowisko uruchomieniowe.
- Początkowe kontrolki sesji obecnie udostępniają skoncentrowany podzbiór pokręteł Gateway: poziom myślenia, szczegółowość narzędzi, rozumowanie, szczegóły użycia i działania z podwyższonymi uprawnieniami. Wybór modelu i kontrolki hosta exec nie są jeszcze udostępniane jako opcje konfiguracji ACP.
session_info_updateiusage_updatepochodzą z migawek sesji Gateway, a nie z księgowości środowiska uruchomieniowego natywnej dla ACP na żywo. Użycie jest przybliżone, nie zawiera danych kosztowych i jest emitowane tylko wtedy, gdy Gateway oznacza dane łącznej liczby tokenów jako świeże.- Dane podążania za narzędziem są best-effort. Mostek może ujawniać ścieżki plików, które pojawiają się w znanych argumentach/wynikach narzędzi, ale nie emituje jeszcze terminali ACP ani ustrukturyzowanych diffów plików.
- Przekazywanie zatwierdzeń exec jest ograniczone do aktywnej tury promptu ACP; zatwierdzenia z innych sesji Gateway są ignorowane.
Użycie
OmeniaClaw acp # Remote GatewayOmeniaClaw acp --url wss://gateway-host:18789 --token <token> # Remote Gateway (token from file)OmeniaClaw acp --url wss://gateway-host:18789 --token-file ~/.OmeniaClaw/gateway.token # Attach to an existing session keyOmeniaClaw acp --session agent:main:main # Attach by label (must already exist)OmeniaClaw acp --session-label "support inbox" # Reset the session key before the first promptOmeniaClaw acp --session agent:main:main --reset-sessionKlient ACP (debugowanie)
Użyj wbudowanego klienta ACP, aby szybko sprawdzić mostek bez IDE. Uruchamia mostek ACP i pozwala wpisywać prompty interaktywnie.
OmeniaClaw acp client # Point the spawned bridge at a remote GatewayOmeniaClaw acp client --server-args --url wss://gateway-host:18789 --token-file ~/.OmeniaClaw/gateway.token # Override the server command (default: OmeniaClaw)OmeniaClaw acp client --server "node" --server-args OmeniaClaw.mjs acp --url ws://127.0.0.1:19001Model uprawnień (tryb debugowania klienta):
- Automatyczne zatwierdzanie jest oparte na liście dozwolonych i dotyczy tylko zaufanych identyfikatorów narzędzi core.
- Automatyczne zatwierdzanie
readjest ograniczone do bieżącego katalogu roboczego (--cwd, gdy ustawione). - ACP automatycznie zatwierdza tylko wąskie klasy tylko do odczytu: ograniczone wywołania
readpod aktywnym cwd oraz narzędzia wyszukiwania tylko do odczytu (search,web_search,memory_search). Nieznane/nienależące do core narzędzia, odczyty poza zakresem, narzędzia zdolne do exec, narzędzia płaszczyzny sterowania, narzędzia modyfikujące i przepływy interaktywne zawsze wymagają jawnego zatwierdzenia promptu. - Dostarczone przez serwer
toolCall.kindjest traktowane jako niezaufane metadane (nie jako źródło autoryzacji). - Ta polityka mostka ACP jest osobna od uprawnień uprzęży ACPX. Jeśli uruchamiasz OmeniaClaw przez backend
acpx,plugins.entries.acpx.config.permissionMode=approve-alljest przełącznikiem awaryjnym „yolo” dla tej sesji uprzęży.
Test smoke protokołu
Do debugowania na poziomie protokołu uruchom Gateway z izolowanym stanem i steruj
OmeniaClaw acp przez stdio klientem ACP JSON-RPC. Uwzględnij initialize,
session/new, session/list z bezwzględnym cwd, session/resume,
session/close, zduplikowane zamknięcie i brakujące wznowienie.
Dowód powinien zawierać ogłoszone możliwości cyklu życia, wiersz sesji wspierany
przez Gateway, powiadomienia o aktualizacjach oraz log Gateway sessions.list:
{ "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"]}Unikaj używania OmeniaClaw gateway call sessions.list jako jedynego dowodu ACP.
Ta ścieżka CLI może zażądać podniesienia zakresu operatora dla świeżego tokenu;
poprawność mostka ACP jest dowodzona przez ramki stdio ACP oraz log Gateway
sessions.list.
Jak tego używać
Użyj ACP, gdy IDE (lub inny klient) mówi Agent Client Protocol i chcesz, aby sterował sesją OmeniaClaw Gateway.
- Upewnij się, że Gateway działa (lokalnie lub zdalnie).
- Skonfiguruj cel Gateway (konfiguracja lub flagi).
- Wskaż IDE, aby uruchamiało
OmeniaClaw acpprzez stdio.
Przykładowa konfiguracja (utrwalona):
OmeniaClaw config set gateway.remote.url wss://gateway-host:18789OmeniaClaw config set gateway.remote.token <token>Przykład bezpośredniego uruchomienia (bez zapisu konfiguracji):
OmeniaClaw acp --url wss://gateway-host:18789 --token <token># preferred for local process safetyOmeniaClaw acp --url wss://gateway-host:18789 --token-file ~/.OmeniaClaw/gateway.tokenWybieranie agentów
ACP nie wybiera agentów bezpośrednio. Routinguje według klucza sesji Gateway.
Użyj kluczy sesji z zakresem agenta, aby wskazać konkretnego agenta:
OmeniaClaw acp --session agent:main:mainOmeniaClaw acp --session agent:design:mainOmeniaClaw acp --session agent:qa:bug-123Każda sesja ACP mapuje się na pojedynczy klucz sesji Gateway. Jeden agent może mieć wiele
sesji; ACP domyślnie używa izolowanej sesji acp:<uuid>, chyba że nadpiszesz
klucz lub etykietę.
Sesyjne mcpServers nie są obsługiwane w trybie mostu. Jeśli klient ACP
wyśle je podczas newSession lub loadSession, most zwróci jasny
błąd zamiast po cichu je ignorować.
Jeśli chcesz, aby sesje oparte na ACPX widziały narzędzia Plugin OmeniaClaw lub wybrane
wbudowane narzędzia, takie jak cron, włącz mosty ACPX MCP po stronie Gateway zamiast
próbować przekazywać sesyjne mcpServers. Zobacz
Agenci ACP oraz
most MCP narzędzi OmeniaClaw.
Użycie z acpx (Codex, Claude, inni klienci ACP)
Jeśli chcesz, aby agent programistyczny, taki jak Codex lub Claude Code, komunikował się z Twoim
botem OmeniaClaw przez ACP, użyj acpx z jego wbudowanym celem OmeniaClaw.
Typowy przepływ:
- Uruchom Gateway i upewnij się, że most ACP może się z nim połączyć.
- Skieruj
acpx OmeniaClawnaOmeniaClaw acp. - Wskaż klucz sesji OmeniaClaw, którego agent programistyczny ma używać.
Przykłady:
# One-shot request into your default OmeniaClaw ACP sessionacpx OmeniaClaw exec "Summarize the active OmeniaClaw session state." # Persistent named session for follow-up turnsacpx OmeniaClaw sessions ensure --name codex-bridgeacpx OmeniaClaw -s codex-bridge --cwd /path/to/repo \ "Ask my OmeniaClaw work agent for recent context relevant to this repo."Jeśli chcesz, aby acpx OmeniaClaw za każdym razem wskazywał konkretny Gateway i klucz sesji,
nadpisz polecenie agenta OmeniaClaw w ~/.acpx/config.json:
{ "agents": { "OmeniaClaw": { "command": "env OmeniaClaw_HIDE_BANNER=1 OmeniaClaw_SUPPRESS_NOTES=1 OmeniaClaw acp --url ws://127.0.0.1:18789 --token-file ~/.OmeniaClaw/gateway.token --session agent:main:main" } }}Dla lokalnego checkoutu OmeniaClaw w repozytorium użyj bezpośredniego punktu wejścia CLI zamiast uruchamiacza deweloperskiego, aby strumień ACP pozostał czysty. Na przykład:
env OmeniaClaw_HIDE_BANNER=1 OmeniaClaw_SUPPRESS_NOTES=1 node OmeniaClaw.mjs acp ...To najprostszy sposób, aby umożliwić Codex, Claude Code lub innemu klientowi obsługującemu ACP pobieranie informacji kontekstowych od agenta OmeniaClaw bez scrapowania terminala.
Konfiguracja edytora Zed
Dodaj niestandardowego agenta ACP w ~/.config/zed/settings.json (lub użyj interfejsu ustawień Zed):
{ "agent_servers": { "OmeniaClaw ACP": { "type": "custom", "command": "OmeniaClaw", "args": ["acp"], "env": {} } }}Aby wskazać konkretny Gateway lub agenta:
{ "agent_servers": { "OmeniaClaw ACP": { "type": "custom", "command": "OmeniaClaw", "args": [ "acp", "--url", "wss://gateway-host:18789", "--token", "<token>", "--session", "agent:design:main" ], "env": {} } }}W Zed otwórz panel Agent i wybierz "OmeniaClaw ACP", aby rozpocząć wątek.
Mapowanie sesji
Domyślnie sesje ACP otrzymują izolowany klucz sesji Gateway z prefiksem acp:.
Aby ponownie użyć znanej sesji, przekaż klucz sesji lub etykietę:
--session <key>: użyj konkretnego klucza sesji Gateway.--session-label <label>: rozwiąż istniejącą sesję według etykiety.--reset-session: utwórz świeży identyfikator sesji dla tego klucza (ten sam klucz, nowy transkrypt).
Jeśli Twój klient ACP obsługuje metadane, możesz nadpisać je dla każdej sesji:
{ "_meta": { "sessionKey": "agent:main:main", "sessionLabel": "support inbox", "resetSession": true }}Dowiedz się więcej o kluczach sesji na /concepts/session.
Opcje
--url <url>: URL WebSocket Gateway (domyślnie gateway.remote.url, gdy jest skonfigurowany).--token <token>: token uwierzytelniania Gateway.--token-file <path>: odczytaj token uwierzytelniania Gateway z pliku.--password <password>: hasło uwierzytelniania Gateway.--password-file <path>: odczytaj hasło uwierzytelniania Gateway z pliku.--session <key>: domyślny klucz sesji.--session-label <label>: domyślna etykieta sesji do rozwiązania.--require-existing: zakończ błędem, jeśli klucz/etykieta sesji nie istnieje.--reset-session: zresetuj klucz sesji przed pierwszym użyciem.--no-prefix-cwd: nie poprzedzaj promptów katalogiem roboczym.--provenance <off|meta|meta+receipt>: uwzględnij metadane pochodzenia ACP lub potwierdzenia.--verbose, -v: szczegółowe logowanie do stderr.
Uwaga dotycząca bezpieczeństwa:
--tokeni--passwordmogą być widoczne w lokalnych listach procesów w niektórych systemach.- Preferuj
--token-file/--password-filelub zmienne środowiskowe (OmeniaClaw_GATEWAY_TOKEN,OmeniaClaw_GATEWAY_PASSWORD). - Rozwiązywanie uwierzytelniania Gateway jest zgodne ze wspólnym kontraktem używanym przez innych klientów Gateway:
- tryb lokalny: env (
OmeniaClaw_GATEWAY_*) ->gateway.auth.*-> fallbackgateway.remote.*tylko wtedy, gdygateway.auth.*nie jest ustawione (skonfigurowane, ale nierozwiązane lokalne SecretRefs kończą się zamknięciem) - tryb zdalny:
gateway.remote.*z fallbackiem env/konfiguracji zgodnie z regułami priorytetu zdalnego --urljest bezpieczne do nadpisywania i nie używa ponownie niejawnych danych uwierzytelniających z konfiguracji/env; przekaż jawne--token/--password(lub warianty plikowe)
- tryb lokalny: env (
- Procesy potomne backendu wykonawczego ACP otrzymują
OmeniaClaw_SHELL=acp, którego można używać do reguł powłoki/profilu specyficznych dla kontekstu. OmeniaClaw acp clientustawiaOmeniaClaw_SHELL=acp-clientw uruchamianym procesie mostu.
Opcje acp client
--cwd <dir>: katalog roboczy sesji ACP.--server <command>: polecenie serwera ACP (domyślnie:OmeniaClaw).--server-args <args...>: dodatkowe argumenty przekazywane do serwera ACP.--server-verbose: włącz szczegółowe logowanie na serwerze ACP.--verbose, -v: szczegółowe logowanie klienta.