#Execute commands

1 messages · Page 1 of 1 (latest)

hot panther
#

Ho chiesto a openclaw di eseguire nslookup del default gateway mi dice che non puo farlo, perche?

cyan wingBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

upbeat mauveBOT
#

Probabilmente per uno di questi motivi:

  1. nslookup non è il comando giusto per “default gateway”
    nslookup risolve nomi DNS. Il default gateway è di solito un IP del router. Se fai nslookup 192.168.1.1, stai chiedendo un reverse DNS/PTR, che spesso non esiste.

  2. OpenClaw esegue i comandi dove gira il Gateway, non per forza sul tuo PC.
    Se il Gateway è su VPS/container/sandbox, vede la rete di quella macchina, non la tua LAN di casa.

  3. exec può essere bloccato o richiedere approvazione
    Dipende da config/allowlist/approvals. Vedi: https://docs.openclaw.ai/tools/exec e https://docs.openclaw.ai/tools/exec-approvals

  4. nslookup potrebbe non essere installato sulla macchina dove OpenClaw prova a eseguire il comando.

Per trovare il gateway, meglio chiedere qualcosa tipo:

#
ip route | grep default

oppure su macOS:

route -n get default

Se vuoi debuggarlo bene: mandaci openclaw --version e l’errore esatto che OpenClaw ti risponde. 🦐

hot panther
#

Openclaw si riufiuta di eseguire qualunque comando nslookup o ping

upbeat mauveBOT
#

Allora non è nslookup in sé: se rifiuta anche ping, quasi sicuramente è una policy di exec / sandbox / approvals.

Prima cosa: che versione hai?

openclaw --version

Poi guarda l’errore esatto. Le cause più comuni sono:

  • tool exec disabilitato per quell’agente/chat (tools.deny, allowlist, permessi canale)
  • tools.exec.security=deny o approvals configurati per negare
  • sessione in sandbox/container, dove ping può fallire perché richiede privilegi raw socket
  • nslookup/ping non installati nel runtime dove OpenClaw esegue i comandi
  • stai chiedendo un comando di rete da una chat/non-owner e OpenClaw lo blocca per sicurezza

Test utile: chiedigli di eseguire un comando innocuo tipo:

hot panther
#

Non puo eseguire comandi shell dal runtime

upbeat mauveBOT
#

Ok, allora il punto è questo: non sta rifiutando ping/nslookup, sta dicendo che quel runtime non ha accesso alla shell.

In OpenClaw ci sono due livelli diversi:

  • runtime/agent: pi, codex, claude-cli, ACP, ecc.
  • tool exec: quello che permette davvero di lanciare comandi shell

Se sei in un runtime tipo ACP / harness esterno / coding runtime, gli strumenti OpenClaw come exec non sono esposti di default, quindi il modello può rispondere “non posso eseguire comandi shell dal runtime”.

Per capire quale caso è, manda questi output:

openclaw --version
openclaw status --all
openclaw config get tools.exec
openclaw approvals get --gateway
hot panther
#

Current exec defaults: host=gateway, effective=gateway, security=full, ask=off, node=(unset).
Options: host=auto|sandbox|gateway|node, security=deny|allowlist|full, ask=off|on-miss|always, node=<id>.

🦞 OpenClaw 2026.4.5 (3e72c03)
🧠 Model: azure-openai-responses/gpt-5.1 · 🔑 api-key (azure-openai-responses:default)
🧮 Tokens: 363 in / 93 out · 💵 Cost: $0.0000
🗄️ Cache: 98% hit · 22k cached, 0 new
📚 Context: 23k/128k (18%) · 🧹 Compactions: 0
🧵 Session: agent:main:main • updated just now
⚙️ Runtime: direct · Think: off
🪢 Queue: collect (depth 0)

{
"host": "gateway",
"security": "full",
"ask": "off"
}

upbeat mauveBOT
#

Questo output dice una cosa importante: exec non sembra bloccato dalla policy principale.

Hai:

host=gateway
security=full
ask=off
Runtime: direct

Quindi OpenClaw dovrebbe poter eseguire comandi sul gateway. Se continua a dire “non posso eseguire shell dal runtime”, le cause più probabili sono:

  1. Il tool exec non è esposto al modello in questa chat
    /exec mostra solo i default, non garantisce che il tool sia disponibile. Prova:
#
   /tools compact

Deve comparire exec. Se non c’è, controlla tools.allow, tools.deny, agents.list[].tools.* o regole provider-specific per azure-openai-responses.

  1. Il modello sta rifiutando invece di chiamare il tool
    Prova a chiedere esplicitamente:

    Usa il tool exec per eseguire: echo ok
    

    Se rifiuta anche quello ma /tools mostra exec, potrebbe essere un problema di tool-calling con quel modello/provider.

  2. La 2026.4.5 è vecchiotta
    Io aggiornerei prima di perdere troppo tempo:

hot panther
#

Disendogli usa exec ....funziona perche fa cosi?

upbeat mauveBOT
#

Perché per il modello “eseguire un comando” e “usare il tool exec non sempre sono la stessa cosa.

OpenClaw non ha una shell “dentro al runtime” in modo automatico: la shell è disponibile tramite il tool exec. Se il modello interpreta la richiesta come “posso fare shell direttamente dal runtime?”, può rispondere di no. Quando gli dici esplicitamente “usa exec”, gli stai indicando il tool corretto e allora funziona.

Nel tuo caso la config è ok:

host=gateway
security=full
ask=off
Runtime: direct

Quindi il problema è più di istruzione/tool-calling del modello, non di permessi.

Puoi mitigarlo aggiungendo nelle istruzioni dell’agente/AGENTS.md qualcosa tipo:

#
Quando l’utente chiede di eseguire un comando shell sicuro, usa il tool exec.
Se il comando è ambiguo, distruttivo o rischioso, chiedi conferma prima.
Non dire che non puoi eseguire comandi shell se il tool exec è disponibile.

Esempio pratico da chiedere:

Usa exec per eseguire: ip route | grep default

Docs: https://docs.openclaw.ai/tools/exec

Se ora funziona, segna pure la soluzione così viene indicizzata su Answer Overflow: right-click sul messaggio utile → Apps → ✅ Mark Solution 🦐

hot panther
#

Funziona forzandllo a usare exec ma non capisco perche