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

@bsbofmusic/cdper-doubao

v1.1.9

Published

Standalone Doubao CLI controlled through a user's real Chrome/Edge via CDP Bridge

Readme

cdper-doubao

Standalone Doubao workflow CLI for the user's real logged-in Chrome over CDP. It is not a general browser automation framework; use official playwright-core directly for arbitrary page control after Chrome is available.

Install

npm install -g @bsbofmusic/cdper-doubao

Requirements:

  • Node.js 18+
  • A real Chrome/Edge profile with Doubao logged in
  • Local Chrome DevTools on 127.0.0.1:9222 from your launcher/bridge; CDP_WS remains an optional explicit override

Use

cdper-doubao "1+1等于几?"
cdper-doubao "请详细解释 TCP keepalive" --json --wait normal
cdper-doubao doctor --json
cdper-doubao status --json
cdper-doubao session --json

Save a CDP WebSocket URL locally:

cdper-doubao config set --ws "ws://<host>:<port>/devtools/browser?token=<token>" --json

Query options

  • --json - structured JSON output
  • --mode expert - Doubao mode path
  • --session <id> - continue a known session
  • --conversation-policy auto|fresh|followup
  • --wait short|normal|long|very_long
  • --max-wait-ms <ms>
  • --progress-every-ms <ms>
  • --max-extends <n>
  • --no-check - skip preflight check

Programmatic API

const { queryDoubao } = require('@bsbofmusic/cdper-doubao');

const result = await queryDoubao('请用一句话回答:1+1等于几?', {
  conversationPolicy: 'fresh',
  expectedDuration: 'short',
});

Release notes — 1.0.3

  • Depends on @bsbofmusic/cdper-core@^1.2.7, so status --json correctly reports healthy local CDP as ok=true.
  • Removed the dead url-action query branch from the live Doubao query path. Fresh/followup queries now consistently use the composer path: open clean Doubao home, switch 快速 → 专家, insert prompt text, click send, and verify submission.
  • Kept url-action only as a URL-pattern guard for conversation-id parsing (/chat/url-action is not a real followup anchor).
  • Pack/install smoke was verified from the generated tarball in an isolated npm prefix before publish.

Design note: Doubao link reading is more reliable when URLs are included in the composer prompt and handled by the page’s native preview/search flow. A hidden url-action branch created false confidence and made fallback logic unreachable.


Security

All Doubao workflow control happens through the user's real browser via local CDP. Tokens are redacted from diagnostic output. Do not commit CDP_WS or full WebSocket URLs containing token=. For arbitrary page automation, use playwright-core directly instead of expanding cdper's product surface.