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

dating-cli

v0.2.5

Published

CLI wrapper for dating APIs used by AI agents

Readme

dating-cli

npm-based Dating API command-line wrapper for direct AI/Agent invocation.

1. Installation

Install dependencies locally in this directory:

Global installation (development machine):

npm install -g dating-cli
dating-cli --help

2. Configuration

Default config file path: ~/.dating-cli/config.json

dating-cli config show

After successful task create|get|update|stop, the latest task state is automatically saved:

  • lastTask (object containing taskId/taskName/status/matchStatus/resultVersion/operation/updatedAt)
  • lastTaskId
  • lastTaskStatus
  • lastTaskMatchStatus
  • lastTaskOperation
  • lastTaskUpdatedAt

task create returns the created task payload, including taskId and taskName, so CLI saves lastTask directly from backend response.

Auth state is also persisted automatically:

  • register / login always save token/tokenHead/memberId/username
  • logout always clears local auth fields and writes the config

Environment variables are also supported:

  • DATING_API_TOKEN
  • DATING_API_TOKEN_HEAD
  • DATING_API_CONFIG

3. Typical Workflow

3.1 Register (token auto-saved)

dating-cli register

To try a specific username first:

dating-cli register --username alice

3.2 Login (token auto-saved)

dating-cli login --username demo_user --password demo_pass

3.3 Logout and clear local token

dating-cli logout

3.4 Upload image to MinIO

dating-cli upload "./photos/me-1.jpg" "./photos/me-2.jpg"

This command uploads each file via POST /minio/upload, then automatically calls PUT /member-profile with photoUrls array. Returned URLs are in top-level photoUrls.

3.5 Update profile

dating-cli profile update \
  --gender Male \
  --character-text "gentle,introverted" \
  --hobby-text "sports" \
  --ability-text "basketball" \
  --city Shanghai \
  --photo-url "https://cdn.example.com/photos/me-1.jpg" \
  --photo-url "https://cdn.example.com/photos/me-2.jpg" \
  --email "[email protected]" \
  --whatsapp "85260000000"

For profile images, prefer dating-cli upload <filePaths...> to upload and update photoUrls in one step.

3.6 Create task

dating-cli task create \
  --task-name "Find female match" \
  --preferred-gender-filter '{"eq":"Female"}' \
  --preferred-city-filter '{"eq":"Shanghai"}' \
  --preferred-height-filter '{"gte":165,"lte":180}' \
  --intention "serious relationship"

Success response includes the created task object in response.data, including taskId and taskName.

--*-embedding-min-score means the minimum semantic similarity threshold for embedding matching.
Default recommendation is to leave it unset; when omitted on task create, backend defaults to 0.1.

Update by taskId:

dating-cli task update 12 \
  --task-name "Updated criteria" \
  --preferred-gender-filter '{"eq":"Female"}' \
  --preferred-city-filter '{"eq":"Hangzhou"}' \
  --intention "long-term relationship"

task update and task stop still return success-only payloads (response.data is usually null). CLI infers the local taskState from the controller behavior:

  • task update saves status=active, matchStatus=UNMATCHED, resultVersion=0
  • task stop saves status=stopped, matchStatus=STOPPED

CLI still treats any non-code=200 response as an error and prints backend message.

3.7 Single check

dating-cli check 12

Check a specific page (10 candidates per page):

dating-cli check 12 --page 2

check preserves the controller's top-level response.watchStatus and response.serverTime, and normalizes response.data.candidates[].photoUrls to an array.

3.8 Re-check until matched

dating-cli check 12

Re-check when unmatched

3.9 Reveal contact after match

dating-cli reveal-contact 201

3.10 Submit review

dating-cli review 201 --rating 5 --comment "Great communication"

4. Main Commands

  • dating-cli register
  • dating-cli login
  • dating-cli logout
  • dating-cli config path|show|set-token|clear-token
  • dating-cli upload <filePaths...>
  • dating-cli profile update
  • dating-cli task create|get|update|stop
  • dating-cli check
  • dating-cli reveal-contact
  • dating-cli review
  • dating-cli admin violation-review
  • dating-cli admin ranking-get
  • dating-cli admin ranking-set

5. Parameter Input

  • dating-cli now uses direct command-line parameters only.
  • --json / --json-file / --criteria-json / --criteria-file are no longer supported.
  • Task criteria filter options use GraphQL filter JSON object strings (for example --preferred-gender-filter '{"eq":"female"}').
  • Use --help on each command to view all supported direct options.

6. Output Format

Default output is JSON for easy parsing by upstream AI.

Error response:

{
  "ok": false,
  "error": {
    "message": "...",
    "status": 500,
    "payload": {}
  }
}