npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@origintrail-official/dkg-adapter-openclaw

v10.0.0-rc.2-dev.1778003021.9e7fd38

Published

OpenClaw plugin adapter for connecting a DKG V10 node and chat bridge to an OpenClaw agent

Readme

DKG V10 OpenClaw Adapter

@origintrail-official/dkg-adapter-openclaw connects a local OpenClaw agent to a DKG V10 node.

The adapter is a thin bridge into the DKG node. It does not run its own DKG node. The DKG daemon owns the node, triple store, P2P networking, /.well-known/skill.md, the right-side UI chat surface, and DKG-backed chat and memory persistence.

What It Does

  • bridges the DKG node UI to a local OpenClaw agent
  • keeps connected-agent chat persisted in DKG Working Memory via the chat-turns assertion of the agent-context context graph
  • registers the DKG memory provider as OpenClaw's memory-slot capability, so slot-backed recall reads flow through real V10 primitives (assertion-scoped SPARQL queries with view: 'working-memory', 'shared-working-memory', and 'verified-memory') rather than the legacy filesystem-watcher path
  • exposes DKG agent-network tools to the OpenClaw runtime
  • funds the first three node wallets via the testnet faucet on first setup (skippable with --no-fund; failures are non-fatal and log manual curl instructions)

Memory writes are not exposed as an adapter tool. The agent persists memory through direct daemon routes listed in packages/cli/skills/dkg-node/SKILL.md §5 (POST /api/assertion/create on first use of a fresh project CG, then POST /api/assertion/:name/write for each write). The daemon serves the skill document at GET /.well-known/skill.md, so the agent sees it on startup and calls the routes directly.

What It Does Not Do Anymore

  • it is not the source of truth for SKILL.md
  • it does not copy workspace skill files during setup
  • it does not try to be the product-level owner of the DKG install and UI experience

Quick Start

Install the DKG CLI and run setup:

npm install -g @origintrail-official/dkg
dkg openclaw setup

The setup flow is non-interactive and idempotent. It writes ~/.dkg/config.json, merges the adapter into ~/.openclaw/openclaw.json (including the adapter's runtime config under plugins.entries.adapter-openclaw.config), writes the adapter's workspace scratch state under <workspace>/.dkg-adapter, starts the daemon if requested, and verifies the node.

The node UI's right-panel "Connect OpenClaw" button runs this same setup flow in-process — clicking it from a fresh install is equivalent to running dkg openclaw setup on the command line (issue #198).

If the OpenClaw gateway does not auto-reload after the config change, run:

openclaw gateway restart

Flags

| Flag | Default | Purpose | | --- | --- | --- | | --no-fund | off | Skip the testnet faucet call during setup. Use this if your wallets are already funded, the faucet is unreachable, or you're running offline. | | --no-start | off | Skip starting the DKG daemon (configure only). | | --no-verify | off | Skip the post-setup verification pass. | | --dry-run | off | Preview the setup actions without writing anything. |

Faucet funding is best-effort: a failed call logs a manual curl block and setup continues. See the main repo's Testnet Funding section and docs/setup/TESTNET_FAUCET.md for request/response semantics, rate limits, and error codes.

Verification

A healthy setup should satisfy all of the following:

  • dkg_status works from the OpenClaw agent
  • the DKG node UI loads at http://127.0.0.1:9200/ui
  • the right-side chat surface can connect to OpenClaw and send a message successfully
  • the conversation survives UI reload because the turns are persisted in DKG memory

Config Files

| File | Owner | Purpose | | --- | --- | --- | | ~/.dkg/config.json | DKG node | node config: networking, chain, auth, API | | ~/.openclaw/openclaw.json | OpenClaw | plugin loading config; the adapter's runtime config also lives here under plugins.entries.adapter-openclaw.config | | <workspace>/.dkg-adapter/ | DKG adapter | workspace-local scratch state such as chat-turn watermarks |

Adapter Config

These keys live under plugins.entries.adapter-openclaw.config in ~/.openclaw/openclaw.json. dkg openclaw setup populates them with first-wins semantics — customizations survive re-runs unless --port is passed explicitly (which refreshes daemonUrl).

| Key | Default | Purpose | | --- | --- | --- | | daemonUrl | http://127.0.0.1:9200 | DKG daemon HTTP URL (env DKG_DAEMON_URL overrides at runtime) | | stateDir | <workspace>/.dkg-adapter after setup | adapter runtime state directory; setup-owned workspace defaults store chat-turn watermarks at <workspace>/.dkg-adapter/chat-turn-watermarks.json; custom stateDir values keep the legacy nested layout under <stateDir>/dkg-adapter/ | | memory.enabled | true after setup | register the DKG memory-slot capability on attach (slot-backed recall via api.registerMemoryCapability; no adapter-side write tool — writes go through SKILL.md direct routes) | | channel.enabled | true after setup | enable the DKG UI to OpenClaw bridge | | channel.port | 9201 (optional) | standalone bridge port when gateway route registration is unavailable; setup does not write this key — set it manually on the entry config if you need to override the default |

Environment override: OPENCLAW_STATE_DIR overrides the adapter state root at runtime. Manual state roots are operator-owned; unless they resolve to a known workspace default, watermarks stay nested under <stateDir>/dkg-adapter/. ~/.openclaw remains the OpenClaw runtime home, not the adapter scratch directory.

Disconnect semantics. The node UI's "Disconnect" button removes plugins.entries.adapter-openclaw entirely from ~/.openclaw/openclaw.json (including any customized config values) AND removes $WORKSPACE_DIR/skills/dkg-node/SKILL.md (the canonical DKG node skill installed by setup). Other skills under skills/ and sibling files under skills/dkg-node/ are untouched. If you had set a non-default daemonUrl (for example via dkg openclaw setup --port 9300 or a remote daemon URL), re-run dkg openclaw setup --port <N> after Reconnect to restore it — Reconnect also re-installs the skill document. Default-port users see no visible difference across a Disconnect/Reconnect cycle aside from the brief absence of the skill file.

Memory flows exclusively through api.registerMemoryCapability for slot-backed recall reads (handled by DkgMemorySearchManager, which fans out four parallel SPARQL queries — one against agent-context / chat-turns in working memory plus three against the resolved project CG's memory assertion with view: 'working-memory', 'shared-working-memory', and 'verified-memory' — and ranks the merged results with a trust-weighted score) and through the daemon routes documented in packages/cli/skills/dkg-node/SKILL.md for writes (POST /api/assertion/create on the first write to a fresh project CG, then POST /api/assertion/:name/write for each write after that).

Notes

  • The DKG node serves the canonical SKILL.md at GET /.well-known/skill.md.
  • Connected-agent chat in DKG V10 belongs in the right-side shell chat surface, not the legacy Agent Hub tab.
  • The adapter package includes a lightweight setup-entry.mjs so newer OpenClaw setup/runtime flows can load setup-safe surfaces separately from the full runtime.