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

@he9527/yingdao-openapi-cli

v0.1.4

Published

Command line tools for Yingdao RPA OpenAPI.

Readme

Yingdao OpenAPI CLI

yingdao is a Node.js CLI for Yingdao RPA OpenAPI. It is designed for normal command-line use and for agent tool calls: every command supports -h/--help, uses readable flags, and prints JSON.

Install

From this folder during development:

npm install -g .
yingdao -h

After publishing to npm:

npm install -g @he9527/yingdao-openapi-cli
yingdao -h

Node.js 18 or newer is required. The CLI has no third-party runtime dependencies.

Credentials

For normal use, configure the Yingdao accessKey credentials once. The CLI saves them in the user config file, then creates, caches, and refreshes accessToken automatically.

yingdao auth config --access-key-id "..." --access-key-secret "..."

Check configuration and token cache status:

yingdao auth status --pretty

If credentials are missing, configure them first. Agents should stop here and show the setup command instead of running app/job/task/queue commands as a test.

Optional private-cloud base URL:

yingdao auth config --access-key-id "..." --access-key-secret "..." --base-url "https://api.your-domain.example"

By default config and token cache files are stored under ~/.yingdao-openapi-cli/. Use YINGDAO_CONFIG_DIR only when an agent or test run needs an isolated config directory.

Environment variables YINGDAO_ACCESS_KEY_ID, YINGDAO_ACCESS_KEY_SECRET, and YINGDAO_BASE_URL are still supported for temporary sessions. Advanced only: YINGDAO_ACCESS_TOKEN is accepted for debugging, but agents should prefer saved accessKey credentials so token lifecycle is automatic.

To remove saved credentials and token cache:

yingdao auth clear-config --pretty

Help

yingdao -h
yingdao app -h
yingdao job -h
yingdao queue -h
yingdao call -h

Common Commands

Preview a request without network access:

yingdao app list --page 1 --size 20 --dry-run --pretty

For broad or bulk dangerous requests, stop and confirm exact targets first. Do not start all apps/tasks, stop all running jobs, retry all failed jobs, delete users, transfer all apps, or modify queue items in bulk without an explicit confirmed list of UUIDs/accounts.

List apps:

yingdao app list --page 1 --size 20

Query apps using the Postman collection endpoint:

yingdao app query --accurate-robot-name "应用名称" --page 1 --size 10

Query app main-flow parameter schema:

yingdao app param-schema --robot-uuid <app-or-robot-uuid>

Start a job/application:

yingdao job start --robot-uuid <uuid> --param orderId=123 --typed-param amount:number=99

job start --param is converted to the documented params array. Use --typed-param name:type=value for non-string or file parameters.

Start a scheduled/manual task. scheduleUuid comes from schedule.list or schedule.detail; the returned taskUuid is used later for query/stop:

yingdao schedule list --source-name "任务名称" --pretty
yingdao task start --schedule-uuid <schedule-uuid> --pretty

For task startup parameters:

yingdao task start --schedule-uuid <schedule-uuid> --rela-param <robot-uuid>:orderId=123 --rela-param <robot-uuid>:fileKey:file=<file-key>

Query a job:

yingdao job query --job-uuid <job-uuid>

Fetch job logs with pagination. log-search returns the page directly; log-notify creates an async log query for the same page/filter, and log-query only polls by requestId, so set page and size on log-search or log-notify:

yingdao job log-search --job-uuid <job-uuid> --page 2 --size 50 --sort-key time --sort-order desc
yingdao job log-notify --job-uuid <job-uuid> --page 2 --size 50 --search-key "错误"
yingdao job log-query --request-id <request-id>

Enqueue a queue item:

yingdao queue enqueue --queue-uuid <queue-uuid> --name order-123 --priority 100

Upload a file:

yingdao file upload --file D:\path\input.xlsx

Use an endpoint wrapper directly:

yingdao call job.start --body-file .\job_start.json --dry-run --pretty

Call any raw OpenAPI path:

yingdao raw POST /oapi/dispatch/v2/job/start --body-file .\job_start.json

Endpoint Names

yingdao endpoint list --pretty

Important endpoint names include:

  • token.create
  • task.start, task.query, task.stop
  • schedule.list, schedule.detail
  • job.start, job.query, job.stop, job.retry, job.list
  • job.log-search, job.log-notify, job.log-query
  • client.group-list, client.list, client.query
  • file.upload
  • app.list, app.run-records, app.param-schema, app.transfer-owner
  • queue.enqueue, queue.dequeue, queue.update-item, queue.reenqueue
  • user.list, user.create, user.modify, user.delete, user.reset-password

Publish

Before publishing:

npm pack --dry-run
npm publish --access public

Use an npm scope/name that you control. The current package name is @he9527/yingdao-openapi-cli; change it in package.json if needed.

Legacy Python Tool

yingdao_openapi_cli.py remains in this folder for compatibility, but the npm package entrypoint is bin/yingdao.js.