{"id":"c29ba0eb-dd64-46f3-81ed-abd9f9ac7c0f","entityType":"agent","slug":"clawhub-projectreturn-keet-cli","name":"Keet CLI","canonicalUrl":"https://www.xpersona.co/agent/clawhub-projectreturn-keet-cli","canonicalPath":"/agent/clawhub-projectreturn-keet-cli","generatedAt":"2026-10-12T20:15:44.772Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-12T00:51:42.363Z","emptyReason":null},"description":"Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge su... Skill: Keet CLI Owner: projectreturn Summary: Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge su... Tags: latest:0.3.0 Version history: v0.3.0 | 2026-05-23T12:28:38.281Z | user Updated Keet CLI skill instructions for the new daemon flow. - Added send-file usage and safety confirmation notes. - Added daemon socke","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 965 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17b0basqyjkbmw7k7enwtsyzn86px4a:keet-cli","sourceUrl":"https://clawhub.ai/projectreturn/keet-cli","homepage":"https://clawhub.ai/projectreturn/skills/keet-cli","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/projectreturn/keet-cli","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/projectreturn/skills/keet-cli","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge su..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:51:42.363Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:51:42.363Z","emptyReason":null},"stars":null,"forks":null,"downloads":965,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"0.3.0","tractionLabel":"965 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:51:42.353Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T00:51:42.363Z","lastCrawledAt":"2026-10-12T00:51:42.353Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T00:51:42.353Z","lastVerifiedAt":null,"highlights":[{"version":"0.3.0","createdAt":"2026-05-23T12:28:38.281Z","changelog":"Updated Keet CLI skill instructions for the new daemon flow. - Added `send-file` usage and safety confirmation notes. - Added daemon socket workflow with `daemon-send`. - Documented automatic daemon-first behavior for `send` and `send-file`. - Added bridge usage via `--daemon-socket` to avoid competing Keet Core sessions. - Clarified storage-lock guidance: prefer one long-running daemon owner.","fileCount":3,"zipByteSize":4421},{"version":"0.1.1","createdAt":"2026-05-15T08:10:57.732Z","changelog":"Adds local audio transcription, model switching, and safe opt-in multi-room bridge routing.","fileCount":2,"zipByteSize":2749},{"version":"0.1.0","createdAt":"2026-05-14T18:43:11.749Z","changelog":"Initial release of keet-cli skill, providing safe operation guidelines and usage for Keet Messenger and Keet ↔ OpenClaw bridge workflows. - Added documentation for inspecting, messaging, bridge, watch, and daemon modes via `keet-cli`. - Emphasized conservative, read-first behavior and protection of secrets/private data. - Detailed storage lock handling to avoid conflicts with Keet Desktop. - Outlined safe procedures for bridge operation and containerization. - Included a release checklist to promote safe deployments.","fileCount":2,"zipByteSize":2378}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17b0basqyjkbmw7k7enwtsyzn86px4a:keet-cli","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T20:15:44.772Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-projectreturn-keet-cli/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-12T00:51:42.363Z","emptyReason":null},"readme":"Skill: Keet CLI\n\nOwner: projectreturn\n\nSummary: Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge su...\n\nTags: latest:0.3.0\n\nVersion history:\n\nv0.3.0 | 2026-05-23T12:28:38.281Z | user\n\nUpdated Keet CLI skill instructions for the new daemon flow.\n\n- Added `send-file` usage and safety confirmation notes.\n- Added daemon socket workflow with `daemon-send`.\n- Documented automatic daemon-first behavior for `send` and `send-file`.\n- Added bridge usage via `--daemon-socket` to avoid competing Keet Core sessions.\n- Clarified storage-lock guidance: prefer one long-running daemon owner.\n\nv0.1.1 | 2026-05-15T08:10:57.732Z | user\n\nAdds local audio transcription, model switching, and safe opt-in multi-room bridge routing.\n\nv0.1.0 | 2026-05-14T18:43:11.749Z | auto\n\nInitial release of keet-cli skill, providing safe operation guidelines and usage for Keet Messenger and Keet ↔ OpenClaw bridge workflows.\n\n- Added documentation for inspecting, messaging, bridge, watch, and daemon modes via `keet-cli`.\n- Emphasized conservative, read-first behavior and protection of secrets/private data.\n- Detailed storage lock handling to avoid conflicts with Keet Desktop.\n- Outlined safe procedures for bridge operation and containerization.\n- Included a release checklist to promote safe deployments.\n\nArchive index:\n\nArchive v0.3.0: 3 files, 4421 bytes\n\nFiles: skill-card.md (2320b), SKILL.md (7175b), _meta.json (127b)\n\nFile v0.3.0:SKILL.md\n\n---\nname: keet-cli\ndescription: Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge supervision, and explicitly approved messaging workflows. Requires explicit user confirmation before any outbound message, invite action, chat creation, long-running bridge/daemon start, or Git push.\n---\n\n# Keet CLI\n\n## Overview\n\nUse this skill when operating or improving the `keet-cli` project for Keet Messenger and Keet ↔ OpenClaw bridge workflows.\n\nDefault to read-only inspection. Treat all live Keet profile data and private chat content as sensitive. Do not expose secrets, recovery material, private messages, invite/profile codes, or generated bridge state.\n\nProject source to verify before use: `https://github.com/projectreturn/Keet-cli`.\n\n## Required safety gates\n\nBefore any external or state-changing action, get explicit user confirmation for:\n\n- exact Keet profile/storage path,\n- exact target chat or room,\n- exact outgoing message/action,\n- whether a long-running process may remain active,\n- exact Git repository, branch, and commit diff before pushing.\n\nNever join invites, create chats, route additional chats, print recovery/account material, or push code unless the user explicitly asked for that exact action.\n\n## Quick workflow\n\n1. Locate the project repository. Common default: `/openclaw/workspace/keet-cli`.\n2. Verify provenance and local state before using it:\n\n```bash\ngit remote -v\ngit status --short --branch\nnpm run lint\nnode src/cli.js --help\n```\n\n3. Prefer read-only commands first.\n4. Confirm the required safety gates before any send, bridge, daemon, invite, chat, or Git push action.\n5. After edits, run `npm run lint` and inspect `git diff` before reporting completion.\n\n## Read-only commands\n\nRun from the repo root unless the user specifies another checkout.\n\n```bash\nnpm run lint\nnode src/cli.js --help\nnode src/cli.js inspect\nnode src/cli.js rooms\nnode src/cli.js messages --limit 10\nnode src/cli.js tui\n```\n\nOverride Keet storage only when the user provides or confirms the path:\n\n```bash\nKEET_APP_STORAGE=/confirmed/path/to/app-storage node src/cli.js inspect\n```\n\n## State-changing commands\n\nOnly run these after explicit confirmation of profile, target chat, and exact action:\n\n```bash\nnode src/cli.js send 'confirmed message text'\nnode src/cli.js send-file --caption 'confirmed caption' /confirmed/file/path\nnode src/cli.js bridge\nnode src/cli.js daemon --socket .keet-cli.sock\nnode src/cli.js daemon-send --socket .keet-cli.sock current\nnode src/cli.js watch --interval 2000\n```\n\nFor `send-file`, confirm the file path, target chat, and caption before sending. For `watch`, `daemon`, supervisor, or bridge modes, tell the user whether the process will keep running and how to stop it.\n\n## Sensitive data rules\n\n- Treat Keet profile storage, account/recovery material, private keys, tokens, invite/profile codes, bridge state, and logs with private messages as sensitive.\n- Do not commit live Keet profile storage, generated state files, logs, screenshots of private chats, or copied private messages.\n- Avoid printing message contents unless the user asked to inspect those exact messages.\n- Redact secrets and private message content in summaries and errors.\n- In shared/group contexts, do not reveal user-specific chat names, keys, paths, message contents, or operational details.\n\n## Storage lock model\n\nKeet Desktop and `keet-cli` should not use the same live storage concurrently. Keet protects the database with a device-file/FD lock.\n\nIf commands fail due to locking:\n\n1. Check whether Keet Desktop or another `keet-cli` process is already using the profile.\n2. Prefer one explicitly approved long-running owner process via `daemon --socket .keet-cli.sock` and route CLI/bridge actions through `daemon-send` instead of spawning competing sessions.\n3. Do not kill user processes unless explicitly approved.\n\n## TUI mode\n\nUse TUI mode for interactive local inspection only after confirming that no other live Keet owner process is using the same storage:\n\n```bash\nnode src/cli.js tui\n```\n\nThe TUI can list rooms, select a room, view recent messages, and send messages. Sending is state-changing: confirm the target chat and exact message first.\n\n## Daemon / REPL mode\n\nUse daemon mode only when repeated reads/sends are needed and the user approved a long-running process:\n\n```bash\nnode src/cli.js daemon --room ROOM_ID --socket .keet-cli.sock\n```\n\nCommon REPL commands:\n\n```text\n/status\n/messages 10\n/send confirmed message text\n/send-md **confirmed** _markdown_\n/send-file /confirmed/file/path confirmed caption\n/rooms\n/current\n/use ROOM_ID\n/quit\n```\n\nSocket automation uses one JSON command per call:\n\n```bash\nnode src/cli.js daemon-send --socket .keet-cli.sock status\nnode src/cli.js daemon-send --socket .keet-cli.sock send '{\"text\":\"confirmed message\",\"format\":\"plain\"}'\nnode src/cli.js daemon-send --socket .keet-cli.sock send-file '{\"filePath\":\"/confirmed/file/path\",\"caption\":\"confirmed caption\"}'\n```\n\n`send` and `send-file` try the default daemon socket first when present, then fall back to a direct Core session. Set `KEET_CLI_NO_DAEMON=1` to force direct mode, or `KEET_CLI_DAEMON_STRICT=1` to fail instead of falling back.\n\nThis avoids conflicts between separate `watch`, `send`, and `send-file` processes.\n\n## Watch mode\n\nUse watch mode only after the user confirms the profile and chat scope:\n\n```bash\nnode src/cli.js watch --interval 2000\n```\n\nBy default it should ignore local/self messages. Use `--include-local` only when explicitly needed for debugging.\n\n## Keet ↔ OpenClaw bridge\n\nRun the bridge in foreground for debugging first:\n\n```bash\nnode src/cli.js bridge\nnode src/cli.js bridge --daemon-socket .keet-cli.sock --config bridge.config.json\n```\n\nUse supervisor/container modes only after the user confirms a persistent process is wanted.\n\nPrefer `--daemon-socket` when a daemon owns the Keet profile. In that mode the bridge reuses the daemon instead of opening its own Core sidecar.\n\nA safe bridge must:\n\n- keep multi-room routing disabled by default,\n- forward only explicitly approved chat(s) from a config allowlist,\n- report invites/membership events without auto-joining or acting on them,\n- fail closed when the target chat is ambiguous,\n- ignore its own/local echo messages unless debugging requires them,\n- persist enough state to avoid duplicate replies and the selected model mode,\n- handle Keet audio messages locally when configured: download only from Keet's local file link, transcribe with local Whisper, and forward the transcript instead of raw audio,\n- support explicit model switching commands such as `lokal`, `online`, and `modell status`,\n- avoid logging private message contents or secrets,\n- stop or provide a stop command when the task is complete.\n\n## Release checklist\n\nBefore release or publishing:\n\n```bash\nnpm run lint\ngit status --short --branch\ngit diff --stat\ngit log --oneline -5\n```\n\nBefore any Git push, confirm the repository, branch, diff, and credential/identity that will be used. Do not embed private key paths or print private keys in public skill content.\n\nFile v0.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7873d6qefwy06nb6zj7xrbx986q0df\",\n  \"slug\": \"keet-cli\",\n  \"version\": \"0.3.0\",\n  \"publishedAt\": 1779539318281\n}\n\nFile v0.3.0:skill-card.md\n\n## Description:\n\nSafely operate and improve the Keet CLI project and Keet <-> OpenClaw bridge for read-only inspection, debugging, documentation, release checks, bridge supervision, and explicitly approved messaging workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[projectreturn](https://clawhub.ai/user/projectreturn)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to operate or improve Keet CLI and Keet <-> OpenClaw bridge workflows while keeping messaging, profile storage, daemon, bridge, and Git operations behind explicit approval.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can guide access to private Keet profile storage and chat content.\n\nMitigation: Require explicit confirmation of the profile path and target chat, avoid printing private messages unless requested, and redact secrets or private content in summaries.\n\nRisk: Messaging, file-send, invite, chat creation, bridge, daemon, and watch workflows can change external state or keep a process running.\n\nMitigation: Confirm the exact target, action, message or file, and long-running process behavior before execution, and provide stop guidance when a process remains active.\n\nRisk: Git pushes can publish unintended changes or sensitive local state.\n\nMitigation: Confirm the repository, branch, commit diff, and credential identity before pushing, and do not commit live profile storage, generated state, logs, screenshots, or private message content.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline bash commands, code or configuration snippets, and concise operational guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [State-changing messaging, bridge, daemon, invite, chat, file-send, and Git push actions require explicit user confirmation.]\n\n## Skill Version(s):\n\n0.3.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.1.1: 2 files, 2749 bytes\n\nFiles: SKILL.md (5885b), _meta.json (127b)\n\nFile v0.1.1:SKILL.md\n\n---\nname: keet-cli\ndescription: Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge supervision, and explicitly approved messaging workflows. Requires explicit user confirmation before any outbound message, invite action, chat creation, long-running bridge/daemon start, or Git push.\n---\n\n# Keet CLI\n\n## Overview\n\nUse this skill when operating or improving the `keet-cli` project for Keet Messenger and Keet ↔ OpenClaw bridge workflows.\n\nDefault to read-only inspection. Treat all live Keet profile data and private chat content as sensitive. Do not expose secrets, recovery material, private messages, invite/profile codes, or generated bridge state.\n\nProject source to verify before use: `https://github.com/projectreturn/Keet-cli`.\n\n## Required safety gates\n\nBefore any external or state-changing action, get explicit user confirmation for:\n\n- exact Keet profile/storage path,\n- exact target chat or room,\n- exact outgoing message/action,\n- whether a long-running process may remain active,\n- exact Git repository, branch, and commit diff before pushing.\n\nNever join invites, create chats, route additional chats, print recovery/account material, or push code unless the user explicitly asked for that exact action.\n\n## Quick workflow\n\n1. Locate the project repository. Common default: `/openclaw/workspace/keet-cli`.\n2. Verify provenance and local state before using it:\n\n```bash\ngit remote -v\ngit status --short --branch\nnpm run lint\nnode src/cli.js --help\n```\n\n3. Prefer read-only commands first.\n4. Confirm the required safety gates before any send, bridge, daemon, invite, chat, or Git push action.\n5. After edits, run `npm run lint` and inspect `git diff` before reporting completion.\n\n## Read-only commands\n\nRun from the repo root unless the user specifies another checkout.\n\n```bash\nnpm run lint\nnode src/cli.js --help\nnode src/cli.js inspect\nnode src/cli.js rooms\nnode src/cli.js messages --limit 10\nnode src/cli.js tui\n```\n\nOverride Keet storage only when the user provides or confirms the path:\n\n```bash\nKEET_APP_STORAGE=/confirmed/path/to/app-storage node src/cli.js inspect\n```\n\n## State-changing commands\n\nOnly run these after explicit confirmation of profile, target chat, and exact action:\n\n```bash\nnode src/cli.js send 'confirmed message text'\nnode src/cli.js bridge\nnode src/cli.js daemon\nnode src/cli.js watch --interval 2000\n```\n\nFor `watch`, `daemon`, supervisor, or bridge modes, tell the user whether the process will keep running and how to stop it.\n\n## Sensitive data rules\n\n- Treat Keet profile storage, account/recovery material, private keys, tokens, invite/profile codes, bridge state, and logs with private messages as sensitive.\n- Do not commit live Keet profile storage, generated state files, logs, screenshots of private chats, or copied private messages.\n- Avoid printing message contents unless the user asked to inspect those exact messages.\n- Redact secrets and private message content in summaries and errors.\n- In shared/group contexts, do not reveal user-specific chat names, keys, paths, message contents, or operational details.\n\n## Storage lock model\n\nKeet Desktop and `keet-cli` should not use the same live storage concurrently. Keet protects the database with a device-file/FD lock.\n\nIf commands fail due to locking:\n\n1. Check whether Keet Desktop or another `keet-cli` process is already using the profile.\n2. Prefer one explicitly approved long-running owner process via `daemon` or `bridge` instead of many separate commands.\n3. Do not kill user processes unless explicitly approved.\n\n## TUI mode\n\nUse TUI mode for interactive local inspection only after confirming that no other live Keet owner process is using the same storage:\n\n```bash\nnode src/cli.js tui\n```\n\nThe TUI can list rooms, select a room, view recent messages, and send messages. Sending is state-changing: confirm the target chat and exact message first.\n\n## Daemon / REPL mode\n\nUse daemon mode only when repeated reads/sends are needed and the user approved a long-running process:\n\n```bash\nnode src/cli.js daemon\n```\n\nCommon REPL commands:\n\n```text\n/messages 10\n/send confirmed message text\n/rooms\n/quit\n```\n\nThis avoids conflicts between separate `watch` and `send` processes.\n\n## Watch mode\n\nUse watch mode only after the user confirms the profile and chat scope:\n\n```bash\nnode src/cli.js watch --interval 2000\n```\n\nBy default it should ignore local/self messages. Use `--include-local` only when explicitly needed for debugging.\n\n## Keet ↔ OpenClaw bridge\n\nRun the bridge in foreground for debugging first:\n\n```bash\nnode src/cli.js bridge\n```\n\nUse supervisor/container modes only after the user confirms a persistent process is wanted.\n\nA safe bridge must:\n\n- keep multi-room routing disabled by default,\n- forward only explicitly approved chat(s) from a config allowlist,\n- report invites/membership events without auto-joining or acting on them,\n- fail closed when the target chat is ambiguous,\n- ignore its own/local echo messages unless debugging requires them,\n- persist enough state to avoid duplicate replies and the selected model mode,\n- handle Keet audio messages locally when configured: download only from Keet's local file link, transcribe with local Whisper, and forward the transcript instead of raw audio,\n- support explicit model switching commands such as `lokal`, `online`, and `modell status`,\n- avoid logging private message contents or secrets,\n- stop or provide a stop command when the task is complete.\n\n## Release checklist\n\nBefore release or publishing:\n\n```bash\nnpm run lint\ngit status --short --branch\ngit diff --stat\ngit log --oneline -5\n```\n\nBefore any Git push, confirm the repository, branch, diff, and credential/identity that will be used. Do not embed private key paths or print private keys in public skill content.\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7873d6qefwy06nb6zj7xrbx986q0df\",\n  \"slug\": \"keet-cli\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1778832657732\n}\n\nArchive v0.1.0: 2 files, 2378 bytes\n\nFiles: SKILL.md (4505b), _meta.json (127b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: keet-cli\ndescription: Work with Keet Messenger through the keet-cli project: inspect local Keet storage, list rooms/messages, send messages, run watch/daemon modes, operate a Keet ↔ OpenClaw bridge, diagnose storage lock issues, and keep bridge/supervisor behavior safe. Use when asked to automate, debug, operate, document, or extend Keet CLI or Keet/OpenClaw bridge workflows.\n---\n\n# Keet CLI\n\n## Overview\n\nUse this skill when operating or improving the `keet-cli` project for Keet Messenger and Keet ↔ OpenClaw bridge workflows.\n\nPrefer 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.\n\n## Quick workflow\n\n1. Locate the project repository. Common default: `/openclaw/workspace/keet-cli`.\n2. Inspect current state before changing anything:\n\n```bash\ngit status --short --branch\nnpm run lint\nnode src/cli.js --help\n```\n\n3. Choose the smallest relevant command for the task.\n4. For sending or bridge actions, confirm the target chat/profile unless the user already made it explicit.\n5. After edits, run `npm run lint` and inspect `git diff` before reporting completion.\n\n## Core commands\n\nRun from the repo root unless the user specifies another checkout.\n\n```bash\nnpm install\nnpm run lint\nnode src/cli.js --help\nnode src/cli.js inspect\nnode src/cli.js rooms\nnode src/cli.js messages --limit 10\nnode src/cli.js send 'message text'\nnode src/cli.js watch --interval 2000\nnode src/cli.js daemon\nnode src/cli.js bridge\n```\n\nOverride Keet storage when needed:\n\n```bash\nKEET_APP_STORAGE=/path/to/app-storage node src/cli.js inspect\n```\n\n## Safe operation rules\n\n- Treat Keet profile storage, seeds, recovery phrases, private keys, tokens, invite/profile codes, bridge state, and logs containing private messages as sensitive.\n- Do not commit live Keet profile storage or generated state files.\n- Do not send messages, create chats, join invites, or modify external state unless the user asked for that exact action.\n- Prefer read-only commands (`inspect`, `rooms`, `messages`) before write commands (`send`, `bridge`).\n- When in a shared/group context, avoid leaking user-specific chat names, keys, paths, or message contents.\n\n## Storage lock model\n\nKeet Desktop and `keet-cli` should not use the same live storage concurrently. Keet protects the database with a device-file/FD lock.\n\nIf commands fail due to locking:\n\n1. Check whether Keet Desktop or another `keet-cli` process is already using the profile.\n2. Prefer one long-running owner process via `daemon` or `bridge` instead of many separate commands.\n3. Do not kill user processes unless explicitly approved.\n\n## Daemon / REPL mode\n\nUse daemon mode when repeated reads and sends are needed without reopening Keet storage each time:\n\n```bash\nnode src/cli.js daemon\n```\n\nCommon REPL commands:\n\n```text\n/messages 10\n/send hello from one long-running process\n/rooms\n/quit\n```\n\nThis avoids conflicts between separate `watch` and `send` processes.\n\n## Watch mode\n\nUse watch mode for incoming message observation:\n\n```bash\nnode src/cli.js watch --interval 2000\n```\n\nBy default it ignores local/self messages. Use `--include-local` only when explicitly needed for debugging.\n\n## Keet ↔ OpenClaw bridge\n\nRun the bridge directly for foreground debugging:\n\n```bash\nnode src/cli.js bridge\n```\n\nUse the supervisor for a non-systemd environment:\n\n```bash\nscripts/keet-bridge-supervisor.sh\n```\n\nUse the container entrypoint only when the container should supervise both OpenClaw availability and the bridge:\n\n```bash\nscripts/container-entrypoint.sh\n```\n\nKeep bridge routing conservative. A good bridge should:\n\n- forward only the intended chat(s),\n- ignore its own/local echo messages unless needed,\n- persist enough state to avoid duplicate replies,\n- fail closed when the target chat is ambiguous,\n- log operational errors without dumping secrets.\n\n## Release checklist\n\nBefore release or publishing:\n\n```bash\nnpm run lint\ngit status --short --branch\ngit log --oneline -5\n```\n\nThen verify README status, known limitations, and safety notes match the current implementation.\n\nFor GitHub deploy-key pushes, prefer SSH with the specific identity when one is configured:\n\n```bash\nGIT_SSH_COMMAND='ssh -i ~/.ssh/projectreturn -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new' git push git@github.com:OWNER/REPO.git main\n```\n\nReplace identity, owner, and repo with the actual project values. Do not print private keys.\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7873d6qefwy06nb6zj7xrbx986q0df\",\n  \"slug\": \"keet-cli\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1778784191749\n}","readmeExcerpt":"Skill: Keet CLI Owner: projectreturn Summary: Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge su... Tags: latest:0.3.0 Version history: v0.3.0 | 2026-05-23T12:28:38.281Z | user Updated Keet CLI skill instructions for the new daemon flow. - Added send-file usage and safety confirmation notes. - Added daemon socke","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"git remote -v\ngit status --short --branch\nnpm run lint\nnode src/cli.js --help"},{"language":"bash","snippet":"npm run lint\nnode src/cli.js --help\nnode src/cli.js inspect\nnode src/cli.js rooms\nnode src/cli.js messages --limit 10\nnode src/cli.js tui"},{"language":"bash","snippet":"KEET_APP_STORAGE=/confirmed/path/to/app-storage node src/cli.js inspect"},{"language":"bash","snippet":"node src/cli.js send 'confirmed message text'\nnode src/cli.js send-file --caption 'confirmed caption' /confirmed/file/path\nnode src/cli.js bridge\nnode src/cli.js daemon --socket .keet-cli.sock\nnode src/cli.js daemon-send --socket .keet-cli.sock current\nnode src/cli.js watch --interval 2000"},{"language":"bash","snippet":"node src/cli.js tui"},{"language":"bash","snippet":"node src/cli.js daemon --room ROOM_ID --socket .keet-cli.sock"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: keet-cli\ndescription: Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge supervision, and explicitly approved messaging workflows. Requires explicit user confirmation before any outbound message, invite action, chat creation, long-running bridge/daemon start, or Git push.\n---\n\n# Keet CLI\n\n## Overview\n\nUse this skill when operating or improving the `keet-cli` project for Keet Messenger and Keet ↔ OpenClaw bridge workflows.\n\nDefault to read-only inspection. Treat all live Keet profile data and private chat content as sensitive. Do not expose secrets, recovery material, private messages, invite/profile codes, or generated bridge state.\n\nProject source to verify before use: `https://github.com/projectreturn/Keet-cli`.\n\n## Required safety gates\n\nBefore any external or state-changing action, get explicit user confirmation for:\n\n- exact Keet profile/storage path,\n- exact target chat or room,\n- exact outgoing message/action,\n- whether a long-running process may remain active,\n- exact Git repository, branch, and commit diff before pushing.\n\nNever join invites, create chats, route additional chats, print recovery/account material, or push code unless the user explicitly asked for that exact action.\n\n## Quick workflow\n\n1. Locate the project repository. Common default: `/openclaw/workspace/keet-cli`.\n2. Verify provenance and local state before using it:\n\n```bash\ngit remote -v\ngit status --short --branch\nnpm run lint\nnode src/cli.js --help\n```\n\n3. Prefer read-only commands first.\n4. Confirm the required safety gates before any send, bridge, daemon, invite, chat, or Git push action.\n5. After edits, run `npm run lint` and inspect `git diff` before reporting completion.\n\n## Read-only commands\n\nRun from the repo root unless the user specifies another checkout.\n\n```bash\nnpm run lint\nnode src/cli.js --help\nnode src/cli.js inspect\nnode src/cli.js rooms\nnode src/cli.js messages --limit 10\nnode src/cli.js tui\n```\n\nOverride Keet storage only when the user provides or confirms the path:\n\n```bash\nKEET_APP_STORAGE=/confirmed/path/to/app-storage node src/cli.js inspect\n```\n\n## State-changing commands\n\nOnly run these after explicit confirmation of profile, target chat, and exact action:\n\n```bash\nnode src/cli.js send 'confirmed message text'\nnode src/cli.js send-file --caption 'confirmed caption' /confirmed/file/path\nnode src/cli.js bridge\nnode src/cli.js daemon --socket .keet-cli.sock\nnode src/cli.js daemon-send --socket .keet-cli.sock current\nnode src/cli.js watch --interval 2000\n```\n\nFor `send-file`, confirm the file path, target chat, and caption before sending. For `watch`, `daemon`, supervisor, or bridge modes, tell the user whether the process will keep running and how to stop it.\n\n## Sensitive data rules\n\n- Treat Keet profile storage, account/recovery material, private keys, tokens, invite/profile codes, bridge state, and logs with private messages as sen"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7873d6qefwy06nb6zj7xrbx986q0df\",\n  \"slug\": \"keet-cli\",\n  \"version\": \"0.3.0\",\n  \"publishedAt\": 1779539318281\n}"},{"path":"skill-card.md","content":"## Description:\n\nSafely operate and improve the Keet CLI project and Keet <-> OpenClaw bridge for read-only inspection, debugging, documentation, release checks, bridge supervision, and explicitly approved messaging workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[projectreturn](https://clawhub.ai/user/projectreturn)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to operate or improve Keet CLI and Keet <-> OpenClaw bridge workflows while keeping messaging, profile storage, daemon, bridge, and Git operations behind explicit approval.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can guide access to private Keet profile storage and chat content.\n\nMitigation: Require explicit confirmation of the profile path and target chat, avoid printing private messages unless requested, and redact secrets or private content in summaries.\n\nRisk: Messaging, file-send, invite, chat creation, bridge, daemon, and watch workflows can change external state or keep a process running.\n\nMitigation: Confirm the exact target, action, message or file, and long-running process behavior before execution, and provide stop guidance when a process remains active.\n\nRisk: Git pushes can publish unintended changes or sensitive local state.\n\nMitigation: Confirm the repository, branch, commit diff, and credential identity before pushing, and do not commit live profile storage, generated state, logs, screenshots, or private message content.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline bash commands, code or configuration snippets, and concise operational guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [State-changing messaging, bridge, daemon, invite, chat, file-send, and Git push actions require explicit user confirmation.]\n\n## Skill Version(s):\n\n0.3.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge su... Skill: Keet CLI Owner: projectreturn Summary: Safely operate and improve the Keet CLI project and Keet ↔ OpenClaw bridge. Use for read-only inspection, debugging, documentation, release checks, bridge su... Tags: latest:0.3.0 Version history: v0.3.0 | 2026-05-23T12:28:38.281Z | user Updated Keet CLI skill instructions for the new daemon flow. - Added send-file usage and safety confirmation notes. - Added daemon socke","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1177,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:51:42.363Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:51:42.363Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T20:15:44.772Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}