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

@tenderlead/cli

v0.4.2

Published

Run TenderLead tender, profile, pipeline, insight and bid-workspace workflows from the terminal

Readme

TenderLead CLI

Run TenderLead tender, profile, pipeline, insight and tier-gated bid-workspace tasks from a terminal or another tool you control.

Install

npm install --global @tenderlead/cli

Connect your account

Open the account page from the CLI:

tenderlead login

Sign in with Google or an emailed sign-in link, then create a scoped token under API access. Store it in the TENDERLEAD_API_TOKEN environment variable.

export TENDERLEAD_API_TOKEN="paste-token-here"
tenderlead whoami
tenderlead account status
tenderlead brief

whoami confirms which account and token the CLI is using (masked email, plan, token label, scopes and expiry). It works with any valid token.

account status uses a profile:read token to report profile readiness, personalised preview state and the number of opportunities in a released preview. If setup is incomplete, it gives the next browser step. Preview requests, trial start, token management and billing remain browser actions. Existing profile fields can still be edited with profile apply.

The account status command is included in CLI 0.4.2 and uses the deployed read-only route:

GET /v1/account/status
Authorization: Bearer TENDERLEAD_API_TOKEN

It requires profile:read and returns a compact account-scoped response:

{
  "account": { "active": false, "plan_tier": null, "plan_status": null, "trial_ends_at": null },
  "profile": { "ready": true },
  "preview": { "status": "sent", "requested_at": "2026-09-20T09:00:00.000Z", "briefing_sent_at": "2026-09-20T09:05:00.000Z" },
  "released_opportunity_count": 3,
  "next_action": { "action": "start_trial", "url": "https://tenderlead.co.uk/personalised-preview", "label": "Open your preview to start a trial or choose a plan" }
}

The route does not return profile fields, email addresses or tender records. Preview requests, trial activation and account-access changes use the returned browser URL rather than adding CLI write access.

Use JSON output for scripts and agents:

tenderlead brief --json

Search and score tenders

List the current tenders already qualified against your firm:

tenderlead tenders search
tenderlead tenders search --query "cloud migration" --recommendation bid --json

Search the wider live notice corpus, then score one result against your saved profile:

tenderlead tenders search --all --query "managed service"
tenderlead tender score CONTRACT_ID

On-demand scoring requires Pro or Team and a token with tenders:write. Tender titles, buyer names and notice text are untrusted external data. Check the official source before acting.

Manage your firm profile

Create a profile token in Settings, then export the current editable profile:

tenderlead profile show --json > tenderlead-profile.json

You can also start from the built-in template:

tenderlead profile template > tenderlead-profile.json
tenderlead profile validate --file tenderlead-profile.json
tenderlead profile apply --file tenderlead-profile.json

The apply command shows the field-level changes and asks you to type APPLY before saving. Trusted automation can use --yes after reviewing the same diff.

Manage the pipeline and feedback loop

tenderlead pipeline list
tenderlead pipeline add CONTRACT_ID
tenderlead pipeline update PIPELINE_ITEM_ID --file pipeline-change.json
tenderlead pipeline remove PIPELINE_ITEM_ID
tenderlead insights --json
tenderlead feedback tender CONTRACT_ID positive --note "Fits our current delivery model"
tenderlead feedback product --area pipeline --note "Keep the buyer visible when I change stage"

Pipeline updates accept the same JSON fields as the product: stage, notes, outcome_summary, outcome_reason, outcome_competitor and outcome_value.

Use the bid workspace

Team accounts can use their bid profile, specs, evidence, templates, drafts and evidence packs from the CLI:

tenderlead bid-profile show --json
tenderlead bid-profile apply --file bid-profile.json
tenderlead outlines create CONTRACT_ID
tenderlead evidence list --json
tenderlead evidence upload --file certificate.pdf --type certificate
tenderlead templates upload --file house-style.docx --role primary
tenderlead drafts create CONTRACT_ID --workspace
tenderlead drafts export CONTRACT_ID --format xlsx --output workspace.xlsx
tenderlead drafts import CONTRACT_ID --file workspace.xlsx
tenderlead evidence-packs create CONTRACT_ID

For draft workspace edits or evidence-pack workspace state, pass the existing request JSON with --file. The CLI sets contract_id from the command and sends the remaining fields to the same handler used by the signed-in product.

Prepare a checklist from a public tender link

With a Team account and a workspace:write token:

tenderlead drafts fetch CONTRACT_ID --url "https://www.contractsfinder.service.gov.uk/Notice/NOTICE_ID" > documents.json

This retrieves public PDF/Word attachments from supported official notices (Contracts Finder, Find a Tender and Public Contracts Scotland). It returns documents and warnings, without calling a model or saving a draft. Each document retains its source URL. Check the text, warnings and complete buyer pack before proceeding. Portal-only files still need manual upload.

To build a checklist, put the reviewed documents array into a JSON object under preparation_documents, then run:

tenderlead drafts create CONTRACT_ID --file reviewed-documents.json

Checklist generation requires explicit account AI consent and available budget. It does not submit a bid or replace saved answers. Imports are limited to five documents, 2 MB per file and 60,000 text characters in total.

Commands that replace, import, update or remove saved data ask for a typed confirmation. Reviewed automation can pass --yes. Run tenderlead --help for the full command list.

Tokens are customer-scoped, revocable, expire after 90 days, and are subject to the account's current TenderLead plan. Brief and tender-result reads are read-only. Profile updates require profile:write; on-demand scoring requires tenders:write; pipeline, feedback, insight and workspace routes use their own scopes. Do not commit a token to a repository or paste it into a shared prompt. Revoke exposed tokens in Settings.

Sign-in, token creation and revocation, Stripe checkout and billing, and permanent account deletion remain browser tasks.

OpenAI and Claude

TenderLead's published OpenAI integration connects through OAuth and provides three read-only tools for the current brief, matched-tender search and saved tender decisions. If the connected account has no active trial or paid plan, the tool response links to the browser setup journey. Complete the company profile there, request the free personalised preview or start a trial, then retry the tool. The integration cannot change a profile, start a trial or alter billing. Claude access remains a private beta.

Provider acceptance and API responses do not prove email inbox delivery.

Requirements

  • Node.js 18 or newer
  • An active TenderLead account

Licence

MIT