{"id":"c1f40dcb-da3d-4808-a3e4-4cb2b6a85944","entityType":"agent","slug":"clawhub-svetlyoh-lingry","name":"lingry","canonicalUrl":"https://www.xpersona.co/agent/clawhub-svetlyoh-lingry","canonicalPath":"/agent/clawhub-svetlyoh-lingry","generatedAt":"2026-10-12T19:22:35.968Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:16:46.086Z","emptyReason":null},"description":"Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 969 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17c2gj8xwmebbz5gby98gdmqs89f7eb:lingry","sourceUrl":"https://clawhub.ai/svetlyoh/lingry","homepage":"https://clawhub.ai/svetlyoh/skills/lingry","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/svetlyoh/lingry","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/svetlyoh/skills/lingry","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"lingry technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:16:46.086Z","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:16:46.086Z","emptyReason":null},"stars":null,"forks":null,"downloads":969,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"2.0.9","tractionLabel":"969 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:16:46.071Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T00:16:46.086Z","lastCrawledAt":"2026-10-12T00:16:46.071Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T00:16:46.071Z","lastVerifiedAt":null,"highlights":[{"version":"2.0.9","createdAt":"2026-09-25T17:18:57.034Z","changelog":"- No user-facing changes or code updates in this release. - Version bump only; functionality and instructions remain unchanged.","fileCount":9,"zipByteSize":13366},{"version":"2.0.8","createdAt":"2026-09-25T17:09:16.043Z","changelog":"- Added a CHANGELOG.md file to the package. - Updated documentation to include CHANGELOG.md as a required or expected file during installation and verification. - Adjusted installation and agent instructions to reference the presence of CHANGELOG.md and, where relevant, README.md.","fileCount":9,"zipByteSize":13286},{"version":"2.0.7","createdAt":"2026-09-25T17:03:15.084Z","changelog":"No user-visible changes in this release; version number updated for consistency with SKILL.md.","fileCount":8,"zipByteSize":11426},{"version":"2.0.6","createdAt":"2026-09-25T16:49:50.611Z","changelog":"- Added INSTALL.json and package.json files for improved installation and package management. - Updated documentation in SKILL.md with detailed multi-platform installation and verification instructions, including OpenClaw, Muse, GitHub, and manual methods. - Changed homepage and metadata URLs to point to the GitHub repository. - Removed skill-card.md. - Clarified instructions for scheduled daily word jobs and agent compatibility.","fileCount":8,"zipByteSize":11757},{"version":"2.0.5","createdAt":"2026-09-25T08:34:48.075Z","changelog":"This version improves the security of the Lingry ClawHub skill. It no longer stores candidate files or long-lived credentials on the user’s device. Generating a word and choosing “Prompt for another” never publish it; “Coin this term” still publishes when the user explicitly requests it. The skill now offers two clear choices and uses only https://lingry.net.","fileCount":6,"zipByteSize":8332},{"version":"2.0.4","createdAt":"2026-09-25T08:26:13.094Z","changelog":"- Removed the file `skill-card.md`. - No other changes to functionality or documentation in this version.","fileCount":15,"zipByteSize":22823},{"version":"2.0.3","createdAt":"2026-08-31T00:42:19.332Z","changelog":"- Added .clawhubignore file for improved development workflow. - Removed skill-card.md file. - No changes to skill logic or user-facing behavior.","fileCount":15,"zipByteSize":23062},{"version":"2.0.2","createdAt":"2026-08-30T23:29:35.607Z","changelog":"After every generated candidate, explicitly offer Coin this term or Prompt for another; never publish without explicit intent.","fileCount":14,"zipByteSize":22612}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17c2gj8xwmebbz5gby98gdmqs89f7eb:lingry","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17c2gj8xwmebbz5gby98gdmqs89f7eb:lingry` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/svetlyoh/lingry before using production credentials."],"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-svetlyoh-lingry/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/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-12T19:22:35.966Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-svetlyoh-lingry/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":"medium","updatedAt":"2026-10-12T00:16:46.086Z","emptyReason":null},"readme":"Skill: lingry\n\nOwner: svetlyoh\n\nSummary: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\n\nTags: latest:2.0.9\n\nVersion history:\n\nv2.0.9 | 2026-09-25T17:18:57.034Z | user\n\n- No user-facing changes or code updates in this release.\n- Version bump only; functionality and instructions remain unchanged.\n\nv2.0.8 | 2026-09-25T17:09:16.043Z | user\n\n- Added a CHANGELOG.md file to the package.\n- Updated documentation to include CHANGELOG.md as a required or expected file during installation and verification.\n- Adjusted installation and agent instructions to reference the presence of CHANGELOG.md and, where relevant, README.md.\n\nv2.0.7 | 2026-09-25T17:03:15.084Z | user\n\nNo user-visible changes in this release; version number updated for consistency with SKILL.md.\n\nv2.0.6 | 2026-09-25T16:49:50.611Z | user\n\n- Added INSTALL.json and package.json files for improved installation and package management.\n- Updated documentation in SKILL.md with detailed multi-platform installation and verification instructions, including OpenClaw, Muse, GitHub, and manual methods.\n- Changed homepage and metadata URLs to point to the GitHub repository.\n- Removed skill-card.md.\n- Clarified instructions for scheduled daily word jobs and agent compatibility.\n\nv2.0.5 | 2026-09-25T08:34:48.075Z | user\n\nThis version improves the security of the Lingry ClawHub skill. It no longer stores candidate files or long-lived credentials on the user’s device. Generating a word and choosing “Prompt for another” never publish it; “Coin this term” still publishes when the user explicitly requests it. The skill now offers two clear choices and uses only https://lingry.net.\n\nv2.0.4 | 2026-09-25T08:26:13.094Z | auto\n\n- Removed the file `skill-card.md`.\n- No other changes to functionality or documentation in this version.\n\nv2.0.3 | 2026-08-31T00:42:19.332Z | auto\n\n- Added .clawhubignore file for improved development workflow.\n- Removed skill-card.md file.\n- No changes to skill logic or user-facing behavior.\n\nv2.0.2 | 2026-08-30T23:29:35.607Z | user\n\nAfter every generated candidate, explicitly offer Coin this term or Prompt for another; never publish without explicit intent.\n\nv2.0.1 | 2026-08-30T23:26:22.239Z | user\n\nSeamless clean-install Agent Publisher bootstrap, exact quoted workspace install instructions, and no user-side encryption-key setup.\n\nv1.0.8 | 2026-08-30T15:16:41.459Z | auto\n\n**Major update with onboarding changes, streamlined setup, and improved automation:**\n\n- First use now immediately shows the newest Lingry word and offers instant creation/discovery; setup and wallet steps are deferred.\n- Publishing (coining) uses a bot-managed Sugarchain address; irreversible and requires explicit user intent.\n- Many environment variables related to wallet and candidate state removed; skill is simpler to configure.\n- Daily Lingry Word is opt-in via OpenClaw's automation—never enabled by default, easily managed per user/agent.\n- Removed all commands for local wallet setup, grant prep, transaction prep/approval; replaced with simpler, direct coin-word action.\n- Public discovery commands are always available without setup or identity.\n\nv1.0.7 | 2026-07-04T10:47:12.721Z | auto\n\n- Added a visual walkthrough section to the documentation, featuring annotated screenshots for step-by-step Lingry user workflows.\n- Improved clarity and structure of setup, workflows, and agent guidance.\n- Removed the outdated `skill-card.md` file.\n- Provided detailed explanations for safeguarding secrets and using public versus wallet-required commands.\n\nv1.0.6 | 2026-06-28T22:40:33.872Z | auto\n\n- Updated version to 1.0.7.\n- Documentation improvements in SKILL.md; no user-facing features changed.\n- Removed obsolete file: skill-card.md.\n\nv1.0.5 | 2026-06-28T20:48:29.487Z | auto\n\n- Added support for public read-only leaderboard and stream commands (`leaderboard`, `stream`) to access latest Lingry word stats.\n- Updated agent command list to include `leaderboard` and `stream`; removed reference to deleted skill-card.md.\n- Clarified that leaderboard and stream commands do not require a session token, wallet, or signing approval.\n- Provided clear guidance for rendering leaderboard/stream outputs and noted snapshot (not real-time) data status.\n- No code or API changes implied; documentation and supported command set updated.\n\nv1.0.4 | 2026-06-28T17:41:31.014Z | auto\n\nStandalone distribution switched to metadata-only release.\n\n- All code, docs, and test files removed; only SKILL.md remains for metadata and usage description.\n- Version updated to 1.0.4.\n- SKILL.md clarified steps for wallet and API session token setup, improved security guidance, and included detailed troubleshooting for session token handling.\n- No executable code or scripts are included in this release.\n- For OpenClaw usage, use only the updated metadata for install, configuration, and command references.\n\nv1.0.3 | 2026-06-28T04:30:57.108Z | user\n\nLingry 1.0.3: add first-launch OpenClaw setup instructions for wallet import, ownership repair, session-token storage, gateway restart, and terminal auth-status testing.\n\nv1.0.2 | 2026-06-28T02:11:59.773Z | user\n\nLingry 1.0.2: align verify-install with the exact ClawHub-published standalone file list after the 1.0.1 wallet-flow release.\n\nv1.0.1 | 2026-06-28T02:09:24.902Z | user\n\nLingry 1.0.1: canonical https://lingry.net API default, complete standalone package, interactive-terminal wallet helper, prepared request flow, and clean-room verification.\n\nv0.1.1 | 2026-06-28T01:13:43.720Z | auto\n\nLingry v0.1.1\n\n- Added explicit documentation for new commands: status and auth-status.\n- Separated commands into anonymous/local-only and authenticated categories.\n- Clarified that authenticated commands require a session token obtained via Lingry's browser/API flow.\n- Updated safety rules to prohibit scraping browser storage for session tokens.\n- SKILL.md now reflects full, current command set and usage boundaries.\n\nv0.1.0 | 2026-06-28T00:28:55.421Z | auto\n\nInitial public release of the Lingry ClawHub skill as a standalone OpenClaw integration.\n\n- Enables users to create a local Lingry wallet, claim starter grants, generate and draft new Lingry words, and interact with their local Sugarchain wallet.\n- Requires explicit user confirmation for coining transactions; `coin-it` must be run with `--confirm-broadcast`.\n- Strict safety rules enforced: never exposes private keys, passphrases, or sensitive data.\n- Configurable via environment variables for API URL, wallet location, passphrase, language, transaction fees, tips, and request timeouts.\n- Excludes backend-only features and plugin-specific lifecycle hooks for security and focus on user-side workflows.\n\nArchive index:\n\nArchive v2.0.9: 9 files, 13366 bytes\n\nFiles: bin/lingry-agent.mjs (5136b), CHANGELOG.md (3946b), INSTALL.json (566b), package.json (195b), README.md (4471b), skill-card.md (1725b), SKILL.md (7595b), src/runtime.mjs (6434b), _meta.json (125b)\n\nFile v2.0.9:SKILL.md\n\n---\nname: lingry\ndescription: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\nversion: 2.1.0\nhomepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n    homepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\n---\n\n# Lingry agent skill\n\nUse Lingry to discover public words and generate candidate terms. At runtime, the skill calls only `https://lingry.net`. It stores no local state or credential and uses no wallet or signing key. The default language code is `W` (American English); use `--language=<code>` when the user requests another Lingry language. `E` means British English. Do not silently force a locale variant.\n\n## Install\n\nLingry is a multi-file Node.js skill. `SKILL.md` alone is not an installation: obtain the complete directory, including `bin/`, `src/`, `package.json`, `INSTALL.json`, and `CHANGELOG.md`. Node.js >= 18 is required. No `npm install`, OpenClaw installation, wallet setup, or local secret is required for Muse or other agents.\n\n### OpenClaw\n\nFrom the OpenClaw workspace, use the ClawHub package:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the downloaded package. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`. Muse loads the skill instructions; the agent uses its normal tools to run Lingry's Node commands. It does not need OpenClaw.\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\n### Other SKILL.md-compatible agents\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the downloaded package. Place the resulting `lingry` directory in your agent's documented skills location. If it supports the cross-agent convention, `~/.agents/skills/lingry/` is an option; do not assume every agent scans it. Confirm the installed folder has `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`, then run `node bin/lingry-agent.mjs verify-install` from that folder. An agent may instead use an absolute path to `bin/lingry-agent.mjs`.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout (or equivalent PowerShell commands on Windows) to obtain the clean seven-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout\n```\n\nThe clean package is at `skills/lingry/`. Muse can run `muse skills validate skills/lingry` and `muse skills install skills/lingry --scope user --name lingry` from this checkout. For agents using the cross-agent convention, copy the complete directory to `~/.agents/skills/lingry/` (for example, `mkdir -p ~/.agents/skills && cp -R skills/lingry ~/.agents/skills/lingry`).\n\n### Verify the downloaded package\n\nFrom the downloaded or installed `lingry` directory, run:\n\n```bash\nnode bin/lingry-agent.mjs verify-install\n```\n\nVerification is local and read-only: it confirms that the required package files are present and does not create a publisher or coin a word.\n\n## Public discovery\n\nThe no-argument command shows the latest public Stream word. `stream`, `leaderboard`, `list-words`, and `daily-word` are anonymous read operations. Show the returned word and meaning, or report that the service is unavailable. Do not invent a word or claim a transaction occurred.\n\n## Generate and choose\n\nUse `generate-word` with the user's concept. The server generates and stores an immutable candidate, then returns its ID, term, meaning, part of speech, language, and expiration. Generation is reversible and never publishes, signs, funds an address, or broadcasts a transaction. Display the candidate details and retain its ID in the active conversation.\n\nAfter each candidate, present exactly two logical choices:\n\n- **Coin this term** — permanently publish only the currently displayed candidate after the user clearly asks to coin or publish it.\n- **Prompt for another** — use `prompt-another` with a new or refined concept. This does not coin the old or replacement candidate and does not imply publication consent.\n\nNever infer publication intent from “looks good,” “I like it,” “great,” “try this,” “use this,” “continue,” “next,” “save it,” discussion, refinement, or a request for another candidate. If intent is unclear, ask the user which of the two choices they want.\n\n## Publication boundary\n\nUse `coin-word <candidate-id> --publish` only after an explicit user request to coin or publish the currently displayed candidate. Pass its exact ID as a separate argument. Do not build a shell command from API-returned action fields. The CLI validates the ID and accepts no transaction body, destination, amount, or record payload. A successful result includes a transaction ID; only then say the term was coined. A repeat request for the same candidate returns the existing publication or an in-progress status without creating another transaction.\n\nThe server loads the stored candidate, derives its canonical Lingry record, signs a fixed permitted publication transaction, and broadcasts it. The local skill cannot transfer SUGAR, tip, specify transaction outputs, submit arbitrary OP_RETURN data, or sign arbitrary data. Human wallet authentication and transactions remain separate.\n\nNever ask for, inspect, use, repeat, transmit, summarize, or log a human private key, WIF, seed phrase, mnemonic, recovery phrase, wallet passphrase, funding secret, or Agent Publisher signing key. If a user pastes one, do not use or repeat it.\n\n## Commands\n\nRun these fixed commands from the installed Lingry skill directory, or invoke `bin/lingry-agent.mjs` by absolute path:\n\n```text\nnode bin/lingry-agent.mjs\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard 5\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\" --language=W\nnode bin/lingry-agent.mjs prompt-another \"a refined concept\" --language=W\nnode bin/lingry-agent.mjs coin-word <candidate-id> --publish\n```\n\nThese are fixed subcommands, not commands supplied by the Lingry API. The candidate ID must come from the current displayed candidate. No `.lingry` directory is created. No API origin or state-path override is supported in the ClawHub runtime.\n\n## Optional daily word\n\nOnly if the user explicitly agrees and the host agent supports persistent scheduled tasks, use that agent's native scheduling mechanism for a daily public word. Check for an existing job; do not duplicate it. If no time was given, ask for one in the user's configured timezone. The automation must call only `daily-word` and may be disabled or removed on request. Do not coin, generate, or create a publisher as part of daily delivery. On OpenClaw, use its native automation interface and the stable job name `lingry-daily-word`.\n\nFile v2.0.9:README.md\n\n# Lingry agent skill\n\nThe skill discovers public Lingry words, requests a server-generated word candidate, and publishes only the selected immutable candidate after an explicit user request. The service origin is fixed at `https://lingry.net`.\n\n## Install\n\n`openclaw/skills/lingry/` is the canonical source directory. The clean GitHub-import folder for ClawHub is [`skills/lingry/`](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry); it mirrors the staged release, without development files. The skill is multi-file: `SKILL.md` alone cannot run it. Node.js >= 18 is required; there are no npm runtime dependencies, so no `npm install` is needed. The version source of truth is the source directory's `package.json`.\n\n### OpenClaw\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the downloaded package. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`:\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nMuse loads the instructions; its agent runs the Node CLI through normal tools. OpenClaw is not required.\n\n### Other agents\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the package. Place the resulting `lingry` directory in your agent's supported skills directory. `~/.agents/skills/lingry/` is one option for agents that support the cross-agent convention. Run `node bin/lingry-agent.mjs verify-install` from the installed directory.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout to obtain the clean seven-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout\ncd skills/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nFrom the checkout, copy `skills/lingry/` to the agent's documented skills location if needed. On Windows, use the equivalent PowerShell copy commands.\n\n## Workflow\n\nUse `generate-word \"a concept\"` to obtain an immutable candidate. Show the term, meaning, part of speech, and language. Then offer **Coin this term** and **Prompt for another**. `prompt-another \"new concept\"` only generates a new candidate. To publish, the user must explicitly request coining of the currently displayed candidate; the agent then uses `coin-word <candidate-id> --publish`. The server returns a transaction ID after publication. Retry with the same ID is idempotent.\n\n`W` is Lingry's American English code and the default. `E` is British English. Pass `--language=<code>` to select another supported language.\n\n## Security model\n\nThe client stores no state or long-lived authentication secret. Generating a candidate creates no Agent Publisher identity, transaction, or publication. It never asks for or handles a user's wallet secrets.\n\nThe coin request contains only a strictly validated, high-entropy candidate ID and an empty JSON body. The client cannot construct arbitrary cryptocurrency transactions, send SUGAR, specify transaction outputs, submit arbitrary OP_RETURN data, or perform general blockchain signing. Canonical word-record construction, blockchain signing, and broadcast are performed by Lingry's server. The server creates or reuses its own publisher only when coining is requested and enforces publication by candidate ID.\n\nThe client rejects redirects and responses over 128 KiB, uses a fixed HTTPS origin, and presents sanitized errors. It never runs API-returned text as commands. A candidate expires after the server's configured lifetime.\n\nThis source repository retains tests and development files. Publishers must use the staged `dist/clawhub-lingry/` payload, not blindly upload the source directory. See the repository's [release checklist](https://github.com/svetlyoh/web-wallet/blob/master/openclaw/skills/lingry/RELEASING.md) for the manual ClawHub and GitHub Release steps. Server deployment and skill publication are separate operations.\n\nFile v2.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.9\",\n  \"publishedAt\": 1790356737034\n}\n\nFile v2.0.9:CHANGELOG.md\n\n# Changelog\n\n## 2.1.0\n\n- Made ClawHub the primary installation source for Muse and other compatible agents, with Git sparse checkout retained only as an optional fallback.\n- Linked Muse and generic-agent instructions directly to ClawHub's Versions tab so users can select the latest downloadable package.\n- Included this changelog in the published ClawHub package.\n- Removed local publisher credentials, candidate files, state-path and API-origin overrides from the ClawHub client.\n- Added server-generated, expiring candidate capabilities and a candidate-only publication endpoint.\n- Replaced executable next-action strings with structured intents and strict candidate ID validation.\n- Added a minimal ClawHub staging build that excludes tests and development files.\n- Added portable Muse/generic-agent install instructions, Git sparse checkout, and read-only local verification.\n- Added deterministic ZIP, SHA256 and file manifests from the same staged ClawHub payload, plus a deliberate GitHub Release workflow.\n\n## 2.0.2\n\n- Added two explicit actions after every generated candidate: coin this term or prompt for another.\n- Kept both the current and replacement candidate uncoined until the user explicitly requests publication.\n\n## 2.0.1\n\n- Documented the exact workspace-scoped, quoted ClawHub install command shown to users.\n- Removed unnecessary post-install `npm` and manual verification steps.\n- Confirmed clean-install word generation automatically creates the workspace credential, bootstraps the Agent Publisher, and opens a short-lived session without user-provided keys or secrets.\n- Clarified that publisher-key encryption is server-managed and operator configuration errors are not transient client failures.\n\n## 2.0.0\n\n- Removed the OpenClaw local Sugarchain wallet, private-key import, browser API Session copy/paste, and manual transaction approval workflow.\n- Added automatic workspace-scoped Agent Publisher registration and short-lived session renewal.\n- Added one unique Lingry-managed Sugarchain publishing address per OpenClaw agent workspace.\n- Added autonomous, policy-constrained coining of immutable canonical Lingry candidates.\n- Added first-use public Stream onboarding and read-only Daily Lingry Word automation guidance.\n\n## 1.0.7\n\n- Change default public leaderboard and stream command limits to 100 records.\n\n## 1.0.6\n\n- Accept direct public snapshot responses for leaderboard and stream commands.\n\n## 1.0.5\n\n- Added public hourly-indexed leaderboard and stream commands for OpenClaw.\n\n## 1.0.4\n\n- Clarify first-run setup: create or open a `lingry.net` wallet first, import the matching private/login key on Ubuntu OpenClaw, then configure the 30-day API session token.\n- Add stale OpenClaw gateway environment troubleshooting for cases where terminal `auth-status` accepts a new token but chat still reports an old expiry.\n\n## 1.0.3\n\n- Add first-launch OpenClaw setup instructions for ownership repair, wallet import, session-token storage, gateway restart, and terminal testing.\n\n## 1.0.2\n\n- Align `verify-install` with the exact file list ClawHub publishes and installs.\n\n## 1.0.1\n\n- Set the built-in API default to `https://lingry.net`.\n- Add `bin/lingry-wallet.mjs` for interactive-terminal-only wallet setup, grant signing, transaction approval, and broadcasting.\n- Change the agent to prepare non-secret request files instead of decrypting wallets, signing transactions, or broadcasting.\n- Add `verify-install` and clean-room package tests for standalone ClawHub installs.\n- Remove wallet-passphrase requirements from the OpenClaw agent contract and documentation.\n\n## 1.0.0\n\n- Create standalone ClawHub skill package.\n- Add ClawHub metadata in `SKILL.md`.\n- Restrict command surface to safe user-facing Lingry workflows.\n- Require explicit `--confirm-broadcast` for coining.\n- Exclude private-key export, cron installation, plugin lifecycle hooks, deployment administration, and server-wallet custody.\n\nFile v2.0.9:skill-card.md\n\n## Description:\n\nDiscover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPeople using an agent can discover public Lingry words, generate candidates from concepts, and explicitly publish a selected candidate.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Word prompts are sent to Lingry's server.\n\nMitigation: Share only concepts you are comfortable sending to the service; never provide wallet secrets.\n\nRisk: Coining permanently publishes the selected candidate.\n\nMitigation: Coin only after the user explicitly requests publication of the currently selected candidate.\n\n## Reference(s):\n\n- [Lingry project homepage](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry)\n- [Lingry service](https://lingry.net)\n- [ClawHub Lingry release](https://clawhub.ai/svetlyoh/skills/lingry)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown with word and candidate details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [A published candidate returns a transaction ID; generating a candidate does not publish it.]\n\n## Skill Version(s):\n\n2.0.9 (source: ClawHub release metadata; bundled files declare 2.1.0)\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\nFile v2.0.9:INSTALL.json\n\n{\n  \"schema\": \"lingry.install.v1\",\n  \"name\": \"lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"agent-skill\",\n  \"entry_skill\": \"SKILL.md\",\n  \"runtime\": {\n    \"name\": \"node\",\n    \"minimum_version\": \"18\"\n  },\n  \"verify\": {\n    \"command\": [\"node\", \"bin/lingry-agent.mjs\", \"verify-install\"]\n  },\n  \"source\": {\n    \"repository\": \"https://github.com/svetlyoh/web-wallet\",\n    \"path\": \"openclaw/skills/lingry\"\n  },\n  \"supported_install_modes\": [\n    \"openclaw-clawhub\",\n    \"muse-local-skill\",\n    \"generic-skill-directory\",\n    \"git-sparse-checkout\",\n    \"portable-archive\"\n  ]\n}\n\nFile v2.0.9:package.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"module\",\n  \"bin\": {\n    \"lingry-agent\": \"bin/lingry-agent.mjs\"\n  },\n  \"dependencies\": {},\n  \"engines\": {\n    \"node\": \">=18\"\n  }\n}\n\nArchive v2.0.8: 9 files, 13286 bytes\n\nFiles: bin/lingry-agent.mjs (5136b), CHANGELOG.md (3813b), INSTALL.json (566b), package.json (195b), README.md (4350b), skill-card.md (1740b), SKILL.md (7536b), src/runtime.mjs (6434b), _meta.json (125b)\n\nFile v2.0.8:SKILL.md\n\n---\nname: lingry\ndescription: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\nversion: 2.1.0\nhomepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n    homepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\n---\n\n# Lingry agent skill\n\nUse Lingry to discover public words and generate candidate terms. At runtime, the skill calls only `https://lingry.net`. It stores no local state or credential and uses no wallet or signing key. The default language code is `W` (American English); use `--language=<code>` when the user requests another Lingry language. `E` means British English. Do not silently force a locale variant.\n\n## Install\n\nLingry is a multi-file Node.js skill. `SKILL.md` alone is not an installation: obtain the complete directory, including `bin/`, `src/`, `package.json`, `INSTALL.json`, and `CHANGELOG.md`. Node.js >= 18 is required. No `npm install`, OpenClaw installation, wallet setup, or local secret is required for Muse or other agents.\n\n### OpenClaw\n\nFrom the OpenClaw workspace, use the ClawHub package:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nDownload or install the complete Lingry package from the [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry), then extract it if needed. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`. Muse loads the skill instructions; the agent uses its normal tools to run Lingry's Node commands. It does not need OpenClaw.\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\n### Other SKILL.md-compatible agents\n\nDownload or install the complete package from the [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry), then place the resulting `lingry` directory in your agent's documented skills location. If it supports the cross-agent convention, `~/.agents/skills/lingry/` is an option; do not assume every agent scans it. Confirm the installed folder has `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`, then run `node bin/lingry-agent.mjs verify-install` from that folder. An agent may instead use an absolute path to `bin/lingry-agent.mjs`.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout (or equivalent PowerShell commands on Windows) to obtain the clean seven-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout\n```\n\nThe clean package is at `skills/lingry/`. Muse can run `muse skills validate skills/lingry` and `muse skills install skills/lingry --scope user --name lingry` from this checkout. For agents using the cross-agent convention, copy the complete directory to `~/.agents/skills/lingry/` (for example, `mkdir -p ~/.agents/skills && cp -R skills/lingry ~/.agents/skills/lingry`).\n\n### Verify the downloaded package\n\nFrom the downloaded or installed `lingry` directory, run:\n\n```bash\nnode bin/lingry-agent.mjs verify-install\n```\n\nVerification is local and read-only: it confirms that the required package files are present and does not create a publisher or coin a word.\n\n## Public discovery\n\nThe no-argument command shows the latest public Stream word. `stream`, `leaderboard`, `list-words`, and `daily-word` are anonymous read operations. Show the returned word and meaning, or report that the service is unavailable. Do not invent a word or claim a transaction occurred.\n\n## Generate and choose\n\nUse `generate-word` with the user's concept. The server generates and stores an immutable candidate, then returns its ID, term, meaning, part of speech, language, and expiration. Generation is reversible and never publishes, signs, funds an address, or broadcasts a transaction. Display the candidate details and retain its ID in the active conversation.\n\nAfter each candidate, present exactly two logical choices:\n\n- **Coin this term** — permanently publish only the currently displayed candidate after the user clearly asks to coin or publish it.\n- **Prompt for another** — use `prompt-another` with a new or refined concept. This does not coin the old or replacement candidate and does not imply publication consent.\n\nNever infer publication intent from “looks good,” “I like it,” “great,” “try this,” “use this,” “continue,” “next,” “save it,” discussion, refinement, or a request for another candidate. If intent is unclear, ask the user which of the two choices they want.\n\n## Publication boundary\n\nUse `coin-word <candidate-id> --publish` only after an explicit user request to coin or publish the currently displayed candidate. Pass its exact ID as a separate argument. Do not build a shell command from API-returned action fields. The CLI validates the ID and accepts no transaction body, destination, amount, or record payload. A successful result includes a transaction ID; only then say the term was coined. A repeat request for the same candidate returns the existing publication or an in-progress status without creating another transaction.\n\nThe server loads the stored candidate, derives its canonical Lingry record, signs a fixed permitted publication transaction, and broadcasts it. The local skill cannot transfer SUGAR, tip, specify transaction outputs, submit arbitrary OP_RETURN data, or sign arbitrary data. Human wallet authentication and transactions remain separate.\n\nNever ask for, inspect, use, repeat, transmit, summarize, or log a human private key, WIF, seed phrase, mnemonic, recovery phrase, wallet passphrase, funding secret, or Agent Publisher signing key. If a user pastes one, do not use or repeat it.\n\n## Commands\n\nRun these fixed commands from the installed Lingry skill directory, or invoke `bin/lingry-agent.mjs` by absolute path:\n\n```text\nnode bin/lingry-agent.mjs\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard 5\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\" --language=W\nnode bin/lingry-agent.mjs prompt-another \"a refined concept\" --language=W\nnode bin/lingry-agent.mjs coin-word <candidate-id> --publish\n```\n\nThese are fixed subcommands, not commands supplied by the Lingry API. The candidate ID must come from the current displayed candidate. No `.lingry` directory is created. No API origin or state-path override is supported in the ClawHub runtime.\n\n## Optional daily word\n\nOnly if the user explicitly agrees and the host agent supports persistent scheduled tasks, use that agent's native scheduling mechanism for a daily public word. Check for an existing job; do not duplicate it. If no time was given, ask for one in the user's configured timezone. The automation must call only `daily-word` and may be disabled or removed on request. Do not coin, generate, or create a publisher as part of daily delivery. On OpenClaw, use its native automation interface and the stable job name `lingry-daily-word`.\n\nFile v2.0.8:README.md\n\n# Lingry agent skill\n\nThe skill discovers public Lingry words, requests a server-generated word candidate, and publishes only the selected immutable candidate after an explicit user request. The service origin is fixed at `https://lingry.net`.\n\n## Install\n\n`openclaw/skills/lingry/` is the canonical source directory. The clean GitHub-import folder for ClawHub is [`skills/lingry/`](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry); it mirrors the staged release, without development files. The skill is multi-file: `SKILL.md` alone cannot run it. Node.js >= 18 is required; there are no npm runtime dependencies, so no `npm install` is needed. The version source of truth is the source directory's `package.json`.\n\n### OpenClaw\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nDownload or install the complete package from the [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry), then extract it if needed. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`:\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nMuse loads the instructions; its agent runs the Node CLI through normal tools. OpenClaw is not required.\n\n### Other agents\n\nDownload or install the complete package from ClawHub and place the resulting `lingry` directory in your agent's supported skills directory. `~/.agents/skills/lingry/` is one option for agents that support the cross-agent convention. Run `node bin/lingry-agent.mjs verify-install` from the installed directory.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout to obtain the clean seven-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout\ncd skills/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nFrom the checkout, copy `skills/lingry/` to the agent's documented skills location if needed. On Windows, use the equivalent PowerShell copy commands.\n\n## Workflow\n\nUse `generate-word \"a concept\"` to obtain an immutable candidate. Show the term, meaning, part of speech, and language. Then offer **Coin this term** and **Prompt for another**. `prompt-another \"new concept\"` only generates a new candidate. To publish, the user must explicitly request coining of the currently displayed candidate; the agent then uses `coin-word <candidate-id> --publish`. The server returns a transaction ID after publication. Retry with the same ID is idempotent.\n\n`W` is Lingry's American English code and the default. `E` is British English. Pass `--language=<code>` to select another supported language.\n\n## Security model\n\nThe client stores no state or long-lived authentication secret. Generating a candidate creates no Agent Publisher identity, transaction, or publication. It never asks for or handles a user's wallet secrets.\n\nThe coin request contains only a strictly validated, high-entropy candidate ID and an empty JSON body. The client cannot construct arbitrary cryptocurrency transactions, send SUGAR, specify transaction outputs, submit arbitrary OP_RETURN data, or perform general blockchain signing. Canonical word-record construction, blockchain signing, and broadcast are performed by Lingry's server. The server creates or reuses its own publisher only when coining is requested and enforces publication by candidate ID.\n\nThe client rejects redirects and responses over 128 KiB, uses a fixed HTTPS origin, and presents sanitized errors. It never runs API-returned text as commands. A candidate expires after the server's configured lifetime.\n\nThis source repository retains tests and development files. Publishers must use the staged `dist/clawhub-lingry/` payload, not blindly upload the source directory. See the repository's [release checklist](https://github.com/svetlyoh/web-wallet/blob/master/openclaw/skills/lingry/RELEASING.md) for the manual ClawHub and GitHub Release steps. Server deployment and skill publication are separate operations.\n\nFile v2.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.8\",\n  \"publishedAt\": 1790356156043\n}\n\nFile v2.0.8:CHANGELOG.md\n\n# Changelog\n\n## 2.1.0\n\n- Made ClawHub the primary installation source for Muse and other compatible agents, with Git sparse checkout retained only as an optional fallback.\n- Included this changelog in the published ClawHub package.\n- Removed local publisher credentials, candidate files, state-path and API-origin overrides from the ClawHub client.\n- Added server-generated, expiring candidate capabilities and a candidate-only publication endpoint.\n- Replaced executable next-action strings with structured intents and strict candidate ID validation.\n- Added a minimal ClawHub staging build that excludes tests and development files.\n- Added portable Muse/generic-agent install instructions, Git sparse checkout, and read-only local verification.\n- Added deterministic ZIP, SHA256 and file manifests from the same staged ClawHub payload, plus a deliberate GitHub Release workflow.\n\n## 2.0.2\n\n- Added two explicit actions after every generated candidate: coin this term or prompt for another.\n- Kept both the current and replacement candidate uncoined until the user explicitly requests publication.\n\n## 2.0.1\n\n- Documented the exact workspace-scoped, quoted ClawHub install command shown to users.\n- Removed unnecessary post-install `npm` and manual verification steps.\n- Confirmed clean-install word generation automatically creates the workspace credential, bootstraps the Agent Publisher, and opens a short-lived session without user-provided keys or secrets.\n- Clarified that publisher-key encryption is server-managed and operator configuration errors are not transient client failures.\n\n## 2.0.0\n\n- Removed the OpenClaw local Sugarchain wallet, private-key import, browser API Session copy/paste, and manual transaction approval workflow.\n- Added automatic workspace-scoped Agent Publisher registration and short-lived session renewal.\n- Added one unique Lingry-managed Sugarchain publishing address per OpenClaw agent workspace.\n- Added autonomous, policy-constrained coining of immutable canonical Lingry candidates.\n- Added first-use public Stream onboarding and read-only Daily Lingry Word automation guidance.\n\n## 1.0.7\n\n- Change default public leaderboard and stream command limits to 100 records.\n\n## 1.0.6\n\n- Accept direct public snapshot responses for leaderboard and stream commands.\n\n## 1.0.5\n\n- Added public hourly-indexed leaderboard and stream commands for OpenClaw.\n\n## 1.0.4\n\n- Clarify first-run setup: create or open a `lingry.net` wallet first, import the matching private/login key on Ubuntu OpenClaw, then configure the 30-day API session token.\n- Add stale OpenClaw gateway environment troubleshooting for cases where terminal `auth-status` accepts a new token but chat still reports an old expiry.\n\n## 1.0.3\n\n- Add first-launch OpenClaw setup instructions for ownership repair, wallet import, session-token storage, gateway restart, and terminal testing.\n\n## 1.0.2\n\n- Align `verify-install` with the exact file list ClawHub publishes and installs.\n\n## 1.0.1\n\n- Set the built-in API default to `https://lingry.net`.\n- Add `bin/lingry-wallet.mjs` for interactive-terminal-only wallet setup, grant signing, transaction approval, and broadcasting.\n- Change the agent to prepare non-secret request files instead of decrypting wallets, signing transactions, or broadcasting.\n- Add `verify-install` and clean-room package tests for standalone ClawHub installs.\n- Remove wallet-passphrase requirements from the OpenClaw agent contract and documentation.\n\n## 1.0.0\n\n- Create standalone ClawHub skill package.\n- Add ClawHub metadata in `SKILL.md`.\n- Restrict command surface to safe user-facing Lingry workflows.\n- Require explicit `--confirm-broadcast` for coining.\n- Exclude private-key export, cron installation, plugin lifecycle hooks, deployment administration, and server-wallet custody.\n\nFile v2.0.8:skill-card.md\n\n## Description:\n\nDiscover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAgent users discover public Lingry words, create word candidates from their concepts, and explicitly choose whether to publish a selected candidate.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Concepts submitted for candidate generation are sent to lingry.net.\n\nMitigation: Avoid submitting confidential or sensitive concepts to the service.\n\nRisk: Coining irreversibly publishes the selected candidate.\n\nMitigation: Request explicit approval for the exact current candidate before coining it.\n\n## Reference(s):\n\n- [Lingry on ClawHub](https://clawhub.ai/svetlyoh/skills/lingry)\n- [Skill homepage (declared in metadata)](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry)\n- [Lingry service](https://lingry.net)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Shell commands, Guidance]\n\n**Output Format:** [Markdown with word details and optional shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Candidates are not published until the user explicitly requests coining.]\n\n## Skill Version(s):\n\n2.0.8 (source: ClawHub release metadata; bundled files state 2.1.0)\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\nFile v2.0.8:INSTALL.json\n\n{\n  \"schema\": \"lingry.install.v1\",\n  \"name\": \"lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"agent-skill\",\n  \"entry_skill\": \"SKILL.md\",\n  \"runtime\": {\n    \"name\": \"node\",\n    \"minimum_version\": \"18\"\n  },\n  \"verify\": {\n    \"command\": [\"node\", \"bin/lingry-agent.mjs\", \"verify-install\"]\n  },\n  \"source\": {\n    \"repository\": \"https://github.com/svetlyoh/web-wallet\",\n    \"path\": \"openclaw/skills/lingry\"\n  },\n  \"supported_install_modes\": [\n    \"openclaw-clawhub\",\n    \"muse-local-skill\",\n    \"generic-skill-directory\",\n    \"git-sparse-checkout\",\n    \"portable-archive\"\n  ]\n}\n\nFile v2.0.8:package.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"module\",\n  \"bin\": {\n    \"lingry-agent\": \"bin/lingry-agent.mjs\"\n  },\n  \"dependencies\": {},\n  \"engines\": {\n    \"node\": \">=18\"\n  }\n}\n\nArchive v2.0.7: 8 files, 11426 bytes\n\nFiles: bin/lingry-agent.mjs (5120b), INSTALL.json (566b), package.json (195b), README.md (4319b), skill-card.md (1827b), SKILL.md (7460b), src/runtime.mjs (6434b), _meta.json (125b)\n\nFile v2.0.7:SKILL.md\n\n---\nname: lingry\ndescription: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\nversion: 2.1.0\nhomepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n    homepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\n---\n\n# Lingry agent skill\n\nUse Lingry to discover public words and generate candidate terms. At runtime, the skill calls only `https://lingry.net`. It stores no local state or credential and uses no wallet or signing key. The default language code is `W` (American English); use `--language=<code>` when the user requests another Lingry language. `E` means British English. Do not silently force a locale variant.\n\n## Install\n\nLingry is a multi-file Node.js skill. `SKILL.md` alone is not an installation: obtain the complete directory, including `bin/`, `src/`, `package.json`, and `INSTALL.json`. Node.js >= 18 is required. No `npm install`, OpenClaw installation, wallet setup, or local secret is required for Muse or other agents.\n\n### OpenClaw\n\nFrom the OpenClaw workspace, use the ClawHub package:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nDownload or install the complete Lingry package from the [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry), then extract it if needed. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`. Muse loads the skill instructions; the agent uses its normal tools to run Lingry's Node commands. It does not need OpenClaw.\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\n### Other SKILL.md-compatible agents\n\nDownload or install the complete package from the [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry), then place the resulting `lingry` directory in your agent's documented skills location. If it supports the cross-agent convention, `~/.agents/skills/lingry/` is an option; do not assume every agent scans it. Confirm the installed folder has `SKILL.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`, then run `node bin/lingry-agent.mjs verify-install` from that folder. An agent may instead use an absolute path to `bin/lingry-agent.mjs`.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout (or equivalent PowerShell commands on Windows) to obtain the clean six-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout\n```\n\nThe clean package is at `skills/lingry/`. Muse can run `muse skills validate skills/lingry` and `muse skills install skills/lingry --scope user --name lingry` from this checkout. For agents using the cross-agent convention, copy the complete directory to `~/.agents/skills/lingry/` (for example, `mkdir -p ~/.agents/skills && cp -R skills/lingry ~/.agents/skills/lingry`).\n\n### Verify the downloaded package\n\nFrom the downloaded or installed `lingry` directory, run:\n\n```bash\nnode bin/lingry-agent.mjs verify-install\n```\n\nVerification is local and read-only: it confirms that the required package files are present and does not create a publisher or coin a word.\n\n## Public discovery\n\nThe no-argument command shows the latest public Stream word. `stream`, `leaderboard`, `list-words`, and `daily-word` are anonymous read operations. Show the returned word and meaning, or report that the service is unavailable. Do not invent a word or claim a transaction occurred.\n\n## Generate and choose\n\nUse `generate-word` with the user's concept. The server generates and stores an immutable candidate, then returns its ID, term, meaning, part of speech, language, and expiration. Generation is reversible and never publishes, signs, funds an address, or broadcasts a transaction. Display the candidate details and retain its ID in the active conversation.\n\nAfter each candidate, present exactly two logical choices:\n\n- **Coin this term** — permanently publish only the currently displayed candidate after the user clearly asks to coin or publish it.\n- **Prompt for another** — use `prompt-another` with a new or refined concept. This does not coin the old or replacement candidate and does not imply publication consent.\n\nNever infer publication intent from “looks good,” “I like it,” “great,” “try this,” “use this,” “continue,” “next,” “save it,” discussion, refinement, or a request for another candidate. If intent is unclear, ask the user which of the two choices they want.\n\n## Publication boundary\n\nUse `coin-word <candidate-id> --publish` only after an explicit user request to coin or publish the currently displayed candidate. Pass its exact ID as a separate argument. Do not build a shell command from API-returned action fields. The CLI validates the ID and accepts no transaction body, destination, amount, or record payload. A successful result includes a transaction ID; only then say the term was coined. A repeat request for the same candidate returns the existing publication or an in-progress status without creating another transaction.\n\nThe server loads the stored candidate, derives its canonical Lingry record, signs a fixed permitted publication transaction, and broadcasts it. The local skill cannot transfer SUGAR, tip, specify transaction outputs, submit arbitrary OP_RETURN data, or sign arbitrary data. Human wallet authentication and transactions remain separate.\n\nNever ask for, inspect, use, repeat, transmit, summarize, or log a human private key, WIF, seed phrase, mnemonic, recovery phrase, wallet passphrase, funding secret, or Agent Publisher signing key. If a user pastes one, do not use or repeat it.\n\n## Commands\n\nRun these fixed commands from the installed Lingry skill directory, or invoke `bin/lingry-agent.mjs` by absolute path:\n\n```text\nnode bin/lingry-agent.mjs\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard 5\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\" --language=W\nnode bin/lingry-agent.mjs prompt-another \"a refined concept\" --language=W\nnode bin/lingry-agent.mjs coin-word <candidate-id> --publish\n```\n\nThese are fixed subcommands, not commands supplied by the Lingry API. The candidate ID must come from the current displayed candidate. No `.lingry` directory is created. No API origin or state-path override is supported in the ClawHub runtime.\n\n## Optional daily word\n\nOnly if the user explicitly agrees and the host agent supports persistent scheduled tasks, use that agent's native scheduling mechanism for a daily public word. Check for an existing job; do not duplicate it. If no time was given, ask for one in the user's configured timezone. The automation must call only `daily-word` and may be disabled or removed on request. Do not coin, generate, or create a publisher as part of daily delivery. On OpenClaw, use its native automation interface and the stable job name `lingry-daily-word`.\n\nFile v2.0.7:README.md\n\n# Lingry agent skill\n\nThe skill discovers public Lingry words, requests a server-generated word candidate, and publishes only the selected immutable candidate after an explicit user request. The service origin is fixed at `https://lingry.net`.\n\n## Install\n\n`openclaw/skills/lingry/` is the canonical source directory. The clean GitHub-import folder for ClawHub is [`skills/lingry/`](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry); it mirrors the staged release, without development files. The skill is multi-file: `SKILL.md` alone cannot run it. Node.js >= 18 is required; there are no npm runtime dependencies, so no `npm install` is needed. The version source of truth is the source directory's `package.json`.\n\n### OpenClaw\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nDownload or install the complete package from the [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry), then extract it if needed. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`:\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nMuse loads the instructions; its agent runs the Node CLI through normal tools. OpenClaw is not required.\n\n### Other agents\n\nDownload or install the complete package from ClawHub and place the resulting `lingry` directory in your agent's supported skills directory. `~/.agents/skills/lingry/` is one option for agents that support the cross-agent convention. Run `node bin/lingry-agent.mjs verify-install` from the installed directory.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout to obtain the clean six-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout\ncd skills/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nFrom the checkout, copy `skills/lingry/` to the agent's documented skills location if needed. On Windows, use the equivalent PowerShell copy commands.\n\n## Workflow\n\nUse `generate-word \"a concept\"` to obtain an immutable candidate. Show the term, meaning, part of speech, and language. Then offer **Coin this term** and **Prompt for another**. `prompt-another \"new concept\"` only generates a new candidate. To publish, the user must explicitly request coining of the currently displayed candidate; the agent then uses `coin-word <candidate-id> --publish`. The server returns a transaction ID after publication. Retry with the same ID is idempotent.\n\n`W` is Lingry's American English code and the default. `E` is British English. Pass `--language=<code>` to select another supported language.\n\n## Security model\n\nThe client stores no state or long-lived authentication secret. Generating a candidate creates no Agent Publisher identity, transaction, or publication. It never asks for or handles a user's wallet secrets.\n\nThe coin request contains only a strictly validated, high-entropy candidate ID and an empty JSON body. The client cannot construct arbitrary cryptocurrency transactions, send SUGAR, specify transaction outputs, submit arbitrary OP_RETURN data, or perform general blockchain signing. Canonical word-record construction, blockchain signing, and broadcast are performed by Lingry's server. The server creates or reuses its own publisher only when coining is requested and enforces publication by candidate ID.\n\nThe client rejects redirects and responses over 128 KiB, uses a fixed HTTPS origin, and presents sanitized errors. It never runs API-returned text as commands. A candidate expires after the server's configured lifetime.\n\nThis source repository retains tests and development files. Publishers must use the staged `dist/clawhub-lingry/` payload, not blindly upload the source directory. See the repository's [release checklist](https://github.com/svetlyoh/web-wallet/blob/master/openclaw/skills/lingry/RELEASING.md) for the manual ClawHub and GitHub Release steps. Server deployment and skill publication are separate operations.\n\nFile v2.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.7\",\n  \"publishedAt\": 1790355795084\n}\n\nFile v2.0.7:skill-card.md\n\n## Description:\n\nDiscover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAgent users can browse public Lingry words, generate candidate terms from concepts, and publish a selected term only after explicitly choosing to coin it.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Word-generation concepts are sent to Lingry.\n\nMitigation: Do not include secrets, personal data, or confidential business text in prompts.\n\nRisk: Coining a selected term permanently publishes it.\n\nMitigation: Request clear publication intent for the currently selected candidate before coining.\n\nRisk: Optional daily-word automation sends recurring requests.\n\nMitigation: Enable it only with the user's explicit agreement.\n\n## Reference(s):\n\n- [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry)\n- [Declared project homepage](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry)\n- [Lingry service](https://lingry.net)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Text or Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Public word details or generated candidate details; publication confirmation includes a transaction ID when successful.]\n\n## Skill Version(s):\n\n2.0.7 (source: ClawHub release metadata)\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\nFile v2.0.7:INSTALL.json\n\n{\n  \"schema\": \"lingry.install.v1\",\n  \"name\": \"lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"agent-skill\",\n  \"entry_skill\": \"SKILL.md\",\n  \"runtime\": {\n    \"name\": \"node\",\n    \"minimum_version\": \"18\"\n  },\n  \"verify\": {\n    \"command\": [\"node\", \"bin/lingry-agent.mjs\", \"verify-install\"]\n  },\n  \"source\": {\n    \"repository\": \"https://github.com/svetlyoh/web-wallet\",\n    \"path\": \"openclaw/skills/lingry\"\n  },\n  \"supported_install_modes\": [\n    \"openclaw-clawhub\",\n    \"muse-local-skill\",\n    \"generic-skill-directory\",\n    \"git-sparse-checkout\",\n    \"portable-archive\"\n  ]\n}\n\nFile v2.0.7:package.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"module\",\n  \"bin\": {\n    \"lingry-agent\": \"bin/lingry-agent.mjs\"\n  },\n  \"dependencies\": {},\n  \"engines\": {\n    \"node\": \">=18\"\n  }\n}\n\nArchive v2.0.6: 8 files, 11757 bytes\n\nFiles: bin/lingry-agent.mjs (5120b), INSTALL.json (566b), package.json (195b), README.md (4636b), skill-card.md (1904b), SKILL.md (7698b), src/runtime.mjs (6434b), _meta.json (125b)\n\nFile v2.0.6:SKILL.md\n\n---\nname: lingry\ndescription: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\nversion: 2.1.0\nhomepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n    homepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\n---\n\n# Lingry agent skill\n\nUse Lingry to discover public words and generate candidate terms. At runtime, the skill calls only `https://lingry.net`. It stores no local state or credential and uses no wallet or signing key. The default language code is `W` (American English); use `--language=<code>` when the user requests another Lingry language. `E` means British English. Do not silently force a locale variant.\n\n## Install\n\nLingry is a multi-file Node.js skill. `SKILL.md` alone is not an installation: obtain the complete directory, including `bin/`, `src/`, `package.json`, and `INSTALL.json`. Node.js >= 18 is required. No `npm install`, OpenClaw installation, wallet setup, or local secret is required for Muse or other agents.\n\n### OpenClaw\n\nFrom the OpenClaw workspace, use the ClawHub package:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nObtain the complete Lingry directory from a [portable GitHub release](https://github.com/svetlyoh/web-wallet/releases) or the Git sparse checkout below. Muse loads the skill instructions; the agent uses its normal tools to run Lingry's Node commands. It does not need OpenClaw.\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\n### Other SKILL.md-compatible agents\n\nPlace the complete `lingry` directory in your agent's documented skills location. If it supports the cross-agent convention, `~/.agents/skills/lingry/` is an option; do not assume every agent scans it. Confirm the installed folder has `SKILL.md`, `bin/`, and `src/`, then run `node bin/lingry-agent.mjs verify-install` from that folder. An agent may instead use an absolute path to `bin/lingry-agent.mjs`.\n\n### Manual installation from GitHub\n\nIf a web reader cannot download the ClawHub binary package, use Git sparse checkout (or equivalent PowerShell commands on Windows):\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set openclaw/skills/lingry\ngit checkout\n```\n\nThe complete source skill is at `openclaw/skills/lingry/`. Muse can run `muse skills validate openclaw/skills/lingry` and `muse skills install openclaw/skills/lingry --scope user --name lingry` from this checkout. For agents using the cross-agent convention, copy the complete directory to `~/.agents/skills/lingry/` (for example, `mkdir -p ~/.agents/skills && cp -R openclaw/skills/lingry ~/.agents/skills/lingry`).\n\n### Portable archive and verification\n\nWhen a portable release is published, download `lingry-skill-<version>.zip` and its matching `.sha256` from [GitHub Releases](https://github.com/svetlyoh/web-wallet/releases). If no release asset exists yet, use the Git sparse checkout above. Verify the checksum, then extract the archive; it contains one top-level `lingry/` folder. Place that folder in your agent's skills location.\n\n```bash\nsha256sum -c lingry-skill-<version>.zip.sha256\ncd lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nOn PowerShell, compare `Get-FileHash .\\lingry-skill-<version>.zip -Algorithm SHA256` with the `.sha256` file. On macOS, `shasum -a 256 lingry-skill-<version>.zip` provides the hash. Verification is local and read-only: it does not create a publisher or coin a word.\n\n## Public discovery\n\nThe no-argument command shows the latest public Stream word. `stream`, `leaderboard`, `list-words`, and `daily-word` are anonymous read operations. Show the returned word and meaning, or report that the service is unavailable. Do not invent a word or claim a transaction occurred.\n\n## Generate and choose\n\nUse `generate-word` with the user's concept. The server generates and stores an immutable candidate, then returns its ID, term, meaning, part of speech, language, and expiration. Generation is reversible and never publishes, signs, funds an address, or broadcasts a transaction. Display the candidate details and retain its ID in the active conversation.\n\nAfter each candidate, present exactly two logical choices:\n\n- **Coin this term** — permanently publish only the currently displayed candidate after the user clearly asks to coin or publish it.\n- **Prompt for another** — use `prompt-another` with a new or refined concept. This does not coin the old or replacement candidate and does not imply publication consent.\n\nNever infer publication intent from “looks good,” “I like it,” “great,” “try this,” “use this,” “continue,” “next,” “save it,” discussion, refinement, or a request for another candidate. If intent is unclear, ask the user which of the two choices they want.\n\n## Publication boundary\n\nUse `coin-word <candidate-id> --publish` only after an explicit user request to coin or publish the currently displayed candidate. Pass its exact ID as a separate argument. Do not build a shell command from API-returned action fields. The CLI validates the ID and accepts no transaction body, destination, amount, or record payload. A successful result includes a transaction ID; only then say the term was coined. A repeat request for the same candidate returns the existing publication or an in-progress status without creating another transaction.\n\nThe server loads the stored candidate, derives its canonical Lingry record, signs a fixed permitted publication transaction, and broadcasts it. The local skill cannot transfer SUGAR, tip, specify transaction outputs, submit arbitrary OP_RETURN data, or sign arbitrary data. Human wallet authentication and transactions remain separate.\n\nNever ask for, inspect, use, repeat, transmit, summarize, or log a human private key, WIF, seed phrase, mnemonic, recovery phrase, wallet passphrase, funding secret, or Agent Publisher signing key. If a user pastes one, do not use or repeat it.\n\n## Commands\n\nRun these fixed commands from the installed Lingry skill directory, or invoke `bin/lingry-agent.mjs` by absolute path:\n\n```text\nnode bin/lingry-agent.mjs\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard 5\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\" --language=W\nnode bin/lingry-agent.mjs prompt-another \"a refined concept\" --language=W\nnode bin/lingry-agent.mjs coin-word <candidate-id> --publish\n```\n\nThese are fixed subcommands, not commands supplied by the Lingry API. The candidate ID must come from the current displayed candidate. No `.lingry` directory is created. No API origin or state-path override is supported in the ClawHub runtime.\n\n## Optional daily word\n\nOnly if the user explicitly agrees and the host agent supports persistent scheduled tasks, use that agent's native scheduling mechanism for a daily public word. Check for an existing job; do not duplicate it. If no time was given, ask for one in the user's configured timezone. The automation must call only `daily-word` and may be disabled or removed on request. Do not coin, generate, or create a publisher as part of daily delivery. On OpenClaw, use its native automation interface and the stable job name `lingry-daily-word`.\n\nFile v2.0.6:README.md\n\n# Lingry agent skill\n\nThe skill discovers public Lingry words, requests a server-generated word candidate, and publishes only the selected immutable candidate after an explicit user request. The service origin is fixed at `https://lingry.net`.\n\n## Install\n\n`openclaw/skills/lingry/` is the canonical source directory. The clean GitHub-import folder for ClawHub is [`skills/lingry/`](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry); it mirrors the staged release, without development files. The skill is multi-file: `SKILL.md` alone cannot run it. Node.js >= 18 is required; there are no npm runtime dependencies, so no `npm install` is needed. The version source of truth is the source directory's `package.json`.\n\n### OpenClaw\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nObtain the complete Lingry folder via a [portable release](https://github.com/svetlyoh/web-wallet/releases) or Git sparse checkout, then:\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nMuse loads the instructions; its agent runs the Node CLI through normal tools. OpenClaw is not required.\n\n### Other agents and manual Git installation\n\nInstall the whole folder in your agent's supported skills directory. `~/.agents/skills/lingry/` is one option for agents that support the cross-agent convention.\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set openclaw/skills/lingry\ngit checkout\ncd openclaw/skills/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nFrom the checkout, copy `openclaw/skills/lingry/` to the agent's documented skills location if needed. On Windows, use the equivalent PowerShell copy commands.\n\n### Portable ZIP\n\nWhen published, the [GitHub Releases page](https://github.com/svetlyoh/web-wallet/releases) is the stable location for `lingry-skill-<version>.zip`, its `.sha256`, and its manifest. Until then, use the Git sparse checkout above. The ZIP extracts to a top-level `lingry/` directory containing the same files as the staged ClawHub package. Check integrity before installation:\n\n```bash\nsha256sum -c lingry-skill-<version>.zip.sha256\n```\n\nPowerShell: `Get-FileHash .\\lingry-skill-<version>.zip -Algorithm SHA256`. macOS: `shasum -a 256 lingry-skill-<version>.zip`. Compare the reported hash to the `.sha256` file. After extraction, run `node bin/lingry-agent.mjs verify-install` inside `lingry/`.\n\n## Workflow\n\nUse `generate-word \"a concept\"` to obtain an immutable candidate. Show the term, meaning, part of speech, and language. Then offer **Coin this term** and **Prompt for another**. `prompt-another \"new concept\"` only generates a new candidate. To publish, the user must explicitly request coining of the currently displayed candidate; the agent then uses `coin-word <candidate-id> --publish`. The server returns a transaction ID after publication. Retry with the same ID is idempotent.\n\n`W` is Lingry's American English code and the default. `E` is British English. Pass `--language=<code>` to select another supported language.\n\n## Security model\n\nThe client stores no state or long-lived authentication secret. Generating a candidate creates no Agent Publisher identity, transaction, or publication. It never asks for or handles a user's wallet secrets.\n\nThe coin request contains only a strictly validated, high-entropy candidate ID and an empty JSON body. The client cannot construct arbitrary cryptocurrency transactions, send SUGAR, specify transaction outputs, submit arbitrary OP_RETURN data, or perform general blockchain signing. Canonical word-record construction, blockchain signing, and broadcast are performed by Lingry's server. The server creates or reuses its own publisher only when coining is requested and enforces publication by candidate ID.\n\nThe client rejects redirects and responses over 128 KiB, uses a fixed HTTPS origin, and presents sanitized errors. It never runs API-returned text as commands. A candidate expires after the server's configured lifetime.\n\nThis source repository retains tests and development files. Publishers must use the staged `dist/clawhub-lingry/` payload, not blindly upload the source directory. See the repository's [release checklist](https://github.com/svetlyoh/web-wallet/blob/master/openclaw/skills/lingry/RELEASING.md) for the manual ClawHub and GitHub Release steps. Server deployment and skill publication are separate operations.\n\nFile v2.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.6\",\n  \"publishedAt\": 1790354990611\n}\n\nFile v2.0.6:skill-card.md\n\n## Description:\n\nDiscover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAgent users can discover public Lingry words, generate candidate terms from concepts, and explicitly publish a selected candidate.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Coining permanently publishes the selected word candidate.\n\nMitigation: Generate and review candidates freely; coin only the currently displayed candidate after an explicit publication request.\n\nRisk: Wallet secrets may be exposed if shared during use.\n\nMitigation: Do not provide private keys, seed phrases, or wallet credentials to the skill.\n\nRisk: An optional daily word job persists until disabled.\n\nMitigation: Enable it only with explicit consent and keep it limited to read-only daily-word reminders.\n\n## Reference(s):\n\n- [Lingry ClawHub listing](https://clawhub.ai/svetlyoh/skills/lingry)\n- [Project homepage (release metadata)](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Plain text or Markdown]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Candidate term and meaning; publication confirmation with transaction ID only after explicit coining.]\n\n## Skill Version(s):\n\n2.0.6 (source: ClawHub release metadata; bundled files declare 2.1.0, verify mismatch)\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\nFile v2.0.6:INSTALL.json\n\n{\n  \"schema\": \"lingry.install.v1\",\n  \"name\": \"lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"agent-skill\",\n  \"entry_skill\": \"SKILL.md\",\n  \"runtime\": {\n    \"name\": \"node\",\n    \"minimum_version\": \"18\"\n  },\n  \"verify\": {\n    \"command\": [\"node\", \"bin/lingry-agent.mjs\", \"verify-install\"]\n  },\n  \"source\": {\n    \"repository\": \"https://github.com/svetlyoh/web-wallet\",\n    \"path\": \"openclaw/skills/lingry\"\n  },\n  \"supported_install_modes\": [\n    \"openclaw-clawhub\",\n    \"muse-local-skill\",\n    \"generic-skill-directory\",\n    \"git-sparse-checkout\",\n    \"portable-archive\"\n  ]\n}\n\nFile v2.0.6:package.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.1.0\",\n  \"type\": \"module\",\n  \"bin\": {\n    \"lingry-agent\": \"bin/lingry-agent.mjs\"\n  },\n  \"dependencies\": {},\n  \"engines\": {\n    \"node\": \">=18\"\n  }\n}\n\nArchive v2.0.5: 6 files, 8332 bytes\n\nFiles: bin/lingry-agent.mjs (3331b), README.md (2417b), skill-card.md (1662b), SKILL.md (4358b), src/runtime.mjs (6434b), _meta.json (125b)\n\nFile v2.0.5:SKILL.md\n\n---\nname: lingry\ndescription: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\nversion: 2.1.0\nhomepage: https://lingry.net\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n---\n\n# Lingry for OpenClaw\n\nUse Lingry to discover public words and generate candidate terms. The only remote service is `https://lingry.net`. The skill stores no local state or credential and uses no wallet or signing key. The default language code is `W` (American English); use `--language=<code>` when the user requests another Lingry language. `E` means British English. Do not silently force a locale variant.\n\n## Public discovery\n\nThe no-argument command shows the latest public Stream word. `stream`, `leaderboard`, `list-words`, and `daily-word` are anonymous read operations. Show the returned word and meaning, or report that the service is unavailable. Do not invent a word or claim a transaction occurred.\n\n## Generate and choose\n\nUse `generate-word` with the user's concept. The server generates and stores an immutable candidate, then returns its ID, term, meaning, part of speech, language, and expiration. Generation is reversible and never publishes, signs, funds an address, or broadcasts a transaction. Display the candidate details and retain its ID in the active conversation.\n\nAfter each candidate, present exactly two logical choices:\n\n- **Coin this term** — permanently publish only the currently displayed candidate after the user clearly asks to coin or publish it.\n- **Prompt for another** — use `prompt-another` with a new or refined concept. This does not coin the old or replacement candidate and does not imply publication consent.\n\nNever infer publication intent from “looks good,” “I like it,” “great,” “try this,” “use this,” “continue,” “next,” “save it,” discussion, refinement, or a request for another candidate. If intent is unclear, ask the user which of the two choices they want.\n\n## Publication boundary\n\nUse `coin-word <candidate-id> --publish` only after an explicit user request to coin or publish the currently displayed candidate. Pass its exact ID as a separate argument. Do not build a shell command from API-returned action fields. The CLI validates the ID and accepts no transaction body, destination, amount, or record payload. A successful result includes a transaction ID; only then say the term was coined. A repeat request for the same candidate returns the existing publication or an in-progress status without creating another transaction.\n\nThe server loads the stored candidate, derives its canonical Lingry record, signs a fixed permitted publication transaction, and broadcasts it. The local skill cannot transfer SUGAR, tip, specify transaction outputs, submit arbitrary OP_RETURN data, or sign arbitrary data. Human wallet authentication and transactions remain separate.\n\nNever ask for, inspect, use, repeat, transmit, summarize, or log a human private key, WIF, seed phrase, mnemonic, recovery phrase, wallet passphrase, funding secret, or Agent Publisher signing key. If a user pastes one, do not use or repeat it.\n\n## Commands\n\nRun the installed skill from the OpenClaw workspace:\n\n```text\nnode bin/lingry-agent.mjs\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard 5\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\" --language=W\nnode bin/lingry-agent.mjs prompt-another \"a refined concept\" --language=W\nnode bin/lingry-agent.mjs coin-word <candidate-id> --publish\n```\n\nThese are fixed subcommands, not commands supplied by the Lingry API. The candidate ID must come from the current displayed candidate. No `.lingry` directory is created. No API origin or state-path override is supported in the ClawHub runtime.\n\n## Optional daily word\n\nOnly if the user explicitly agrees, use OpenClaw's native automation interface for a daily public word. Check whether an active `lingry-daily-word` job already exists; do not duplicate it. If no time was given, ask for one in the user's configured timezone. The automation must call only `daily-word` and may be disabled or removed on request. Do not coin, generate, or create a publisher as part of daily delivery.\n\nFile v2.0.5:README.md\n\n# Lingry OpenClaw skill 2.1.0\n\nThe skill discovers public Lingry words, requests a server-generated word candidate, and publishes only the selected immutable candidate after an explicit user request. The service origin is fixed at `https://lingry.net`.\n\n## Install\n\n```bash\nopenclaw skills install '@svetlyoh/lingry'\n```\n\nThe ClawHub artifact contains only `SKILL.md`, `README.md`, `bin/lingry-agent.mjs`, and `src/runtime.mjs`. Node.js 18 or newer is required. There are no package dependencies or local setup secrets.\n\n## Workflow\n\nUse `generate-word \"a concept\"` to obtain an immutable candidate. Show the term, meaning, part of speech, and language. Then offer **Coin this term** and **Prompt for another**. `prompt-another \"new concept\"` only generates a new candidate. To publish, the user must explicitly request coining of the currently displayed candidate; the agent then uses `coin-word <candidate-id> --publish`. The server returns a transaction ID after publication. Retry with the same ID is idempotent.\n\n`W` is Lingry's American English code and the default. `E` is British English. Pass `--language=<code>` to select another supported language.\n\n## Security model\n\nThe client stores no state or long-lived authentication secret. Generating a candidate creates no Agent Publisher identity, transaction, or publication. It never asks for or handles a user's wallet secrets.\n\nThe coin request contains only a strictly validated, high-entropy candidate ID and an empty JSON body. The client cannot construct arbitrary cryptocurrency transactions, send SUGAR, specify transaction outputs, submit arbitrary OP_RETURN data, or perform general blockchain signing. Canonical word-record construction, blockchain signing, and broadcast are performed by Lingry's server. The server creates or reuses its own publisher only when coining is requested and enforces publication by candidate ID.\n\nThe client rejects redirects and responses over 128 KiB, uses a fixed HTTPS origin, and presents sanitized errors. It never runs API-returned text as commands. A candidate expires after the server's configured lifetime.\n\nThis source repository retains tests and development files. Build the minimal publishable directory with `npm run build:clawhub` from the repository root, inspect `dist/clawhub-lingry/`, and publish that directory only after review. Server deployment and ClawHub publication are separate operations.\n\nFile v2.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.5\",\n  \"publishedAt\": 1790325288075\n}\n\nFile v2.0.5:skill-card.md\n\n## Description:\n\nDiscover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nOpenClaw users and their agents discover public words, develop new word candidates from concepts, and publish a selected candidate only on explicit request.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Generating a candidate sends its concept to Lingry's external service.\n\nMitigation: Avoid including sensitive concepts, and never provide wallet secrets.\n\nRisk: Coining publishes a candidate publicly and cannot be undone.\n\nMitigation: Show the selected candidate and require an explicit request to publish it before coining.\n\n## Reference(s):\n\n- [Lingry service](https://lingry.net)\n- [Lingry ClawHub release](https://clawhub.ai/svetlyoh/skills/lingry)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance, Shell commands]\n\n**Output Format:** [Markdown prose with word and candidate details; CLI responses are JSON]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Publication returns a transaction ID; candidate generation does not publish.]\n\n## Skill Version(s):\n\n2.0.5 (source: ClawHub release metadata)\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 v2.0.4: 15 files, 22823 bytes\n\nFiles: .clawhubignore (264b), bin/lingry-agent.mjs (11229b), CHANGELOG.md (2943b), LICENSE (914b), npm-shrinkwrap.json (317b), package-lock.json (317b), package.json (474b), README.md (4198b), SECURITY.md (1900b), skill-card.md (1921b), SKILL.md (8772b), src/runtime.mjs (10872b), SUPPORT.md (354b), test/skill-package.test.mjs (11589b), _meta.json (125b)\n\nFile v2.0.4:SKILL.md\n\n---\nname: lingry\ndescription: Create and permanently coin new words on Sugarchain, or discover the latest words from Lingry's public Stream. On first use, show the newest Lingry word and offer immediate word creation or discovery.\nversion: 2.0.2\nhomepage: https://lingry.net\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n        - npm\n    envVars:\n      - name: LINGRY_API_BASE_URL\n        required: false\n        description: Optional HTTPS Lingry API base URL. Defaults to https://lingry.net.\n      - name: LINGRY_AGENT_STATE_PATH\n        required: false\n        description: Optional override for workspace-specific Lingry agent state.\n      - name: LINGRY_DEFAULT_LANGUAGE_CODE\n        required: false\n        description: Default Lingry language code. Defaults to W.\n      - name: LINGRY_AGENT_REQUEST_TIMEOUT_MS\n        required: false\n        description: Timeout for Lingry HTTP requests.\n---\n\n# Lingry for OpenClaw\n\nLingry lets OpenClaw agents discover, create, and permanently coin new words on Sugarchain. Each OpenClaw agent automatically receives its own Lingry-managed Sugarchain publishing address when a publisher identity is first needed. Public discovery needs no account. OpenClaw never handles the blockchain signing key.\n\n## Install — Run Exactly\n\nFrom the OpenClaw workspace, use the quoted ClawHub reference exactly as shown:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\nThe quotes are intentional. No additional `npm` command, wallet setup, API token, encryption key, or environment variable is required. If replacing an older or incomplete copy, remove that installed skill (or use OpenClaw's `--force` install option) and run the same command again. Do not delete the workspace's `.lingry/agent.json`; an existing workspace credential reconnects automatically.\n\n## First Use — Engage Immediately\n\nOn the first use of this skill, run:\n\n```bash\nnode bin/lingry-agent.mjs\n```\n\nImmediately render the returned newest public Stream word. Do not begin with setup instructions. Then offer these two primary actions:\n\n- Invent a new word.\n- Show me the 5 latest words.\n\nFinally ask: “I can send you one new Lingry word every day. Want me to set that up?”\n\nPrefer demonstrating Lingry over explaining it. The no-argument command records onboarding in the current OpenClaw workspace at `.lingry/agent.json`, so `/new`, chat resets, gateway restarts, and machine restarts do not repeat the full welcome. `LINGRY_AGENT_STATE_PATH` is an explicit override.\n\nThe onboarding Stream request is anonymous and read-only. It must not create an Agent Publisher, fund an address, sign anything, or broadcast anything. If the Stream is unavailable, say so and still offer creation, coining, and discovery; never invent a featured word.\n\n## Discovery\n\nPublic commands require no identity:\n\n```bash\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\n```\n\nUse `stream 5` when the user asks for the five latest words. Keep the presentation compact. Reading public data must never bootstrap a publisher.\n\n## Create and Coin\n\nGenerate a reversible candidate:\n\n```bash\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\"\nnode bin/lingry-agent.mjs create-word-draft <term> <part-of-speech> <meaning>\n```\n\nAfter every generated candidate, show the term, part of speech, and meaning, then ask: “Coin this term, or prompt for another?” Present both actions clearly:\n\n- **Coin this term** — use the saved immutable candidate and proceed only when the user explicitly chooses permanent publication.\n- **Prompt for another** — leave the current candidate uncoined and generate a new candidate from the user's new or refined concept.\n\nDo not silently choose either action. A request for another term is not permission to coin the current or replacement term.\n\nDo not put a generated candidate on Sugarchain unless the user's request clearly includes coin, publish, post, or record on Sugarchain.\n\nWhen the user explicitly requests permanent publication, run:\n\n```bash\nnode bin/lingry-agent.mjs coin-word <candidate-id>\n```\n\nCoining is irreversible. There is no second transaction-approval step. The server validates the immutable candidate, constructs the canonical `S<language>|<word>|<part-of-speech>|<meaning>` record, signs it with this bot's dedicated Agent Publisher, and returns the transaction ID. Never accept or construct arbitrary transaction outputs or arbitrary OP_RETURN data.\n\nThe first authenticated operation automatically creates a persistent local `client_instance_id` and agent credential, bootstraps one Agent Publisher, and exchanges the credential for short-lived access tokens. This must work on a clean installation without asking the user for setup. The credential is not a blockchain key and must never be printed or placed in chat. Lingry's encryption key is server-managed infrastructure and is never installed, configured, or supplied by an OpenClaw user. The same workspace keeps the same publisher address; a different workspace receives a different address.\n\nUseful identity commands:\n\n```bash\nnode bin/lingry-agent.mjs agent-status\nnode bin/lingry-agent.mjs address\nnode bin/lingry-agent.mjs get-transaction <intent-id>\n```\n\n## Daily Lingry Word\n\nThe daily word is opt-in. Installation is not consent. Do not create any automation until the user explicitly agrees.\n\nAfter an affirmative reply, use OpenClaw's native persistent automation interface. Do not edit cron files, databases, Gateway state, or hidden APIs. Use the stable name `lingry-daily-word` and keep the job with the same OpenClaw agent and active chat delivery route.\n\nBefore creating it, check whether an active `lingry-daily-word` job already exists for this user/agent context. If it exists, do not duplicate it; update its schedule only when requested. If the user did not specify a time, ask what time they prefer and use their configured OpenClaw timezone.\n\nThe automation prompt should say:\n\n> Fetch the current public Lingry Stream using `node bin/lingry-agent.mjs daily-word`. Select one recent word not recently sent when history is available. Send only the word, part of speech, and concise meaning. Do not create an Agent Publisher, generate or coin a word, fund a wallet, sign a transaction, or broadcast anything.\n\nRecognize requests to stop or disable the Daily Lingry Word. Use the native OpenClaw automation interface to disable or remove the existing job and confirm succinctly. If automation permission is unavailable, explain that OpenClaw needs that permission; do not work around it.\n\n## Custody and Authority\n\nHuman Lingry publishers remain non-custodial: their keys stay in their browser/device and the existing PIN wallet signs human transactions.\n\nOpenClaw Agent Publishers are different: Lingry manages a unique server-side Sugarchain key and address for each bot. OpenClaw receives only a constrained Lingry credential. Do not describe Agent Publishers as non-custodial.\n\nOpenClaw may read public data, generate candidates, coin its own canonical candidates, view its publisher address, and view transaction results. It must never attempt general SUGAR transfers, tipping, key export, arbitrary transaction signing, arbitrary OP_RETURN records, recipient changes, or change-address changes.\n\n## Safety\n\n- Never request, receive, display, inspect, transmit, summarize, or log any human or Agent Publisher blockchain secret, WIF, mnemonic, seed, recovery phrase, funding-wallet secret, or local agent credential.\n- Never ask the user to visit Lingry, install a cryptocurrency wallet, import a key, configure a browser API session, or paste an API token for normal OpenClaw use.\n- Never claim a word was coined unless the API returns a transaction result.\n- Never create recurring notifications without explicit user consent.\n- Never claim OpenClaw guarantees code execution immediately after installation. Run onboarding on the first available turn where the skill is available.\n- If an authenticated call reports `server_not_configured`, describe it as a Lingry operator-side configuration fault, not a transient outage. Never ask the OpenClaw user for an encryption key or server secret. After a new release is available, one forced reinstall is the only client-side recovery step; if that still fails, report the service fault without proposing local configuration workarounds.\n\n## Commands\n\n```text\nstatus, doctor, verify-install\nstream, leaderboard, list-words, daily-word\nagent-status, address\ngenerate-word, create-word-draft, coin-word\nget-transaction\n```\n\nThe version 1 local-wallet, grant-preparation, transaction-preparation, and approval commands are removed.\n\nFile v2.0.4:README.md\n\n# Lingry OpenClaw Skill 2.0.2\n\nLingry 2.0 lets OpenClaw discover public Lingry words and autonomously coin canonical word candidates. Every OpenClaw workspace receives its own Lingry-managed Sugarchain Agent Publisher address on first authenticated use. The package contains no Sugarchain wallet or blockchain key-management code.\n\n## Install\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\nRun those two lines exactly. The single quotes prevent the owner-qualified ClawHub reference from being misread by the shell or installer. The skill has no package-install step and requires no wallet, API token, encryption key, or other secret from the user.\n\nTo replace an older or incomplete workspace copy without any manual repair steps:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry' --force\n```\n\nThe default API is `https://lingry.net`. Optional settings are `LINGRY_API_BASE_URL`, `LINGRY_AGENT_STATE_PATH`, `LINGRY_DEFAULT_LANGUAGE_CODE`, and `LINGRY_AGENT_REQUEST_TIMEOUT_MS`; none is required for normal use.\n\nRun commands from the OpenClaw agent workspace so the default state is stored at `<workspace>/.lingry/agent.json`. Different workspaces therefore receive different publishers. The state file contains a persistent Lingry agent credential, is written atomically, and uses restrictive permissions where supported. Never print or share it.\n\n## First Use\n\n```bash\nnode bin/lingry-agent.mjs\n```\n\nThe first invocation reads the public Stream, returns the newest valid word and immediate actions, and marks onboarding complete. It does not create an Agent Publisher or a blockchain transaction. Later no-argument calls return concise status.\n\n## Commands\n\n```bash\nnode bin/lingry-agent.mjs status\nnode bin/lingry-agent.mjs doctor\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs address\nnode bin/lingry-agent.mjs agent-status\nnode bin/lingry-agent.mjs generate-word \"a missing concept\"\nnode bin/lingry-agent.mjs create-word-draft <term> <pos> <meaning>\nnode bin/lingry-agent.mjs coin-word <candidate-id>\nnode bin/lingry-agent.mjs get-transaction <intent-id>\nnode bin/lingry-agent.mjs daily-word\n```\n\nPublic Stream, leaderboard, word listing, onboarding, and daily-word reads remain anonymous. An Agent Publisher is bootstrapped only by publisher operations such as generation, address lookup, or coining. Access tokens renew automatically and are short-lived.\n\nGeneration is reversible. On a clean installation, the first generation request creates the workspace credential, registers the dedicated Agent Publisher, obtains a short-lived session, and saves the candidate automatically. Lingry's publisher-key encryption remains entirely server-side. After generating a candidate, OpenClaw presents two explicit choices: **Coin this term** or **Prompt for another**. Asking for another candidate leaves the current one uncoined and never implies permission to publish the replacement. Coining occurs only after an explicit user intent to publish and is irreversible once broadcast. Lingry signs only the exact stored canonical candidate; the API provides no general transfer, tip, raw-signing, or arbitrary OP_RETURN operation.\n\n## Daily Delivery\n\nDaily delivery uses OpenClaw's native automation feature after explicit user consent. The skill itself does not install cron jobs. Use one job named `lingry-daily-word`, check for an existing job before creation, retain the active chat delivery route, and use the user's configured timezone. The job runs the read-only `daily-word` command and must never create or coin words.\n\n## Publisher Models\n\n- Human Publisher: user-controlled private key, stored and used locally by the existing browser PIN wallet.\n- Agent Publisher: unique Lingry-managed private key and Sugarchain address for one OpenClaw workspace.\n\nThese custody models coexist. Version 2.0 changes only the OpenClaw integration.\n\n## Development\n\n```bash\nnpm test\nnode bin/lingry-agent.mjs verify-install\n```\n\nDo not deploy the Worker or publish this package without separate authorization.\n\nFile v2.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.4\",\n  \"publishedAt\": 1790324773094\n}\n\nFile v2.0.4:CHANGELOG.md\n\n# Changelog\n\n## 2.0.2\n\n- Added two explicit actions after every generated candidate: coin this term or prompt for another.\n- Kept both the current and replacement candidate uncoined until the user explicitly requests publication.\n\n## 2.0.1\n\n- Documented the exact workspace-scoped, quoted ClawHub install command shown to users.\n- Removed unnecessary post-install `npm` and manual verification steps.\n- Confirmed clean-install word generation automatically creates the workspace credential, bootstraps the Agent Publisher, and opens a short-lived session without user-provided keys or secrets.\n- Clarified that publisher-key encryption is server-managed and operator configuration errors are not transient client failures.\n\n## 2.0.0\n\n- Removed the OpenClaw local Sugarchain wallet, private-key import, browser API Session copy/paste, and manual transaction approval workflow.\n- Added automatic workspace-scoped Agent Publisher registration and short-lived session renewal.\n- Added one unique Lingry-managed Sugarchain publishing address per OpenClaw agent workspace.\n- Added autonomous, policy-constrained coining of immutable canonical Lingry candidates.\n- Added first-use public Stream onboarding and read-only Daily Lingry Word automation guidance.\n\n## 1.0.7\n\n- Change default public leaderboard and stream command limits to 100 records.\n\n## 1.0.6\n\n- Accept direct public snapshot responses for leaderboard and stream commands.\n\n## 1.0.5\n\n- Added public hourly-indexed leaderboard and stream commands for OpenClaw.\n\n## 1.0.4\n\n- Clarify first-run setup: create or open a `lingry.net` wallet first, import the matching private/login key on Ubuntu OpenClaw, then configure the 30-day API session token.\n- Add stale OpenClaw gateway environment troubleshooting for cases where terminal `auth-status` accepts a new token but chat still reports an old expiry.\n\n## 1.0.3\n\n- Add first-launch OpenClaw setup instructions for ownership repair, wallet import, session-token storage, gateway restart, and terminal testing.\n\n## 1.0.2\n\n- Align `verify-install` with the exact file list ClawHub publishes and installs.\n\n## 1.0.1\n\n- Set the built-in API default to `https://lingry.net`.\n- Add `bin/lingry-wallet.mjs` for interactive-terminal-only wallet setup, grant signing, transaction approval, and broadcasting.\n- Change the agent to prepare non-secret request files instead of decrypting wallets, signing transactions, or broadcasting.\n- Add `verify-install` and clean-room package tests for standalone ClawHub installs.\n- Remove wallet-passphrase requirements from the OpenClaw agent contract and documentation.\n\n## 1.0.0\n\n- Create standalone ClawHub skill package.\n- Add ClawHub metadata in `SKILL.md`.\n- Restrict command surface to safe user-facing Lingry workflows.\n- Require explicit `--confirm-broadcast` for coining.\n- Exclude private-key export, cron installation, plugin lifecycle hooks, deployment administration, and server-wallet custody.\n\nFile v2.0.4:SECURITY.md\n\n# Security\n\n## OpenClaw Never Receives Blockchain Secrets\n\nThis package must never receive, request, display, inspect, transmit, or log human private keys, Agent Publisher private keys, WIF values, mnemonics, seeds, recovery phrases, or Lingry funding-wallet secrets. It contains no blockchain wallet, key import, key export, transaction-signing, or general SUGAR-transfer command.\n\nThe workspace state contains a high-entropy Lingry agent credential, not a blockchain key. It is persisted atomically with restrictive permissions where supported and must never be printed or included in command JSON, chat, documentation examples, or logs. The server stores only its protected hash.\n\n## Lingry Controls Agent Publisher Keys\n\nEach OpenClaw workspace receives a distinct Agent Publisher address. Lingry generates its Sugarchain key server-side and stores it using per-publisher envelope encryption with AES-GCM. This is a custodial service identity and is separate from human Lingry wallets, whose keys remain local in the browser/device.\n\n## Deliberately Constrained Authority\n\nOpenClaw can read public Lingry data, generate candidates, coin its own stored canonical candidates, view its publisher address, and view transaction results.\n\nOpenClaw cannot send arbitrary SUGAR, tip, export a key, sign arbitrary transactions, create arbitrary OP_RETURN records, select a payment recipient, or change the transaction change address. Server policy restricts a coin transaction to one zero-value canonical Lingry OP_RETURN, change to the same Agent Publisher, a capped fee, idempotency, and rate/budget limits.\n\nCoining is irreversible and happens only when the user asks to publish. Discovery and Daily Lingry Word are anonymous, read-only operations and cannot create an Agent Publisher or blockchain side effect. Recurring delivery requires explicit opt-in and OpenClaw's normal automation permissions.\n\nFile v2.0.4:skill-card.md\n\n## Description:\n\nDiscover public Lingry words, draft new words, and permanently publish selected words on Sugarchain through OpenClaw.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT No Attribution\n\n## Use Case:\n\nOpenClaw users can browse public Lingry words, propose new words, and explicitly publish a selected candidate to Sugarchain. They can also opt in to a daily public word.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Coining permanently publishes the selected word with public attribution, without a separate executable confirmation step.\n\nMitigation: Review the exact candidate and invoke coining only after explicit user intent to publish it.\n\nRisk: The workspace credential persists and determines the Lingry publisher identity.\n\nMitigation: Protect the workspace's .lingry/agent.json file and use a separate workspace for a different publisher identity.\n\n## Reference(s):\n\n- [Lingry skill on ClawHub](https://clawhub.ai/svetlyoh/skills/lingry)\n- [Server-resolved source for this skill](https://github.com/svetlyoh/web-wallet/tree/master/openclaw/skills/lingry)\n- [Lingry](https://lingry.net)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Guidance]\n\n**Output Format:** [Markdown with word details and optional command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can present public words, draft candidates, and publication transaction results.]\n\n## Skill Version(s):\n\n2.0.4 (source: ClawHub release evidence; packaged files declare 2.0.2)\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\nFile v2.0.4:SUPPORT.md\n\n# Support\n\nFor ClawHub installation issues, use the ClawHub package page for the published `lingry` skill.\n\nFor source issues, use the GitHub repository that provided the skill package.\n\nNever include private keys, WIFs, wallet passphrases, keystore files, session tokens, Cloudflare tokens, RPC passwords, or funding-wallet secrets in support requests.\n\nFile v2.0.4:npm-shrinkwrap.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.0.2\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@svetlyoh/lingry\",\n      \"version\": \"2.0.2\",\n      \"bin\": {\n        \"lingry-agent\": \"bin/lingry-agent.mjs\"\n      },\n      \"engines\": {\n        \"node\": \">=18\"\n      }\n    }\n  }\n}\n\nFile v2.0.4:package-lock.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.0.2\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@svetlyoh/lingry\",\n      \"version\": \"2.0.2\",\n      \"bin\": {\n        \"lingry-agent\": \"bin/lingry-agent.mjs\"\n      },\n      \"engines\": {\n        \"node\": \">=18\"\n      }\n    }\n  }\n}\n\nFile v2.0.4:package.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.0.2\",\n  \"type\": \"module\",\n  \"files\": [\n    \".clawhubignore\",\n    \"CHANGELOG.md\",\n    \"LICENSE\",\n    \"README.md\",\n    \"SECURITY.md\",\n    \"SKILL.md\",\n    \"SUPPORT.md\",\n    \"bin/\",\n    \"src/\",\n    \"test/\",\n    \"package-lock.json\",\n    \"npm-shrinkwrap.json\"\n  ],\n  \"bin\": {\n    \"lingry-agent\": \"bin/lingry-agent.mjs\"\n  },\n  \"scripts\": {\n    \"test\": \"node --test\"\n  },\n  \"dependencies\": {},\n  \"engines\": {\n    \"node\": \">=18\"\n  }\n}\n\nFile v2.0.4:LICENSE\n\nMIT No Attribution\n\nCopyright 2026 Lingry contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nArchive v2.0.3: 15 files, 23062 bytes\n\nFiles: .clawhubignore (264b), bin/lingry-agent.mjs (11229b), CHANGELOG.md (2943b), LICENSE (914b), npm-shrinkwrap.json (317b), package-lock.json (317b), package.json (474b), README.md (4198b), SECURITY.md (1900b), skill-card.md (2425b), SKILL.md (8772b), src/runtime.mjs (10872b), SUPPORT.md (354b), test/skill-package.test.mjs (11589b), _meta.json (125b)\n\nFile v2.0.3:SKILL.md\n\n---\nname: lingry\ndescription: Create and permanently coin new words on Sugarchain, or discover the latest words from Lingry's public Stream. On first use, show the newest Lingry word and offer immediate word creation or discovery.\nversion: 2.0.2\nhomepage: https://lingry.net\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n        - npm\n    envVars:\n      - name: LINGRY_API_BASE_URL\n        required: false\n        description: Optional HTTPS Lingry API base URL. Defaults to https://lingry.net.\n      - name: LINGRY_AGENT_STATE_PATH\n        required: false\n        description: Optional override for workspace-specific Lingry agent state.\n      - name: LINGRY_DEFAULT_LANGUAGE_CODE\n        required: false\n        description: Default Lingry language code. Defaults to W.\n      - name: LINGRY_AGENT_REQUEST_TIMEOUT_MS\n        required: false\n        description: Timeout for Lingry HTTP requests.\n---\n\n# Lingry for OpenClaw\n\nLingry lets OpenClaw agents discover, create, and permanently coin new words on Sugarchain. Each OpenClaw agent automatically receives its own Lingry-managed Sugarchain publishing address when a publisher identity is first needed. Public discovery needs no account. OpenClaw never handles the blockchain signing key.\n\n## Install — Run Exactly\n\nFrom the OpenClaw workspace, use the quoted ClawHub reference exactly as shown:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\nThe quotes are intentional. No additional `npm` command, wallet setup, API token, encryption key, or environment variable is required. If replacing an older or incomplete copy, remove that installed skill (or use OpenClaw's `--force` install option) and run the same command again. Do not delete the workspace's `.lingry/agent.json`; an existing workspace credential reconnects automatically.\n\n## First Use — Engage Immediately\n\nOn the first use of this skill, run:\n\n```bash\nnode bin/lingry-agent.mjs\n```\n\nImmediately render the returned newest public Stream word. Do not begin with setup instructions. Then offer these two primary actions:\n\n- Invent a new word.\n- Show me the 5 latest words.\n\nFinally ask: “I can send you one new Lingry word every day. Want me to set that up?”\n\nPrefer demonstrating Lingry over explaining it. The no-argument command records onboarding in the current OpenClaw workspace at `.lingry/agent.json`, so `/new`, chat resets, gateway restarts, and machine restarts do not repeat the full welcome. `LINGRY_AGENT_STATE_PATH` is an explicit override.\n\nThe onboarding Stream request is anonymous and read-only. It must not create an Agent Publisher, fund an address, sign anything, or broadcast anything. If the Stream is unavailable, say so and still offer creation, coining, and discovery; never invent a featured word.\n\n## Discovery\n\nPublic commands require no identity:\n\n```bash\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\n```\n\nUse `stream 5` when the user asks for the five latest words. Keep the presentation compact. Reading public data must never bootstrap a publisher.\n\n## Create and Coin\n\nGenerate a reversible candidate:\n\n```bash\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\"\nnode bin/lingry-agent.mjs create-word-draft <term> <part-of-speech> <meaning>\n```\n\nAfter every generated candidate, show the term, part of speech, and meaning, then ask: “Coin this term, or prompt for another?” Present both actions clearly:\n\n- **Coin this term** — use the saved immutable candidate and proceed only when the user explicitly chooses permanent publication.\n- **Prompt for another** — leave the current candidate uncoined and generate a new candidate from the user's new or refined concept.\n\nDo not silently choose either action. A request for another term is not permission to coin the current or replacement term.\n\nDo not put a generated candidate on Sugarchain unless the user's request clearly includes coin, publish, post, or record on Sugarchain.\n\nWhen the user explicitly requests permanent publication, run:\n\n```bash\nnode bin/lingry-agent.mjs coin-word <candidate-id>\n```\n\nCoining is irreversible. There is no second transaction-approval step. The server validates the immutable candidate, constructs the canonical `S<language>|<word>|<part-of-speech>|<meaning>` record, signs it with this bot's dedicated Agent Publisher, and returns the transaction ID. Never accept or construct arbitrary transaction outputs or arbitrary OP_RETURN data.\n\nThe first authenticated operation automatically creates a persistent local `client_instance_id` and agent credential, bootstraps one Agent Publisher, and exchanges the credential for short-lived access tokens. This must work on a clean installation without asking the user for setup. The credential is not a blockchain key and must never be printed or placed in chat. Lingry's encryption key is server-managed infrastructure and is never installed, configured, or supplied by an OpenClaw user. The same workspace keeps the same publisher address; a different workspace receives a different address.\n\nUseful identity commands:\n\n```bash\nnode bin/lingry-agent.mjs agent-status\nnode bin/lingry-agent.mjs address\nnode bin/lingry-agent.mjs get-transaction <intent-id>\n```\n\n## Daily Lingry Word\n\nThe daily word is opt-in. Installation is not consent. Do not create any automation until the user explicitly agrees.\n\nAfter an affirmative reply, use OpenClaw's native persistent automation interface. Do not edit cron files, databases, Gateway state, or hidden APIs. Use the stable name `lingry-daily-word` and keep the job with the same OpenClaw agent and active chat delivery route.\n\nBefore creating it, check whether an active `lingry-daily-word` job already exists for this user/agent context. If it exists, do not duplicate it; update its schedule only when requested. If the user did not specify a time, ask what time they prefer and use their configured OpenClaw timezone.\n\nThe automation prompt should say:\n\n> Fetch the current public Lingry Stream using `node bin/lingry-agent.mjs daily-word`. Select one recent word not recently sent when history is available. Send only the word, part of speech, and concise meaning. Do not create an Agent Publisher, generate or coin a word, fund a wallet, sign a transaction, or broadcast anything.\n\nRecognize requests to stop or disable the Daily Lingry Word. Use the native OpenClaw automation interface to disable or remove the existing job and confirm succinctly. If automation permission is unavailable, explain that OpenClaw needs that permission; do not work around it.\n\n## Custody and Authority\n\nHuman Lingry publishers remain non-custodial: their keys stay in their browser/device and the existing PIN wallet signs human transactions.\n\nOpenClaw Agent Publishers are different: Lingry manages a unique server-side Sugarchain key and address for each bot. OpenClaw receives only a constrained Lingry credential. Do not describe Agent Publishers as non-custodial.\n\nOpenClaw may read public data, generate candidates, coin its own canonical candidates, view its publisher address, and view transaction results. It must never attempt general SUGAR transfers, tipping, key export, arbitrary transaction signing, arbitrary OP_RETURN records, recipient changes, or change-address changes.\n\n## Safety\n\n- Never request, receive, display, inspect, transmit, summarize, or log any human or Agent Publisher blockchain secret, WIF, mnemonic, seed, recovery phrase, funding-wallet secret, or local agent credential.\n- Never ask the user to visit Lingry, install a cryptocurrency wallet, import a key, configure a browser API session, or paste an API token for normal OpenClaw use.\n- Never claim a word was coined unless the API returns a transaction result.\n- Never create recurring notifications without explicit user consent.\n- Never claim OpenClaw guarantees code execution immediately after installation. Run onboarding on the first available turn where the skill is available.\n- If an authenticated call reports `server_not_configured`, describe it as a Lingry operator-side configuration fault, not a transient outage. Never ask the OpenClaw user for an encryption key or server secret. After a new release is available, one forced reinstall is the only client-side recovery step; if that still fails, report the service fault without proposing local configuration workarounds.\n\n## Commands\n\n```text\nstatus, doctor, verify-install\nstream, leaderboard, list-words, daily-word\nagent-status, address\ngenerate-word, create-word-draft, coin-word\nget-transaction\n```\n\nThe version 1 local-wallet, grant-preparation, transaction-preparation, and approval commands are removed.\n\nFile v2.0.3:README.md\n\n# Lingry OpenClaw Skill 2.0.2\n\nLingry 2.0 lets OpenClaw discover public Lingry words and autonomously coin canonical word candidates. Every OpenClaw workspace receives its own Lingry-managed Sugarchain Agent Publisher address on first authenticated use. The package contains no Sugarchain wallet or blockchain key-management code.\n\n## Install\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\nRun those two lines exactly. The single quotes prevent the owner-qualified ClawHub reference from being misread by the shell or installer. The skill has no package-install step and requires no wallet, API token, encryption key, or other secret from the user.\n\nTo replace an older or incomplete workspace copy without any manual repair steps:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry' --force\n```\n\nThe default API is `https://lingry.net`. Optional settings are `LINGRY_API_BASE_URL`, `LINGRY_AGENT_STATE_PATH`, `LINGRY_DEFAULT_LANGUAGE_CODE`, and `LINGRY_AGENT_REQUEST_TIMEOUT_MS`; none is required for normal use.\n\nRun commands from the OpenClaw agent workspace so the default state is stored at `<workspace>/.lingry/agent.json`. Different workspaces therefore receive different publishers. The state file contains a persistent Lingry agent credential, is written atomically, and uses restrictive permissions where supported. Never print or share it.\n\n## First Use\n\n```bash\nnode bin/lingry-agent.mjs\n```\n\nThe first invocation reads the public Stream, returns the newest valid word and immediate actions, and marks onboarding complete. It does not create an Agent Publisher or a blockchain transaction. Later no-argument calls return concise status.\n\n## Commands\n\n```bash\nnode bin/lingry-agent.mjs status\nnode bin/lingry-agent.mjs doctor\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs address\nnode bin/lingry-agent.mjs agent-status\nnode bin/lingry-agent.mjs generate-word \"a missing concept\"\nnode bin/lingry-agent.mjs create-word-draft <term> <pos> <meaning>\nnode bin/lingry-agent.mjs coin-word <candidate-id>\nnode bin/lingry-agent.mjs get-transaction <intent-id>\nnode bin/lingry-agent.mjs daily-word\n```\n\nPublic Stream, leaderboard, word listing, onboarding, and daily-word reads remain anonymous. An Agent Publisher is bootstrapped only by publisher operations such as generation, address lookup, or coining. Access tokens renew automatically and are short-lived.\n\nGeneration is reversible. On a clean installation, the first generation request creates the workspace credential, registers the dedicated Agent Publisher, obtains a short-lived session, and saves the candidate automatically. Lingry's publisher-key encryption remains entirely server-side. After generating a candidate, OpenClaw presents two explicit choices: **Coin this term** or **Prompt for another**. Asking for another candidate leaves the current one uncoined and never implies permission to publish the replacement. Coining occurs only after an explicit user intent to publish and is irreversible once broadcast. Lingry signs only the exact stored canonical candidate; the API provides no general transfer, tip, raw-signing, or arbitrary OP_RETURN operation.\n\n## Daily Delivery\n\nDaily delivery uses OpenClaw's native automation feature after explicit user consent. The skill itself does not install cron jobs. Use one job named `lingry-daily-word`, check for an existing job before creation, retain the active chat delivery route, and use the user's configured timezone. The job runs the read-only `daily-word` command and must never create or coin words.\n\n## Publisher Models\n\n- Human Publisher: user-controlled private key, stored and used locally by the existing browser PIN wallet.\n- Agent Publisher: unique Lingry-managed private key and Sugarchain address for one OpenClaw workspace.\n\nThese custody models coexist. Version 2.0 changes only the OpenClaw integration.\n\n## Development\n\n```bash\nnpm test\nnode bin/lingry-agent.mjs verify-install\n```\n\nDo not deploy the Worker or publish this package without separate authorization.\n\nFile v2.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.3\",\n  \"publishedAt\": 1788136939332\n}\n\nFile v2.0.3:CHANGELOG.md\n\n# Changelog\n\n## 2.0.2\n\n- Added two explicit actions after every generated candidate: coin this term or prompt for another.\n- Kept both the current and replacement candidate uncoined until the user explicitly requests publication.\n\n## 2.0.1\n\n- Documented the exact workspace-scoped, quoted ClawHub install command shown to users.\n- Removed unnecessary post-install `npm` and manual verification steps.\n- Confirmed clean-install word generation automatically creates the workspace credential, bootstraps the Agent Publisher, and opens a short-lived session without user-provided keys or secrets.\n- Clarified that publisher-key encryption is server-managed and operator configuration errors are not transient client failures.\n\n## 2.0.0\n\n- Removed the OpenClaw local Sugarchain wallet, private-key import, browser API Session copy/paste, and manual transaction approval workflow.\n- Added automatic workspace-scoped Agent Publisher registration and short-lived session renewal.\n- Added one unique Lingry-managed Sugarchain publishing address per OpenClaw agent workspace.\n- Added autonomous, policy-constrained coining of immutable canonical Lingry candidates.\n- Added first-use public Stream onboarding and read-only Daily Lingry Word automation guidance.\n\n## 1.0.7\n\n- Change default public leaderboard and stream command limits to 100 records.\n\n## 1.0.6\n\n- Accept direct public snapshot responses for leaderboard and stream commands.\n\n## 1.0.5\n\n- Added public hourly-indexed leaderboard and stream commands for OpenClaw.\n\n## 1.0.4\n\n- Clarify first-run setup: create or open a `lingry.net` wallet first, import the matching private/login key on Ubuntu OpenClaw, then configure the 30-day API session token.\n- Add stale OpenClaw gateway environment troubleshooting for cases where terminal `auth-status` accepts a new token but chat still reports an old expiry.\n\n## 1.0.3\n\n- Add first-launch OpenClaw setup instructions for ownership repair, wallet import, session-token storage, gateway restart, and terminal testing.\n\n## 1.0.2\n\n- Align `verify-install` with the exact file list ClawHub publishes and installs.\n\n## 1.0.1\n\n- Set the built-in API default to `https://lingry.net`.\n- Add `bin/lingry-wallet.mjs` for interactive-terminal-only wallet setup, grant signing, transaction approval, and broadcasting.\n- Change the agent to prepare non-secret request files instead of decrypting wallets, signing transactions, or broadcasting.\n- Add `verify-install` and clean-room package tests for standalone ClawHub installs.\n- Remove wallet-passphrase requirements from the OpenClaw agent contract and documentation.\n\n## 1.0.0\n\n- Create standalone ClawHub skill package.\n- Add ClawHub metadata in `SKILL.md`.\n- Restrict command surface to safe user-facing Lingry workflows.\n- Require explicit `--confirm-broadcast` for coining.\n- Exclude private-key export, cron installation, plugin lifecycle hooks, deployment administration, and server-wallet custody.\n\nFile v2.0.3:SECURITY.md\n\n# Security\n\n## OpenClaw Never Receives Blockchain Secrets\n\nThis package must never receive, request, display, inspect, transmit, or log human private keys, Agent Publisher private keys, WIF values, mnemonics, seeds, recovery phrases, or Lingry funding-wallet secrets. It contains no blockchain wallet, key import, key export, transaction-signing, or general SUGAR-transfer command.\n\nThe workspace state contains a high-entropy Lingry agent credential, not a blockchain key. It is persisted atomically with restrictive permissions where supported and must never be printed or included in command JSON, chat, documentation examples, or logs. The server stores only its protected hash.\n\n## Lingry Controls Agent Publisher Keys\n\nEach OpenClaw workspace receives a distinct Agent Publisher address. Lingry generates its Sugarchain key server-side and stores it using per-publisher envelope encryption with AES-GCM. This is a custodial service identity and is separate from human Lingry wallets, whose keys remain local in the browser/device.\n\n## Deliberately Constrained Authority\n\nOpenClaw can read public Lingry data, generate candidates, coin its own stored canonical candidates, view its publisher address, and view transaction results.\n\nOpenClaw cannot send arbitrary SUGAR, tip, export a key, sign arbitrary transactions, create arbitrary OP_RETURN records, select a payment recipient, or change the transaction change address. Server policy restricts a coin transaction to one zero-value canonical Lingry OP_RETURN, change to the same Agent Publisher, a capped fee, idempotency, and rate/budget limits.\n\nCoining is irreversible and happens only when the user asks to publish. Discovery and Daily Lingry Word are anonymous, read-only operations and cannot create an Agent Publisher or blockchain side effect. Recurring delivery requires explicit opt-in and OpenClaw's normal automation permissions.\n\nFile v2.0.3:skill-card.md\n\n## Description:\n\nCreate and permanently coin new words on Sugarchain, or discover the latest words from Lingry's public Stream. On first use, show the newest Lingry word and offer immediate word creation or discovery.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT No Attribution\n\n## Use Case:\n\nExternal users and agents use this skill to discover public Lingry words, generate candidate terms, and explicitly coin approved canonical word records on Sugarchain. It also supports opt-in daily delivery of a read-only public word.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill persists a workspace-specific Lingry credential for an Agent Publisher identity.\n\nMitigation: Keep the default API and state path unless the alternative is trusted, and never print, share, or place the credential in chat, logs, or support requests.\n\nRisk: Coining publishes irreversible public word records through Lingry's server.\n\nMitigation: Run coining only after the user explicitly requests publication, and claim success only when the API returns a transaction result.\n\nRisk: Generated command strings may include server-returned candidate identifiers.\n\nMitigation: Validate candidate identifiers before use and avoid executing command strings from untrusted API responses directly.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/svetlyoh/skills/lingry)\n- [Server-resolved source import](https://github.com/svetlyoh/web-wallet/tree/master/openclaw/skills/lingry)\n- [Lingry service](https://lingry.net)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with concise text responses and shell command snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can read public Lingry data anonymously; publishing workflows use a workspace-specific Lingry credential and require explicit user intent.]\n\n## Skill Version(s):\n\n2.0.3 (source: ClawHub release metadata; artifact frontmatter and package files report 2.0.2)\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\nFile v2.0.3:SUPPORT.md\n\n# Support\n\nFor ClawHub installation issues, use the ClawHub package page for the published `lingry` skill.\n\nFor source issues, use the GitHub repository that provided the skill package.\n\nNever include private keys, WIFs, wallet passphrases, keystore files, session tokens, Cloudflare tokens, RPC passwords, or funding-wallet secrets in support requests.\n\nFile v2.0.3:npm-shrinkwrap.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.0.2\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@svetlyoh/lingry\",\n      \"version\": \"2.0.2\",\n      \"bin\": {\n        \"lingry-agent\": \"bin/lingry-agent.mjs\"\n      },\n      \"engines\": {\n        \"node\": \">=18\"\n      }\n    }\n  }\n}\n\nFile v2.0.3:package-lock.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.0.2\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@svetlyoh/lingry\",\n      \"version\": \"2.0.2\",\n      \"bin\": {\n        \"lingry-agent\": \"bin/lingry-agent.mjs\"\n      },\n      \"engines\": {\n        \"node\": \">=18\"\n      }\n    }\n  }\n}\n\nFile v2.0.3:package.json\n\n{\n  \"name\": \"@svetlyoh/lingry\",\n  \"version\": \"2.0.2\",\n  \"type\": \"module\",\n  \"files\": [\n    \".clawhubignore\",\n    \"CHANGELOG.md\",\n    \"LICENSE\",\n    \"README.md\",\n    \"SECURITY.md\",\n    \"SKILL.md\",\n    \"SUPPORT.md\",\n    \"bin/\",\n    \"src/\",\n    \"test/\",\n    \"package-lock.json\",\n    \"npm-shrinkwrap.json\"\n  ],\n  \"bin\": {\n    \"lingry-agent\": \"bin/lingry-agent.mjs\"\n  },\n  \"scripts\": {\n    \"test\": \"node --test\"\n  },\n  \"dependencies\": {},\n  \"engines\": {\n    \"node\": \">=18\"\n  }\n}\n\nFile v2.0.3:LICENSE\n\nMIT No Attribution\n\nCopyright 2026 Lingry contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nArchive v2.0.2: 14 files, 22612 bytes\n\nFiles: bin/lingry-agent.mjs (11229b), CHANGELOG.md (2943b), LICENSE (914b), npm-shrinkwrap.json (317b), package-lock.json (317b), package.json (474b), README.md (4198b), SECURITY.md (1900b), skill-card.md (2039b), SKILL.md (8772b), src/runtime.mjs (10872b), SUPPORT.md (354b), test/skill-package.test.mjs (11589b), _meta.json (125b)\n\nFile v2.0.2:SKILL.md\n\n---\nname: lingry\ndescription: Create and permanently coin new words on Sugarchain, or discover the latest words from Lingry's public Stream. On first use, show the newest Lingry word and offer immediate word creation or discovery.\nversion: 2.0.2\nhomepage: https://lingry.net\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n        - npm\n    envVars:\n      - name: LINGRY_API_BASE_URL\n        required: false\n        description: Optional HTTPS Lingry API base URL. Defaults to https://lingry.net.\n      - name: LINGRY_AGENT_STATE_PATH\n        required: false\n        description: Optional override for workspace-specific Lingry agent state.\n      - name: LINGRY_DEFAULT_LANGUAGE_CODE\n        required: false\n        description: Default Lingry language code. Defaults to W.\n      - name: LINGRY_AGENT_REQUEST_TIMEOUT_MS\n        required: false\n        description: Timeout for Lingry HTTP requests.\n---\n\n# Lingry for OpenClaw\n\nLingry lets OpenClaw agents discover, create, and permanently coin new words on Sugarchain. Each OpenClaw agent automatically receives its own Lingry-managed Sugarchain publishing address when a publisher identity is first needed. Public discovery needs no account. OpenClaw never handles the blockchain signing key.\n\n## Install — Run Exactly\n\nFrom the OpenClaw workspace, use the quoted ClawHub reference exactly as shown:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\nThe quotes are intentional. No additional `npm` command, wallet setup, API token, encryption key, or environment variable is required. If replacing an older or incomplete copy, remove that installed skill (or use OpenClaw's `--force` install option) and run the same command again. Do not delete the workspace's `.lingry/agent.json`; an existing workspace credential reconnects automatically.\n\n## First Use — Engage Immediately\n\nOn the first use of this skill, run:\n\n```bash\nnode bin/lingry-agent.mjs\n```\n\nImmediately render the returned newest public Stream word. Do not begin with setup instructions. Then offer these two primary actions:\n\n- Invent a new word.\n- Show me the 5 latest words.\n\nFinally ask: “I can send you one new Lingry word every day. Want me to set that up?”\n\nPrefer demonstrating Lingry over explaining it. The no-argument command records onboarding in the current OpenClaw workspace at `.lingry/agent.json`, so `/new`, chat resets, gateway restarts, and machine restarts do not repeat the full welcome. `LINGRY_AGENT_STATE_PATH` is an explicit override.\n\nThe onboarding Stream request is anonymous and read-only. It must not create an Agent Publisher, fund an address, sign anything, or broadcast anything. If the Stream is unavailable, say so and still offer creation, coining, and discovery; never invent a featured word.\n\n## Discovery\n\nPublic commands require no identity:\n\n```bash\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\n```\n\nUse `stream 5` when the user asks for the five latest words. Keep the presentation compact. Reading public data must never bootstrap a publisher.\n\n## Create and Coin\n\nGenerate a reversible candidate:\n\n```bash\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\"\nnode bin/lingry-agent.mjs create-word-draft <term> <part-of-speech> <meaning>\n```\n\nAfter every generated candidate, show the term, part of speech, and meaning, then ask: “Coin this term, or prompt for another?” Present both actions clearly:\n\n- **Coin this term** — use the saved immutable candidate and proceed only when the user explicitly chooses permanent publication.\n- **Prompt for another** — leave the current candidate uncoined and generate a new candidate from the user's new or refined concept.\n\nDo not silently choose either action. A request for another term is not permission to coin the current or replacement term.\n\nDo not put a generated candidate on Sugarchain unless the user's request clearly includes coin, publish, post, or record on Sugarchain.\n\nWhen the user explicitly requests permanent publication, run:\n\n```bash\nnode bin/lingry-agent.mjs coin-word <candidate-id>\n```\n\nCoining is irreversible. There is no second transaction-approval step. The server validates the immutable candidate, constructs the canonical `S<language>|<word>|<part-of-speech>|<meaning>` record, signs it with this bot's dedicated Agent Publisher, and returns the transaction ID. Never accept or construct arbitrary transaction outputs or arbitrary OP_RETURN data.\n\nThe first authenticated operation automatically creates a persistent local `client_instance_id` and agent credential, bootstraps one Agent Publisher, and exchanges the credential for short-lived access tokens. This must work on a clean installation without asking the user for setup. The credential is not a blockchain key and must never be printed or placed in chat. Lingry's encryption key is server-managed infrastructure and is never installed, configured, or supplied by an OpenClaw user. The same workspace keeps the same publisher address; a different workspace receives a different address.\n\nUseful identity commands:\n\n```bash\nnode bin/lingry-agent.mjs agent-status\nnode bin/lingry-agent.mjs address\nnode bin/lingry-agent.mjs get-transaction <intent-id>\n```\n\n## Daily Lingry Word\n\nThe daily word is opt-in. Installation is not consent. Do not create any automation until the user explicitly agrees.\n\nAfter an affirmative reply, use OpenClaw's native persistent automation interface. Do not edit cron files, databases, Gateway state, or hidden APIs. Use the stable name `lingry-daily-word` and keep the job with the same OpenClaw agent and active chat delivery route.\n\nBefore creating it, check whether an active `lingry-daily-word` job already exists for this user/agent context. If it exists, do not duplicate it; update its schedule only when requested. If the user did not specify a time, ask what time they prefer and use their configured OpenClaw timezone.\n\nThe automation prompt should say:\n\n> Fetch the current public Lingry Stream using `node bin/lingry-agent.mjs daily-word`. Select one recent word not recently sent when history is available. Send only the word, part of speech, and concise meaning. Do not create an Agent Publisher, generate or coin a word, fund a wallet, sign a transaction, or broadcast anything.\n\nRecognize requests to stop or disable the Daily Lingry Word. Use the native OpenClaw automation interface to disable or remove the existing job and confirm succinctly. If automation permission is unavailable, explain that OpenClaw needs that permission; do not work around it.\n\n## Custody and Authority\n\nHuman Lingry publishers remain non-custodial: their keys stay in their browser/device and the existing PIN wallet signs human transactions.\n\nOpenClaw Agent Publishers are different: Lingry manages a unique server-side Sugarchain key and address for each bot. OpenClaw receives only a constrained Lingry credential. Do not describe Agent Publishers as non-custodial.\n\nOpenClaw may read public data, generate candidates, coin its own canonical candidates, view its publisher address, and view transaction results. It must never attempt general SUGAR transfers, tipping, key export, arbitrary transaction signing, arbitrary OP_RETURN records, recipient changes, or change-address changes.\n\n## Safety\n\n- Never request, receive, display, inspect, transmit, summarize, or log any human or Agent Publisher blockchain secret, WIF, mnemonic, seed, recovery phrase, funding-wallet secret, or local agent credential.\n- Never ask the user to visit Lingry, install a cryptocurrency wallet, import a key, configure a browser API session, or paste an API token for normal OpenClaw use.\n- Never claim a word was coined unless the API returns a transaction result.\n- Never create recurring notifications without explicit user consent.\n- Never claim OpenClaw guarantees code execution immediately after installation. Run onboarding on the first available turn where the skill is available.\n- If an authenticated call reports `server_not_configured`, describe it as a Lingry operator-side configuration fault, not a transient outage. Never ask the OpenClaw user for an encryption key or server secret. After a new release is available, one forced reinstall is the only client-side recovery step; if that still fails, report the service fault without proposing local configuration workarounds.\n\n## Commands\n\n```text\nstatus, doctor, verify-install\nstream, leaderboard, list-words, daily-word\nagent-status, address\ngenerate-word, create-word-draft, coin-word\nget-transaction\n```\n\nThe version 1 local-wallet, grant-preparation, transaction-preparation, and approval commands are removed.\n\nFile v2.0.2:README.md\n\n# Lingry OpenClaw Skill 2.0.2\n\nLingry 2.0 lets OpenClaw discover public Lingry words and autonomously coin canonical word candidates. Every OpenClaw workspace receives its own Lingry-managed Sugarchain Agent Publisher address on first authenticated use. The package contains no Sugarchain wallet or blockchain key-management code.\n\n## Install\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\nRun those two lines exactly. The single quotes prevent the owner-qualified ClawHub reference from being misread by the shell or installer. The skill has no package-install step and requires no wallet, API token, encryption key, or other secret from the user.\n\nTo replace an older or incomplete workspace copy without any manual repair steps:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry' --force\n```\n\nThe default API is `https://lingry.net`. Optional settings are `LINGRY_API_BASE_URL`, `LINGRY_AGENT_STATE_PATH`, `LINGRY_DEFAULT_LANGUAGE_CODE`, and `LINGRY_AGENT_REQUEST_TIMEOUT_MS`; none is required for normal use.\n\nRun commands from the OpenClaw agent workspace so the default state is stored at `<workspace>/.lingry/agent.json`. Different workspaces therefore receive different publishers. The state file contains a persistent Lingry agent credential, is written atomically, and uses restrictive permissions where supported. Never print or share it.\n\n## First Use\n\n```bash\nnode bin/lingry-agent.mjs\n```\n\nThe first invocation reads the public Stream, returns the newest valid word and immediate actions, and marks onboarding complete. It does not create an Agent Publisher or a blockchain transaction. Later no-argument calls return concise status.\n\n## Commands\n\n```bash\nnode bin/lingry-agent.mjs status\nnode bin/lingry-agent.mjs doctor\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs address\nnode bin/lingry-agent.mjs agent-status\nnode bin/lingry-agent.mjs generate-word \"a missing concept\"\nnode bin/lingry-agent.mjs create-word-draft <term> <pos> <meaning>\nnode bin/lingry-agent.mjs coin-word <candidate-id>\nnode bin/lingry-agent.mjs get-transaction <intent-id>\nnode bin/lingry-agent.mjs daily-word\n```\n\nPublic Stream, leaderboard, word listing, onboarding, and daily-word reads remain anonymous. An Agent Publisher is bootstrapped only by publisher operations such as generation, address lookup, or coining. Access tokens renew automatically and are short-lived.\n\nGeneration is reversible. On a clean installation, the first generation request creates the workspace credential, registers the dedicated Agent Publisher, obtains a short-lived session, and saves the candidate automatically. Lingry's publisher-key encryption remains entirely server-side. After generating a candidate, OpenClaw presents two explicit choices: **Coin this term** or **Prompt for another**. Asking for another candidate leaves the current one uncoined and never implies permission to publish the replacement. Coining occurs only after an explicit user intent to publish and is irreversible once broadcast. Lingry signs only the exact stored canonical candidate; the API provides no general transfer, tip, raw-signing, or arbitrary OP_RETURN operation.\n\n## Daily Delivery\n\nDaily delivery uses OpenClaw's native automation feature after explicit user consent. The skill itself does not install cron jobs. Use one job named `lingry-daily-word`, check for an existing job before creation, retain the active chat delivery route, and use the user's configured timezone. The job runs the read-only `daily-word` command and must never create or coin words.\n\n## Publisher Models\n\n- Human Publisher: user-controlled private key, stored and used locally by the existing browser PIN wallet.\n- Agent Publisher: unique Lingry-managed private key and Sugarchain address for one OpenClaw workspace.\n\nThese custody models coexist. Version 2.0 changes only the OpenClaw integration.\n\n## Development\n\n```bash\nnpm test\nnode bin/lingry-agent.mjs verify-install\n```\n\nDo not deploy the Worker or publish this package without separate authorization.\n\nFile v2.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.2\",\n  \"publishedAt\": 1788132575607\n}\n\nFile v2.0.2:CHANGELOG.md\n\n# Changelog\n\n## 2.0.2\n\n- Added two explicit actions after every generated candidate: coin this term or prompt for another.\n- Kept both the current and replacement candidate uncoined until the user explicitly requests publication.\n\n## 2.0.1\n\n- Documented the exact workspace-scoped, quoted ClawHub install command shown to users.\n- Removed unnecessary post-install `npm` and manual verification steps.\n- Confirmed clean-install word generation automatically creates the workspace credential, bootstraps the Agent Publisher, and opens a short-lived session without user-provided keys or secrets.\n- Clarified that publisher-key encryption is server-managed and operator configuration errors are not transient client failures.\n\n## 2.0.0\n\n- Removed the OpenClaw local Sugarchain wallet, private-key import, browser API Session copy/paste, and manual transaction approval workflow.\n- Added automatic workspace-scoped Agent Publisher registration and short-lived session renewal.\n- Added one unique Lingry-managed Sugarchain publishing address per OpenClaw agent workspace.\n- Added autonomous, policy-constrained coining of immutable canonical Lingry candidates.\n- Added first-use public Stream onboarding and read-only Daily Lingry Word automation guidance.\n\n## 1.0.7\n\n- Change default public leaderboard and stream command limits to 100 records.\n\n## 1.0.6\n\n- Accept direct public snapshot responses for leaderboard and stream commands.\n\n## 1.0.5\n\n- Added public hourly-indexed leaderboard and stream commands for OpenClaw.\n\n## 1.0.4\n\n- Clarify first-run setup: create or open a `lingry.net` wallet first, import the matching private/login key on Ubuntu OpenClaw, then configure the 30-day API session token.\n- Add stale OpenClaw gateway environment troubleshooting for cases where terminal `auth-status` accepts a new token but chat still reports an old expiry.\n\n## 1.0.3\n\n- Add first-launch OpenClaw setup instructions for ownership repair, wallet import, session-token storage, gateway restart, and terminal testing.\n\n## 1.0.2\n\n- Align `verify-install` with the exact file list ClawHub publishes and installs.\n\n## 1.0.1\n\n- Set the built-in API default to `https://lingry.net`.\n- Add `bin/lingry-wallet.mjs` for interactive-terminal-only wallet setup, grant signing, transaction approval, and broadcasting.\n- Change the agent to prepare non-secret request files instead of decrypting wallets, signing transactions, or broadcasting.\n- Add `verify-install` and clean-room package tests for standalone ClawHub installs.\n- Remove wallet-passphrase requirements from the OpenClaw agent contract and documentation.\n\n## 1.0.0\n\n- Create standalone ClawHub skill package.\n- Add ClawHub metadata in `SKILL.md`.\n- Restrict command surface to safe user-facing Lingry workflows.\n- Require explicit `--confirm-broadcast` for coining.\n- Exclude private-key export, cron installation, plugin lifecycle hooks, deployment administration, and server-wallet custody.\n\nFile v2.0.2:SECURITY.md\n\n# Security\n\n## OpenClaw Never Receives Blockchain Secrets\n\nThis package must never receive, request, display, inspect, transmit, or log human private keys, Agent Publisher private keys, WIF values, mnemonics, seeds, recovery phrases, or Lingry funding-wallet secrets. It contains no blockchain wallet, key import, key export, transaction-signing, or general SUGAR-transfer command.\n\nThe workspace state contains a high-entropy Lingry agent credential, not a blockchain key. It is persisted atomically with restrictive permissions where supported and must never be printed or included in command JSON, chat, documentation examples, or logs. The server stores only its protected hash.\n\n## Lingry Controls Agent Publisher Keys\n\nEach OpenClaw workspace receives a distinct Agent Publisher address. Lingry generates its Sugarchain key server-side and stores it using per-publisher envelope encryption with AES-GCM. This is a custodial service identity and is separate from human Lingry wallets, whose keys remain local in the browser/device.\n\n## Deliberately Constrained Authority\n\nOpenClaw can read public Lingry data, generate candidates, coin its own stored canonical candidates, view its publisher address, and view transaction results.\n\nOpenClaw cannot send arbitrary SUGAR, tip, export a key, sign arbitrary transactions, create arbitrary OP_RETURN records, select a payment recipient, or change the transaction change address. Server policy restricts a coin transaction to one zero-value canonical Lingry OP_RETURN, change to the same Agent Publisher, a capped fee, idempotency, and rate/budget limits.\n\nCoining is irreversible and happens only when the user asks to publish. Discovery and Daily Lingry Word are anonymous, read-only operations and cannot create an Agent Publisher or blockchain side effect. Recurring delivery requires explicit opt-in and OpenClaw's normal automation permissions.\n\nFile v2.0.2:skill-card.md\n\n## Description:\n\nCreate and permanently coin new words on Sugarchain, or discover the latest words from Lingry's public Stream.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nOpenClaw users and developers use this skill to discover public Lingry words, generate candidate terms, and permanently coin approved words on Sugarchain through the Lingry service.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill stores a workspace-specific Lingry credential in .lingry/agent.json.\n\nMitigation: Protect .lingry/agent.json like a secret and do not print, share, or include it in support requests.\n\nRisk: Coining a word publishes an irreversible Sugarchain record after explicit user intent.\n\nMitigation: Present Coin this term and Prompt for another as separate choices, and run coining only when the user clearly asks to publish.\n\nRisk: Daily word delivery can create recurring notifications.\n\nMitigation: Create or update daily delivery only after explicit opt-in through OpenClaw's native automation interface.\n\n## Reference(s):\n\n- [Lingry](https://lingry.net)\n- [ClawHub lingry skill page](https://clawhub.ai/svetlyoh/skills/lingry)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and concise command-output summaries]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create workspace-specific Lingry state and may publish a word record only after explicit user intent.]\n\n## Skill Version(s):\n\n2.0.2 (source: frontmatter, package.json, CHANGELOG, 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\nFile v2.0.2:SUPPORT.md\n\n# Support\n\nFor ClawHub installation issues, use the ClawHub package page for the published `lingry` skill.\n\nFor source issues, use the GitHub repository that provided the skill package.\n\nNever include private keys\n\nArchive v2.0.1: 14 files, 22105 bytes\n\nFiles: bin/lingry-agent.mjs (10664b), CHANGELOG.md (2725b), LICENSE (914b), npm-shrinkwrap.json (317b), package-lock.json (317b), package.json (474b), README.md (3964b), SECURITY.md (1900b), skill-card.md (2388b), SKILL.md (8216b), src/runtime.mjs (10872b), SUPPORT.md (354b), test/skill-package.test.mjs (11262b), _meta.json (125b)\n\nArchive v1.0.8: 15 files, 20921 bytes\n\nFiles: .clawhubignore (264b), bin/lingry-agent.mjs (10664b), CHANGELOG.md (2232b), LICENSE (914b), npm-shrinkwrap.json (317b), package-lock.json (317b), package.json (474b), README.md (3351b), SECURITY.md (1900b), skill-card.md (2232b), SKILL.md (7030b), src/runtime.mjs (10707b), SUPPORT.md (354b), test/skill-package.test.mjs (9677b), _meta.json (125b)","readmeExcerpt":"Skill: lingry Owner: svetlyoh Summary: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent. Tags: latest:2.0.9 Version history: v2.0.9 | 2026-09-25T17:18:57.034Z | user - No user-facing changes or code updates in this release. - Version bump only; functionality and instructions remain unchanged. v2.0.8 | 2026-09-25T17:09:16.043Z |","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"cd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'"},{"language":"bash","snippet":"muse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install"},{"language":"bash","snippet":"git clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout"},{"language":"bash","snippet":"node bin/lingry-agent.mjs verify-install"},{"language":"text","snippet":"node bin/lingry-agent.mjs\nnode bin/lingry-agent.mjs verify-install\nnode bin/lingry-agent.mjs stream 5\nnode bin/lingry-agent.mjs leaderboard 5\nnode bin/lingry-agent.mjs list-words W\nnode bin/lingry-agent.mjs daily-word\nnode bin/lingry-agent.mjs generate-word \"a concept that needs a word\" --language=W\nnode bin/lingry-agent.mjs prompt-another \"a refined concept\" --language=W\nnode bin/lingry-agent.mjs coin-word <candidate-id> --publish"},{"language":"bash","snippet":"cd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: lingry\ndescription: Discover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\nversion: 2.1.0\nhomepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - node\n    homepage: https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry\n---\n\n# Lingry agent skill\n\nUse Lingry to discover public words and generate candidate terms. At runtime, the skill calls only `https://lingry.net`. It stores no local state or credential and uses no wallet or signing key. The default language code is `W` (American English); use `--language=<code>` when the user requests another Lingry language. `E` means British English. Do not silently force a locale variant.\n\n## Install\n\nLingry is a multi-file Node.js skill. `SKILL.md` alone is not an installation: obtain the complete directory, including `bin/`, `src/`, `package.json`, `INSTALL.json`, and `CHANGELOG.md`. Node.js >= 18 is required. No `npm install`, OpenClaw installation, wallet setup, or local secret is required for Muse or other agents.\n\n### OpenClaw\n\nFrom the OpenClaw workspace, use the ClawHub package:\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the downloaded package. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`. Muse loads the skill instructions; the agent uses its normal tools to run Lingry's Node commands. It does not need OpenClaw.\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\n### Other SKILL.md-compatible agents\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the downloaded package. Place the resulting `lingry` directory in your agent's documented skills location. If it supports the cross-agent convention, `~/.agents/skills/lingry/` is an option; do not assume every agent scans it. Confirm the installed folder has `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`, then run `node bin/lingry-agent.mjs verify-install` from that folder. An agent may instead use an absolute path to `bin/lingry-agent.mjs`.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout (or equivalent PowerShell commands on Windows) to obtain the clean seven-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-"},{"path":"README.md","content":"# Lingry agent skill\n\nThe skill discovers public Lingry words, requests a server-generated word candidate, and publishes only the selected immutable candidate after an explicit user request. The service origin is fixed at `https://lingry.net`.\n\n## Install\n\n`openclaw/skills/lingry/` is the canonical source directory. The clean GitHub-import folder for ClawHub is [`skills/lingry/`](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry); it mirrors the staged release, without development files. The skill is multi-file: `SKILL.md` alone cannot run it. Node.js >= 18 is required; there are no npm runtime dependencies, so no `npm install` is needed. The version source of truth is the source directory's `package.json`.\n\n### OpenClaw\n\n```bash\ncd ~/.openclaw/workspace\nopenclaw skills install '@svetlyoh/lingry'\n```\n\n### Muse Code\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the downloaded package. Use the resulting `lingry` directory—the folder that directly contains `SKILL.md`, `README.md`, `CHANGELOG.md`, `INSTALL.json`, `package.json`, `bin/`, and `src/`:\n\n```bash\nmuse skills validate /path/to/lingry\nmuse skills install /path/to/lingry --scope user --name lingry\ncd /path/to/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nMuse loads the instructions; its agent runs the Node CLI through normal tools. OpenClaw is not required.\n\n### Other agents\n\nOpen the ClawHub [Versions tab](https://clawhub.ai/svetlyoh/skills/lingry#versions), select **Download** beside the latest version, and extract the package. Place the resulting `lingry` directory in your agent's supported skills directory. `~/.agents/skills/lingry/` is one option for agents that support the cross-agent convention. Run `node bin/lingry-agent.mjs verify-install` from the installed directory.\n\n### Optional GitHub fallback\n\nIf the agent cannot download the complete package from ClawHub, use Git sparse checkout to obtain the clean seven-file package:\n\n```bash\ngit clone --filter=blob:none --no-checkout https://github.com/svetlyoh/web-wallet.git lingry-source\ncd lingry-source\ngit sparse-checkout init --cone\ngit sparse-checkout set skills/lingry\ngit checkout\ncd skills/lingry\nnode bin/lingry-agent.mjs verify-install\n```\n\nFrom the checkout, copy `skills/lingry/` to the agent's documented skills location if needed. On Windows, use the equivalent PowerShell copy commands.\n\n## Workflow\n\nUse `generate-word \"a concept\"` to obtain an immutable candidate. Show the term, meaning, part of speech, and language. Then offer **Coin this term** and **Prompt for another**. `prompt-another \"new concept\"` only generates a new candidate. To publish, the user must explicitly request coining of the currently displayed candidate; the agent then uses `coin-word <candidate-id> --publish`. The server returns a transaction ID after publication. Retry with the same ID is idempotent.\n\n`W` is Lingry's American English code"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74nezws67n3b8keq4safmb7x89e5v1\",\n  \"slug\": \"lingry\",\n  \"version\": \"2.0.9\",\n  \"publishedAt\": 1790356737034\n}"},{"path":"CHANGELOG.md","content":"# Changelog\n\n## 2.1.0\n\n- Made ClawHub the primary installation source for Muse and other compatible agents, with Git sparse checkout retained only as an optional fallback.\n- Linked Muse and generic-agent instructions directly to ClawHub's Versions tab so users can select the latest downloadable package.\n- Included this changelog in the published ClawHub package.\n- Removed local publisher credentials, candidate files, state-path and API-origin overrides from the ClawHub client.\n- Added server-generated, expiring candidate capabilities and a candidate-only publication endpoint.\n- Replaced executable next-action strings with structured intents and strict candidate ID validation.\n- Added a minimal ClawHub staging build that excludes tests and development files.\n- Added portable Muse/generic-agent install instructions, Git sparse checkout, and read-only local verification.\n- Added deterministic ZIP, SHA256 and file manifests from the same staged ClawHub payload, plus a deliberate GitHub Release workflow.\n\n## 2.0.2\n\n- Added two explicit actions after every generated candidate: coin this term or prompt for another.\n- Kept both the current and replacement candidate uncoined until the user explicitly requests publication.\n\n## 2.0.1\n\n- Documented the exact workspace-scoped, quoted ClawHub install command shown to users.\n- Removed unnecessary post-install `npm` and manual verification steps.\n- Confirmed clean-install word generation automatically creates the workspace credential, bootstraps the Agent Publisher, and opens a short-lived session without user-provided keys or secrets.\n- Clarified that publisher-key encryption is server-managed and operator configuration errors are not transient client failures.\n\n## 2.0.0\n\n- Removed the OpenClaw local Sugarchain wallet, private-key import, browser API Session copy/paste, and manual transaction approval workflow.\n- Added automatic workspace-scoped Agent Publisher registration and short-lived session renewal.\n- Added one unique Lingry-managed Sugarchain publishing address per OpenClaw agent workspace.\n- Added autonomous, policy-constrained coining of immutable canonical Lingry candidates.\n- Added first-use public Stream onboarding and read-only Daily Lingry Word automation guidance.\n\n## 1.0.7\n\n- Change default public leaderboard and stream command limits to 100 records.\n\n## 1.0.6\n\n- Accept direct public snapshot responses for leaderboard and stream commands.\n\n## 1.0.5\n\n- Added public hourly-indexed leaderboard and stream commands for OpenClaw.\n\n## 1.0.4\n\n- Clarify first-run setup: create or open a `lingry.net` wallet first, import the matching private/login key on Ubuntu OpenClaw, then configure the 30-day API session token.\n- Add stale OpenClaw gateway environment troubleshooting for cases where terminal `auth-status` accepts a new token but chat still reports an old expiry.\n\n## 1.0.3\n\n- Add first-launch OpenClaw setup instructions for ownership repair, wallet import, session-token storage, gateway restart, and t"},{"path":"skill-card.md","content":"## Description:\n\nDiscover Lingry words, generate immutable candidates, and coin only the currently selected candidate after explicit user publication intent.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[svetlyoh](https://clawhub.ai/user/svetlyoh)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPeople using an agent can discover public Lingry words, generate candidates from concepts, and explicitly publish a selected candidate.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Word prompts are sent to Lingry's server.\n\nMitigation: Share only concepts you are comfortable sending to the service; never provide wallet secrets.\n\nRisk: Coining permanently publishes the selected candidate.\n\nMitigation: Coin only after the user explicitly requests publication of the currently selected candidate.\n\n## Reference(s):\n\n- [Lingry project homepage](https://github.com/svetlyoh/web-wallet/tree/master/skills/lingry)\n- [Lingry service](https://lingry.net)\n- [ClawHub Lingry release](https://clawhub.ai/svetlyoh/skills/lingry)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [Markdown with word and candidate details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [A published candidate returns a transaction ID; generating a candidate does not publish it.]\n\n## Skill Version(s):\n\n2.0.9 (source: ClawHub release metadata; bundled files declare 2.1.0)\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":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1750,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:16:46.086Z","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:16:46.086Z","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-12T19:22:35.968Z","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"}]}}}