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

openclaw-plugin-code-power

v1.1.0

Published

Enhanced coding capabilities for OpenClaw

Readme

openclaw-plugin-code-power

Code Power Plugin For OpenClaw

This plugin is inspired by OpenCode and OpenClaw.

Overview

This repository provides an OpenClaw plugin that adds "code power" tools for software engineering tasks.

It currently registers six tools:

  • code_analyze: single-file and multi-file static analysis with lightweight issue detection
  • glob: fast file discovery by glob pattern
  • ls: directory tree listing for workspace exploration
  • multi_edit: multiple ordered text edits on one file in a single operation
  • todo_write: store a structured todo list for the current session
  • todo_read: read the structured todo list for the current session

Tools

code_analyze

Parameters:

  • code (string, optional): source code text (single-snippet mode)
  • language (string, optional): language label used for reporting
  • filename (string, optional): target label in report
  • files (array<string>, optional): explicit file paths for batch analysis
  • globPattern (string, optional): glob pattern for batch discovery
  • globPath (string, optional): base directory for globPattern
  • maxFiles (number, optional): max files collected via glob, default 20
  • includePerFile (boolean, optional): include per-file details in multi-file mode
  • outputMode (summary | detailed, optional): default summary
  • includeIssues (boolean, optional): default true
  • maxIssues (number, optional): max issues returned per file, default 10

Returns:

  • Single mode: text report + details with score/stats/issues
  • Multi mode: aggregate report + details with totals, issue summary, worst files, and optional per-file entries

Notes:

  • The analyzer is heuristic/regex-based, not AST-based.
  • Default behavior is lightweight to reduce token usage.

glob

Parameters:

  • pattern (string, required): glob pattern to match files
  • path (string, optional): search directory (absolute or workspace-relative)

Returns:

  • Matching absolute file paths sorted by modification time (newest first)
  • details with { path, pattern, count, truncated, limit }

ls

Parameters:

  • path (string, optional): absolute directory path, defaults to workspace root
  • ignore (array<string>, optional): extra directory/file names to ignore

Returns:

  • Tree-style directory listing text
  • details with { path, count, truncated, limit, ignores }

multi_edit

Parameters:

  • filePath (string, required): absolute file path to modify
  • edits (array, required): ordered list of edits
    • oldString (string): text to replace
    • newString (string): replacement text
    • replaceAll (boolean, optional): replace all matches when true

Behavior:

  • Applies edits sequentially in memory and writes once after validation.
  • Supports creating a file when the first edit uses oldString: "".

Returns:

  • Text summary and details including byte delta and per-edit results

todo_write

Parameters:

  • todos (array, required): list of todo items

Todo item shape:

  • id (string)
  • content (string)
  • status (one of): pending, in_progress, completed, cancelled

Behavior:

  • Todos are stored in-memory in the plugin process.
  • The store key is the session id (ctx.sessionId trimmed); if missing it falls back to __global__.

Returns:

  • A JSON string of the saved todos
  • Tool details including summary counts (e.g. total, active)

todo_read

Parameters:

  • None

Behavior:

  • Reads the same in-memory session store used by todo_write.

Returns:

  • A JSON string of all todos for the current session
  • Tool details including summary counts (e.g. total, active)

Configuration

openclaw.plugin.json uses a schema of:

  • { type: "object", additionalProperties: false }

At the moment, the plugin does not require any custom configuration fields.

Install / Run (CLI)

This package also ships a CLI (openclaw-plugin-code-power, from dist/bin/cli.js).

The CLI runs two commands:

  1. openclaw plugins install <spec> --yes
  2. openclaw gateway restart

Recommended flow

Build:

pnpm install
pnpm run build

Install from dist:

./dist/bin/cli.js --spec ./dist

CLI options

  • --dry-run: print commands without executing them
  • --openclaw <cmd>: override the openclaw executable (default: openclaw)
  • --spec <path>: path containing openclaw.plugin.json
    • default: OPENCLAW_PLUGIN_SPEC env var
    • if not set: falls back to the CLI’s package root (for the built CLI, this is typically dist)

Development Notes

  • Plugin entry: src/plugin/index.ts
  • Tools: src/plugin/tools/*
  • Build copies plugin sources and plugin metadata into dist/ (see scripts/build.mjs)

Notes / Limitations

  • todo_* data is in-memory only; it will reset when the OpenClaw gateway (or plugin process) restarts.
  • code_analyze is regex/heuristic based (it is not a full language parser or type-aware analyzer).
  • glob/ls/multi_edit enforce workspace boundary checks.

Thanks

License

MIT License © Herbert He