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

@elizaos/openclaw-adapter

v0.1.0

Published

Run Eliza (@elizaos) plugins inside OpenClaw — wallets, connectors, services, and more

Downloads

120

Readme

@openclaw/eliza-adapter

Run Eliza plugins inside OpenClaw. Wraps Eliza actions as OpenClaw tools, providers as lifecycle hooks, services, routes, and evaluators — letting the two agent ecosystems interoperate.

What it does

| Eliza concept | OpenClaw equivalent | How it works | |---|---|---| | Action | Tool | Parameters converted to TypeBox schema, handler wrapped in execute() | | Provider | before_agent_start hook | Provider output injected as prepended context | | Service | Service | Started eagerly, injected into RuntimeBridge for other components | | Route | HTTP route | Request/response translated, paths prefixed with /eliza | | Evaluator | message_received / agent_end hook | Pre-evaluators → message hooks, post-evaluators → agent-end hooks | | Event | Lifecycle hook | Mapped where semantics align (MESSAGE_RECEIVED → message_received, etc.) |

Install

Inside the OpenClaw monorepo

Already in place at extensions/eliza-adapter/. Enable it in your OpenClaw config.

Standalone (npm)

npm install @openclaw/eliza-adapter

Then register as an OpenClaw extension (see Configuration below).

Configuration

Add to your OpenClaw config:

{
  "plugins": {
    "eliza-adapter": {
      "plugins": ["@elizaos/plugin-evm"],
      "settings": {
        "EVM_PRIVATE_KEY": "${EVM_PRIVATE_KEY}",
        "EVM_PROVIDER_URL": "https://mainnet.infura.io/v3/YOUR_KEY"
      },
      "agentName": "WalletBot"
    }
  }
}

Config fields

| Field | Required | Description | |---|---|---| | plugins | Yes | Array of Eliza plugin package names or file paths to load | | settings | No | Key-value settings passed to plugins via runtime.getSetting(). Supports ${ENV_VAR} expansion. | | agentName | No | Agent display name (default: "Eliza") |

What gets registered

When you configure plugins: ["@elizaos/plugin-evm"], the adapter:

  1. Starts the EVMService (connects wallet, sets up RPC)
  2. Registers tools: eliza_send_tokens, eliza_swap_tokens, eliza_cross_chain_transfer, etc.
  3. Registers hooks: Wallet balance and token balance injected into agent context before each run
  4. Registers routes: Any HTTP endpoints the plugin exposes, under /eliza/...

The tools appear in OpenClaw's agent like any native tool. The agent can call eliza_send_tokens with { toAddress: "0x...", amount: "1.5", chain: "base" } and the adapter handles execution through the Eliza plugin's action handler.

Supported Eliza plugins

Any Eliza plugin that exports the standard Plugin shape works. Tested patterns:

  • Wallet plugins (plugin-evm, plugin-solana) — actions become transfer/swap/bridge tools
  • Service plugins — started and available via runtime.getService()
  • Provider plugins — context injected into agent prompts

Known limitations

  • LLM methods (useModel, generateText) throw NotImplementedError. Actions that rely on conversational parameter extraction need explicit parameters or known schemas.
  • Channel plugins (Discord, Telegram) register as tools only, not as native OpenClaw channels.
  • Database is in-memory (10K memories/table cap with LRU eviction). No persistence.
  • Embeddings are not generated. Vector search works if embeddings are provided but none are created automatically.

Plugin resolution

Eliza plugins are loaded via dynamic import(). They must be resolvable from the OpenClaw runtime context:

# Install the Eliza plugin you want to use
npm install @elizaos/plugin-evm

# Or use a file path
{
  "plugins": ["./path/to/my-eliza-plugin/index.js"]
}

Development

# Run tests (418 tests)
pnpm test

# Type-check
pnpm typecheck

# Build for publishing
pnpm build

Architecture

index.ts                    Entry point — loads plugins, orchestrates registration
src/
  runtime-bridge.ts         IAgentRuntime implementation backed by InMemoryStore
  in-memory-store.ts        Full IDatabaseAdapter with eviction (memories, rooms, entities, etc.)
  action-to-tool.ts         Eliza Action → OpenClaw tool (with schema conversion)
  provider-to-hook.ts       Eliza Provider → before_agent_start hook
  service-adapter.ts        Eliza Service → OpenClaw service lifecycle
  route-adapter.ts          Eliza Route → OpenClaw HTTP route
  evaluator-to-hook.ts      Eliza Evaluator → message_received/agent_end hook
  schema-converter.ts       JSON Schema → TypeBox conversion + known wallet schemas
  event-mapper.ts           Eliza EventType → OpenClaw PluginHookName
  config.ts                 Config parsing with ${ENV_VAR} resolution
  eliza-types.ts            Local type definitions (no @elizaos/core dependency)
  logger-adapter.ts         OpenClaw logger → Eliza logger shape
  memory-builder.ts         Memory object construction from OpenClaw contexts
  types.ts                  Adapter config types + NotImplementedError

License

MIT