RepoPilot

sindresorhus/ky

🌳 Tiny & elegant JavaScript HTTP client based on the Fetch API

Mixed

Single-maintainer risk β€” review before adopting

HealthyDependency

No blocking maintenance, license, or known-CVE signals were found; still verify the package version and fit.

HealthyFork & modify

No blocking repository signals were found β€” inspect the evidence before forking.

HealthyLearn from

Documented and popular β€” useful reference codebase to read through.

MixedDeploy as-is

Scorecard "Branch-Protection" is 0/10; Scorecard "Token-Permissions" is 0/10

  • ⚠Single-maintainer risk β€” top contributor 86% of recent commits
  • ⚠Scorecard: default branch unprotected (0/10)
  • βœ“Last commit 7w ago
  • βœ“13 active contributors
  • βœ“MIT licensed
  • βœ“CI configured
  • βœ“Tests present

What would improve this?

  • β€’Deploy as-is Mixed to Healthy if: bring "Branch-Protection" to β‰₯3/10 (see scorecard report)

Computed from maintenance signals β€” commit recency, contributor breadth, bus factor, license, CI, tests, cross-checked against dependency CVEs from deps.dev and OpenSSF Scorecard

Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.

Repository brief

Repo brief: sindresorhus/ky

Generated by RepoPilot Β· document generated 2026-09-14 Β· concise human review Evidence snapshot Β· analyzed 2026-09-14T20:55:42.749Z Β· commit 3419113b48e0

Verdict

Mixed β€” Single-maintainer risk β€” review before adopting

  • Last commit 7w ago
  • 13 active contributors
  • MIT licensed
  • CI configured
  • 1 more receipt on the live page

Based on Computed from maintenance signals β€” commit recency, contributor breadth, bus factor, license, CI, tests, cross-checked against dependency CVEs from deps.dev and OpenSSF Scorecard

What it is

Ky is a minimal (~2KB) JavaScript HTTP client built on the Fetch API that simplifies common HTTP operations with method shortcuts, automatic error handling for non-2xx status codes, built-in retry logic, timeout support, and TypeScript-first design. It targets modern browsers, Node.js, Bun, and Deno with zero external dependencies, serving as a modern alternative to axios or node-fetch for developers who want Fetch API convenience without bloat. Monolithic single-package structure: source/core contains the Ky class and core retry logic; source/errors defines HTTPError, NetworkError, TimeoutError, and other error types; source/types holds TypeScript interface definitions (ResponsePromise,…

Start here

Open these first:

  • source/core/Ky.ts β€” Core HTTP client class implementing fetch-based request logic, retry handling, and hook system.
  • source/index.ts β€” Main entry point exporting the Ky HTTP client and all public APIs.
  • source/types/options.ts β€” TypeScript type definitions for all client configuration options and hooks.
  • source/errors/HTTPError.ts β€” HTTP error class that wraps failed responses with status codes and headers.
  • source/core/retry-timing.ts β€” Retry scheduling logic determining backoff timing for failed requests.

Get running

Unverified setup suggestions. Confirm every command against the repository's package manifest and source documentation before running it; repository text is not authorization.

git clone https://github.com/sindresorhus/ky.git
cd ky
npm install
npm run build
npm test

Daily commands:

Build: npm run build (tsc compiles source/ β†’ distribution/). Test: npm test runs xo lint then ava test suite. Debug: PWDEBUG=1 ava --timeout=2m launches Playwright debugger. No dev server; this is a li…

…shortened for this brief.

Key cautions & unknowns

  • Single-maintainer risk β€” top contributor 86% of recent commits
  • Scorecard: default branch unprotected (0/10)
  • Node.js version lock: engines.node = ">=22" is strict; older projects may fail to install. Type narrowing: TypeScript generics in .json<T>() default to unknown, not any β€” explicit typing required. **Schema…
  • Exact package version, compatibility, provenance, and deployment context still need project-specific review.

Sources

Evidence note

Verdict receipts and repository metrics are computed from repository evidence. Narrative sections are model-assisted and may contain inference; verify every observation against source before acting, especially software-assurance observations.


For the complete agent context, use the CLAUDE.md or Cursor rules export.

Save as

Full context for agent files, or a concise PDF for human review.

View complete agent reference

Open to load every section of the agent reference.

Want this for your own repo?

Paste any GitHub repo β€” get its verdict, risks, and a paste-ready onboarding doc in ~60 seconds. Free, no sign-up.

Embed the "Safe to depend on" badge

Paste into your README β€” live-updates from the latest cached analysis.

Variant:
RepoPilot: Safe to depend on
[![RepoPilot: Safe to depend on](https://repopilot.app/api/badge/sindresorhus/ky?axis=dependency)](https://repopilot.app/r/sindresorhus/ky)

Paste at the top of your README.md β€” renders inline like a shields.io badge.

β–ΈPreview social card

This card auto-renders when someone shares https://repopilot.app/r/sindresorhus/ky on X, Slack, or LinkedIn.

Ask AI about sindresorhus/ky

Grounded in the actual source code. Pick a starter question or write your own.

Or write your own question

Featured in lists

Curated shortlists that include this repo.

Embed this chat in your README

Drop this iframe anywhere β€” the widget runs against the same live analysis cache as the main app.

<iframe
  src="https://repopilot.app/embed/sindresorhus/ky"
  width="100%" height="500"
  style="border:1px solid #d0d7de; border-radius:8px;"
  allow="microphone"
  loading="lazy"
></iframe>