#How the fk is it so hard to install all without problem i really don't understand
1 messages · Page 1 of 1 (latest)
Yeah, that’s a brutal experience — but we can make it deterministic if we stop guessing and just look at the exact failure point.
Can you paste these (copy/paste output, don’t summarize):
- What OS + how installed
- OS + version (macOS/Windows/Linux)
- Install method (from source / npm global / npx / docker)
- Versions
openclaw --version
node -v
pnpm -v
- The exact command that fails + the full error
- The command you run (e.g.
openclaw gateway start,pnpm dev, etc.)
- The full error text (or screenshot)
- If it “starts but doesn’t work”: what symptom?
- Can you reach the UI?
- Does it respond in chat?
- Does it say “No API key found …” or “cannot connect …” etc.?
If you drop those, I’ll tell you exactly what’s wrong and the shortest fix path. Also: reinstalling 4x usually means it’s not “installation” — it’s almost always a Node version/env/path mismatch or missing env vars.
Choisis OpenRouter.
Parce que:
- Tu veux “clawrouter” + DeepSeek par défaut → ça passe par OpenRouter (provider
openrouter). - Moonshot/Kimi K2.5 tu peux l’ajouter après comme provider secondaire (et soit tu switches manuellement quand tu en as besoin, soit tu le mets en fallback).
Ensuite (après onboarding OpenRouter):
- Liste les modèles OpenRouter et choisis ton DeepSeek :
openclaw models list --provider openrouter
puis
openclaw models set openrouter/<le-modele-deepseek-que-tu-vois-dans-la-liste>
(ou en chat: /model list puis tu sélectionnes)
- Ajoute Moonshot/Kimi plus tard (re-run l’onboarding ou config custom provider), puis tu pourras faire:
openclaw models fallbacks add moonshot/kimi-k2.5
Réf doc (avec les IDs exacts Moonshot/Kimi): https://docs.openclaw.ai/concepts/model-providers
Et comment les défauts/fallbacks marchent: https://docs.openclaw.ai/concepts/models
Si tu me dis sur quel écran/commande tu es (CLI openclaw onboard ? app macOS ?), je te dis exactement quoi sélectionner et quoi coller comme clés.
Sur cet écran, si ton objectif c’est OpenRouter + DeepSeek par défaut, il faut sélectionner OpenRouter (pas Moonshot).
Ensuite :
- Tu mets ta clé
OPENROUTER_API_KEYquand il te la demande. - Tu choisis un modèle DeepSeek dans la liste OpenRouter et tu le mets en défaut.
Puis pour Moonshot / Kimi K2.5 “quand c’est complexe” :
- tu l’ajoutes après (tu peux relancer l’onboarding une 2e fois et choisir Moonshot, ou le configurer ensuite),
- et soit tu switches manuellement via
/model, soit tu le mets en fallback.
Si tu me confirmes : tu veux bien dire OpenRouter quand tu dis “clawrouter”, et tu as déjà les 2 clés (OpenRouter + Moonshot) ?
Si tu veux OpenRouter + DeepSeek par défaut, alors sur cet écran tu dois choisir OpenRouter (pas Moonshot).
Plan simple :
- Choisis OpenRouter dans le wizard → colle ta clé
OPENROUTER_API_KEY. - Une fois fini, choisis DeepSeek comme modèle par défaut via la liste (sans deviner l’ID) :
- en chat :
/model list→ tu prends le DeepSeek dans la liste - ou en CLI :
openclaw models list --provider openrouterpuisopenclaw models set openrouter/<…>
- Pour Moonshot / Kimi K2.5 quand c’est “complexe” :
- relance ensuite
openclaw onboardet sélectionne Moonshot pour ajouter la clé, - puis tu switches au besoin avec
/model(ou tu l’ajoutes en fallback si tu veux).
Tu confirmes que “clawrouter” = OpenRouter ? Et tu as déjà les deux clés (OpenRouter + Moonshot) ?
Ah ok — tu parles de ClawRouter / BlockRun (le modèle genre blockrun/auto). Dans ce menu, les choix sont juste des providers “API key/OAuth” (OpenAI/Anthropic/Moonshot/etc). BlockRun/ClawRouter n’est pas un provider à sélectionner ici.
Donc là , choisis “Skip for now” (sinon il va te demander une clé que tu n’utilises pas).
Après avoir fini l’onboarding, on vérifie/configure BlockRun correctement. Pour ça, envoie juste la sortie de :
openclaw plugins list
openclaw models status
(et dis-moi si tu as déjà installé ClawRouter côté machine).
Important: ne poste aucune clé / token ici.
Oui, ce lien c’est ClawRouter / BlockRun (modèle blockrun/auto). Du coup dans le wizard OpenClaw :
- l’écran “Model/auth provider” (OpenAI/Anthropic/Moonshot/…) = c’est pour des API keys/OAuth classiques
- BlockRun n’est pas dans cette liste → donc choisis “Skip for now” ici.
Ensuite, fais l’installation de ClawRouter comme plugin OpenClaw (sans curl | bash) :
openclaw plugins install @blockrun/clawrouter
openclaw gateway restart
Puis mets le modèle :
- en chat :
/model blockrun/auto - ou en CLI :
openclaw models set blockrun/auto
Si ça coince, poste la sortie de :
openclaw plugins list
openclaw models status
Ton config a l’air bon sur les points importants :
- plugin clawrouter installé +
enabled: true - modèle par défaut:
agents.defaults.model.primary = "blockrun/auto" - provider
blockrunqui pointe vers le proxy local:http://127.0.0.1:8402/v1
Donc si ça “ne marche pas”, le prochain truc à vérifier c’est simplement : le proxy BlockRun tourne et répond ? (sinon OpenClaw ne peut rien faire avec blockrun/auto)
Peux-tu coller la sortie de ces 3 commandes :
openclaw status --deep
openclaw models status
openclaw logs --limit 120 | tail -120
Et dis-moi le symptĂ´me exact :
- ça répond pas du tout ?
- ou tu as une erreur “All models failed” / “connect ECONNREFUSED 127.0.0.1:8402” / autre ?
(Ne colle pas de token/clé — là c’est bien redacted.)
Ton openclaw status montre que le Gateway est OK et joignable (ws://127.0.0.1:18789 reachable). Donc le souci est presque sûrement côté BlockRun proxy (127.0.0.1:8402) ou côté paiement/wallet.
Fais ces checks (et colle la sortie) :
- Est-ce que le proxy répond ?
curl -sS http://127.0.0.1:8402/health
# (optionnel)
curl -sS "http://127.0.0.1:8402/health?full=true"
- Si tu as
ECONNREFUSED→ le proxy ne tourne pas / plugin pas démarré.
- Statut modèles (ça dit clairement “missing auth” / “provider down”, etc.) :
openclaw models status
Parfait — là on voit clairement :
- Gateway service: systemd OK, running
- Gateway reachable: OK
- Memory: enabled … unavailable → c’est pas bloquant. Ça veut juste dire que la recherche mémoire/embeddings n’est pas configurée (tu peux l’ignorer pour l’instant).
- Le point critique reste : le proxy BlockRun (127.0.0.1:8402) répond-il ? Sans ça,
blockrun/autone peut pas marcher.
Peux-tu coller la sortie de ces commandes :
curl -sS http://127.0.0.1:8402/health
curl -sS "http://127.0.0.1:8402/health?full=true"
openclaw models status
openclaw logs --limit 200
Et dis-moi le symptôme côté chat : quand tu envoies un message, tu as
- aucune réponse ?
- ou une erreur du style
ECONNREFUSED 127.0.0.1:8402/All models failed/402/insufficient funds?
(Ne poste pas de secrets/clé privée, surtout pas ~/.openclaw/blockrun/wallet.key.)
- Logs (c’est là qu’on verra “insufficient funds”, “402”, “EADDRINUSE”, etc.) :
openclaw logs --limit 200
Important : ne poste jamais ~/.openclaw/blockrun/wallet.key (c’est la clé privée). Si health?full=true affiche une adresse + balance, ça c’est OK à partager.
Je vois juste un ping vide — il me manque les infos clés.
Sur ton VPS, colle la sortie exacte de ces commandes (ça ne leak pas de secrets si tu ne copies pas la clé privée) :
curl -sS http://127.0.0.1:8402/health || echo "FAILED"
curl -sS "http://127.0.0.1:8402/health?full=true" || echo "FAILED"
openclaw models status
openclaw logs --limit 200
Comment lire le résultat :
- Si
curl .../health→FAILED/ECONNREFUSED: le proxy BlockRun ne tourne pas (plugin pas démarré / crash / port 8402 déjà pris). - Si
health?full=truemontrebalance: "$0"ouisEmpty: true: ton wallet BlockRun est vide → il faut le fund (USDC Base), sinonblockrun/autone peut pas payer les requêtes.
Rappel important : ne poste jamais ~/.openclaw/blockrun/wallet.key (c’est une clé privée). L’adresse + balance dans /health?full=true, ça va.
Tu as copié/collé la sortie de openclaw status dans le terminal, donc le shell essaie d’exécuter des mots comme FAQ: / Troubleshooting: → d’où les command not found.
Ce qu’il faut faire : taper uniquement les commandes, une par une (ne copie pas les lignes “FAQ/Next steps”, ni le tableau).
Dans ton terminal sur le VPS, exécute exactement ça et colle la sortie dans Discord :
openclaw models status
openclaw logs --limit 200
Puis vérifie si le proxy BlockRun écoute bien sur le port 8402 :
ss -ltnp | grep 8402 || echo "nothing listening on 8402"
curl -sS http://127.0.0.1:8402/health || echo "health FAILED"
- Si
nothing listening/health FAILED→ ClawRouter/BlockRun proxy ne tourne pas (plugin qui crash, pas chargé, ou port pris). Les logs (openclaw logs --limit 200) diront pourquoi. - Si
healthrépond OK mais ensuite ça échoue en usage → souvent c’est wallet/balance insuffisant (on le verra danshealth?full=trueet/ou les logs).
Si curl n’existe pas sur ton VPS, dis-le et on fera le test autrement (ou tu l’installes).
Ça, c’est un warning de l’UI (éditeur “Form view”), pas une erreur de ton install.
“Unsupported schema node. Use Raw mode.” = le formulaire n’arrive pas à représenter certains champs du config (souvent des objets libres / listes complexes, typiquement des trucs ajoutés par des plugins comme ClawRouter). Du coup il te dit : si tu édites en mode formulaire, tu risques de perdre des champs.
Ce que tu dois faire :
- Dans le Control UI → Config → passe en Raw mode (éditeur JSON) pour modifier/sauvegarder.
- Ou évite l’UI et fais tout en CLI (plus fiable), ex :
openclaw models status
openclaw logs --limit 200
Si tu me dis ce que tu essayes de changer exactement dans “Messaging Channels”, je te dis où le mettre (Raw JSON) sans casser le reste.
Ok. Dis-moi juste sur quel “Messaging Channel” tu veux parler à OpenClaw :
- Discord (DM + serveur) ?
- Telegram ?
- WhatsApp ?
Comme tu es déjà sur Discord, voilà le setup Discord le plus simple (en Raw mode, sans casser ClawRouter) :
- Dans Config → Raw, ajoute/complète un bloc
channels.discord(en gardant le reste de ton config intact) :
{
channels: {
discord: {
enabled: true,
// Mets le token via env si possible (pas en clair dans le JSON)
token: "${DISCORD_BOT_TOKEN}",
// Autoriser les DMs (optionnel)
dm: {
enabled: true,
policy: "allowlist",
allowFrom: ["607364849235787797"], // ton user id Discord (d’après tes messages)
},
// Autoriser un serveur + un salon
groupPolicy: "allowlist",
guilds: {
"COLLE_ICI_LE_GUILD_ID": {
requireMention: false,
channels: {
"1470179437927469056": { allow: true, requireMention: false }, // ton salon actuel
},
},
},
},
},
}
- Mets ton token dans
~/.openclaw/.env:
echo 'DISCORD_BOT_TOKEN="TON_TOKEN_ICI"' >> ~/.openclaw/.env
- Redémarre :
openclaw gateway restart
Pour que je te donne la version “copier-coller parfaite” sans placeholder, il me manque juste le GUILD_ID (Server ID). Tu l’obtiens via Discord → Developer Mode → clic droit sur le serveur → “Copy Server ID”. Colle-le ici.
Ok, Telegram. On va faire le setup le plus simple (DMs), et tu gardes ClawRouter intact.
1) Crée le bot Telegram
Dans Telegram → parle à @BotFather → /newbot → récupère le bot token (ne le poste pas ici).
2) Mets le token dans ~/.openclaw/.env (recommandé)
Sur ton VPS :
printf '\nTELEGRAM_BOT_TOKEN="%s"\n' "COLLE_LE_TOKEN_ICI" >> ~/.openclaw/.env
3) En Config → Raw mode, ajoute ce bloc (sans supprimer le reste)
{
channels: {
telegram: {
enabled: true,
// on lit le token depuis ~/.openclaw/.env
dmPolicy: "pairing",
},
},
}
(Tu peux aussi mettre botToken: "${TELEGRAM_BOT_TOKEN}" explicitement, mais pas obligatoire: l’env est fallback pour le compte “default”.)
4) Redémarre le gateway
openclaw gateway restart
5) Pairing (DM)
- Ouvre Telegram → DM ton bot → envoie “hi”
- Il va te donner un code, puis sur le VPS :
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
6) Test rapide
openclaw channels status --probe
Si tu veux aussi groupes (pas juste DM), dis-moi “DM only” ou “DM + groupes” et je te donne le bon bloc channels.telegram.groups / groupPolicy (et le point important sur le Privacy Mode côté BotFather).
Colle ça tel quel dans le terminal de ton VPS (ça te demande le token en “caché”, puis configure Telegram + restart) :
bash -lc '
set -euo pipefail
read -s -p "TELEGRAM_BOT_TOKEN (BotFather): " TG
echo
mkdir -p ~/.openclaw
# écrit/ajoute le token dans ~/.openclaw/.env
grep -q "^TELEGRAM_BOT_TOKEN=" ~/.openclaw/.env 2>/dev/null && \
sed -i "s/^TELEGRAM_BOT_TOKEN=.*/TELEGRAM_BOT_TOKEN=\"$TG\"/" ~/.openclaw/.env || \
printf "\nTELEGRAM_BOT_TOKEN=\"%s\"\n" "$TG" >> ~/.openclaw/.env
unset TG
openclaw config set channels.telegram.enabled true
openclaw config set channels.telegram.dmPolicy pairing
openclaw gateway restart
echo "OK. Maintenant: DM ton bot sur Telegram, puis: openclaw pairing list telegram"
'
Ensuite :
- Sur Telegram → DM ton bot → envoie “hi”
- Sur le VPS :
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Si ça répond pas, colle juste :
openclaw logs --limit 200
Tu es bien lĂ maintenant :
- ClawRouter/BlockRun proxy tourne âś… (
listening on port 8402) - Doctor te dit juste : “Telegram configured, not enabled yet” → donc il faut activer Telegram puis restart, ensuite faire le pairing.
Fais ça sur le VPS (copie/colle) :
openclaw config set channels.telegram.enabled true
openclaw gateway restart
openclaw channels status --probe
Ensuite :
- Ouvre Telegram → DM ton bot → envoie “hi”
- Sur le VPS, approuve le code :
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Si ton bot ne répond pas après ça, colle juste :
openclaw logs --follow
Note (important) : pour que blockrun/auto réponde vraiment, il faudra que le wallet BlockRun ait du solde. Tu peux vérifier plus tard avec :
curl -sS "http://127.0.0.1:8402/health?full=true"
Stop spam les mentions — je vois tes messages.
Fais juste les 3 commandes (dans ton terminal VPS) :
openclaw config set channels.telegram.enabled true
openclaw gateway restart
openclaw channels status --probe
Puis va sur Telegram → DM ton bot → “hi”, et approuve :
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Si tu bloques à une étape, colle l’erreur exacte (une seule fois).
Tu es en train de recoller la sortie de Doctor dans le terminal. Ces lignes (Updated …, Backup …, Doctor complete) ne sont pas des commandes, donc Bash répond “command not found”.
Dans ton terminal VPS, fais juste ça :
- Reviens Ă une invite propre (tu dois voir
root@oc-vps-01:~#). Si tu es “bloqué”, fais :
Ctrl+C
- Copie/colle uniquement cette commande (une seule ligne) :
openclaw config set channels.telegram.enabled true && openclaw gateway restart && openclaw channels status --probe
Ensuite :
- Ouvre Telegram → DM ton bot → envoie “hi”
- Puis sur le VPS :
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>
Si ça échoue, colle la sortie de openclaw channels status --probe (pas le bloc Doctor).
Arrête de spam les mentions — ça ralentit tout et ça n’aide pas.
Là , ton seul objectif c’est : exécuter UNE commande, et coller la sortie ici.
Sur ton VPS, dans le terminal, copie/colle exactement cette ligne (et rien d’autre) :
openclaw config set channels.telegram.enabled true && openclaw gateway restart && openclaw channels status --probe
Ensuite :
- Sur Telegram → DM ton bot → envoie
hi - Sur le VPS :
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>