Install
openclaw skills install keet-cliOperate and debug Keet Messenger via keet-cli: inspect storage, list rooms/messages, send messages, run watch/daemon, use the Keet↔OpenClaw bridge safely.
openclaw skills install keet-cliUse this skill when operating or improving the keet-cli project for Keet Messenger and Keet ↔ OpenClaw bridge workflows.
Prefer conservative behavior: inspect first, avoid unintended outbound messages, never expose secrets, and do not join invites or create chats unless explicitly approved by the user.
/openclaw/workspace/keet-cli.git status --short --branch
npm run lint
node src/cli.js --help
npm run lint and inspect git diff before reporting completion.Run from the repo root unless the user specifies another checkout.
npm install
npm run lint
node src/cli.js --help
node src/cli.js inspect
node src/cli.js rooms
node src/cli.js messages --limit 10
node src/cli.js send 'message text'
node src/cli.js watch --interval 2000
node src/cli.js daemon
node src/cli.js bridge
Override Keet storage when needed:
KEET_APP_STORAGE=/path/to/app-storage node src/cli.js inspect
inspect, rooms, messages) before write commands (send, bridge).Keet Desktop and keet-cli should not use the same live storage concurrently. Keet protects the database with a device-file/FD lock.
If commands fail due to locking:
keet-cli process is already using the profile.daemon or bridge instead of many separate commands.Use daemon mode when repeated reads and sends are needed without reopening Keet storage each time:
node src/cli.js daemon
Common REPL commands:
/messages 10
/send hello from one long-running process
/rooms
/quit
This avoids conflicts between separate watch and send processes.
Use watch mode for incoming message observation:
node src/cli.js watch --interval 2000
By default it ignores local/self messages. Use --include-local only when explicitly needed for debugging.
Run the bridge directly for foreground debugging:
node src/cli.js bridge
Use the supervisor for a non-systemd environment:
scripts/keet-bridge-supervisor.sh
Use the container entrypoint only when the container should supervise both OpenClaw availability and the bridge:
scripts/container-entrypoint.sh
Keep bridge routing conservative. A good bridge should:
Before release or publishing:
npm run lint
git status --short --branch
git log --oneline -5
Then verify README status, known limitations, and safety notes match the current implementation.
For GitHub deploy-key pushes, prefer SSH with the specific identity when one is configured:
GIT_SSH_COMMAND='ssh -i ~/.ssh/projectreturn -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new' git push git@github.com:OWNER/REPO.git main
Replace identity, owner, and repo with the actual project values. Do not print private keys.