Skip to content

docs: one Keploy across the site - no editions, accurate native macOS/Windows, eBPF on Linux - #918

Open
slayerjain wants to merge 1 commit into
mainfrom
docs/one-keploy-sitewide
Open

slayerjain wants to merge 1 commit into
mainfrom
docs/one-keploy-sitewide

Conversation

@slayerjain

Copy link
Copy Markdown
Member

Summary

Follow-up to #916, which fixed the install pages. An audit of the rest of the current docs (version-4.0.0, src/, content/llms-*.txt, docusaurus.config.js) found the same problems site-wide. This PR fixes them across 93 files.

No editions, one Keploy

  • CI/CD (GitHub, GitLab, Jenkins, API-testing CI): the pages no longer say "Cloud replay requires the Enterprise binary… not the open-source binary". They install keploy.io/install.sh and sign in with KEPLOY_API_KEY.
  • "Keploy Enterprise" is no longer used as a product name, in pages or components. Where a feature is paid, the text names the plan, and only when the page's own plan badge says so.
  • Plan badges (ProductTier):
    • "Open Source" badges now list all four plans. As before, they don't show deployment options.
    • "Team" is corrected to "Teams".
    • The component renders proper chips for Free, Teams and Scale.
  • UI text: "Start OSS Quickstart", the Enterprise install reminder, and "demo of Keploy Enterprise" now say just Keploy.
  • Enterprise plan page: the sidebar's "Enterprise" install entry is now "Enterprise Plan", and its page is retitled "Get Started on the Enterprise Plan". Links that meant "install" now go to /docs/server/installation/.

eBPF on Linux, user space on macOS/Windows

Intro, concept and glossary pages, the docs home page's meta, the site schema, and the llms.txt/llms-full.txt text (what AI assistants read) now say eBPF is how Keploy captures traffic on Linux. They no longer say Windows requires WSL2, and they give the native macOS/Windows scope:

  • Go, Node.js, Python and Java apps;
  • HTTP/HTTPS, MySQL and MongoDB understood;
  • other protocols → Docker.

Quickstarts (31)

Each local-run section is classified by what the sample app talks to:

  • HTTP/HTTPS, MySQL or MongoDB only: "Running App Locally" works natively on Linux, macOS (Apple Silicon) and Windows (x86-64). Where the commands need it, there's a note:
    • macOS: run the app directly, not through a launcher;
    • Windows: ./mvnw can't run under cmd.exe, and the Java classpath separator is ;.
  • Other dependencies (Postgres, Redis, …): the section stays Linux/WSL, with a pointer to Docker on macOS and Windows.
  • Rust and Bun samples: these keep their Lima/WSL route. The native macOS/Windows support is tested with Go, Node.js, Python and Java.

Fixed along the way

  • keploy enterprise record (no such command) → keploy record --static-dedup.
  • GitHub release tarballs and keploy.io/ent/install.sh are no longer offered for install.
  • The time-freezing page stops treating WSL as native, and says native macOS/Windows don't support it.
  • llms-full:
    • kernel 5.15 → 5.10, which is what the CLI requires;
    • keploy versionkeploy --version;
    • --skipCoverage--skip-coverage.
  • Broken Docker commands: sudo docker compose up, and container names that don't exist in the sample.
  • Dead quickstart anchors in QuickStartList.js.
  • The schema no longer declares an Apache-2.0 license for the binary users install. It keeps codeRepository.

Verification

  • npm run build passes.
  • A scan of every rendered current-version page and llms*.txt finds no "Community Edition", "Keploy Community", "Keploy Enterprise", "Enterprise binary/edition/build", keploy enterprise or "requires WSL".
  • The home page still shows "OSS" in one place, the open-source sponsorship programme ("Valid OSS license"), which is about third-party projects and is intentionally kept.
  • prettier@2.8.8 --check (the CI command) passes on every changed file.
  • Checked against the CLI source: every command and flag changed or added (--skip-coverage, --freezeTime, --static-dedup, --custom-dedup-fields, --manual-login, keploy login, keploy --version).
  • Plan names were checked against api-server/pkg/models/subscription.go.
  • Three independent review passes (accuracy, completeness, final) found issues that are all fixed here.

Needs an owner call (not changed)

  • src/schema/siteEntities.js still points codeRepository at keploy/keploy. I removed the license claim, but the open-source positioning in keywords and topic tags is unchanged.
  • EcosystemSupport.js keeps "OSS" wording for the sponsorship programme for open-source projects.

…/Windows, eBPF on Linux

Follow-up to #916, which fixed the install pages; this covers the rest of
the current docs.

- No edition names in user-facing text: CI/CD pages no longer demand an
  "Enterprise binary ... not the open-source" one (they install
  keploy.io/install.sh and sign in with KEPLOY_API_KEY); "Keploy
  Enterprise" as a product, "OSS" chips, "Start OSS Quickstart" and the
  Enterprise install reminder are gone. Plan availability is stated with
  the plan names (Free, Teams, Scale, Enterprise); ProductTier chips that
  said "Open Source" now list every plan, and "Team" is "Teams".
- eBPF is the Linux mechanism, not how Keploy works everywhere: macOS and
  Windows intercept in user space. The intro/concept pages, the home page
  meta, the site schema and the llms.txt / llms-full.txt text (what AI
  assistants read) say so, and no longer claim Windows needs WSL2.
- Quickstarts: the local-run sections are classified by what the app
  talks to - native on Linux, macOS (Apple Silicon) and Windows (x86-64)
  when that is HTTP/HTTPS, MySQL or MongoDB (with the macOS launcher and
  Windows cmd.exe caveats where the commands need them), Linux/WSL or
  Docker otherwise.
- Fixed along the way: `keploy enterprise record` (no such command),
  GitHub release tarballs and keploy.io/ent/install.sh offered for
  install, the time-freezing page treating WSL as native, kernel 5.15 in
  llms text (the CLI requires 5.10), broken container names and sudo in
  Docker commands, dead quickstart anchors, and an Apache-2.0 license
  claim about the binary users install.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>
slayerjain added a commit that referenced this pull request Sep 23, 2026
* docs: describe the VS Code extension 3.0.0 as API and DB mocks

The docs still sold the Keploy VS Code extension as a one-click unit
test generator: running-keploy/utg-vscode-extension promised a
"Generate Unit Tests" button, and integrations-vscode said the
extension generates, views and manages AI unit tests. Extension 3.0.0
is a different product. It records the calls a test command makes to
APIs and databases and replays them with those dependencies switched
off, through `keploy mock`. It installs the Keploy CLI, works without
an account, can set up AI coding agents, and writes CI jobs. It no
longer generates unit tests, and no docs page described what it does.

Rewrite the extension page from the extension's own behaviour: what it
is for, requirements (VS Code 1.104+, Apple Silicon only on macOS,
Linux kernel 5.10+ and glibc 2.34+ for the released CLI, Windows x64),
the first-run CLI install, record and replay per platform, optional
sign-in and what it adds, agent skill consent and where files land, CI
setup, settings, the telemetry opt-out and what it does not cover yet,
and the failure messages the panel shows. The page keeps its id, so
the live URL keeps working; the S3 deploy has no working redirects.

Point integrations-vscode at the new page, and stop the unit test
generator pages (introduction, PR agent, FAQ, best practices,
glossary) from sending readers to the extension for unit tests. The
PR Agent is where unit test generation lives now.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: list the VS Code extension page under Integration Testing

The rewritten extension page describes recording and replaying API and
database mocks, but the sidebar still filed it under Unit Testing >
Integration. Its breadcrumb therefore read "Unit Testing > Integration >
VS Code Extension" directly above the note saying the extension no
longer generates unit tests.

Move it next to Mock Your Tests, the keploy mock page the extension
drives, so the sidebar and breadcrumb match what the page describes.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: say which folders the agent skill question actually names

The extension page claimed the "Just this project" button lists the
repository folders it writes to. It does not: the button names only
the folders of agents with no home-folder location (Cursor and GitHub
Copilot), while the install it runs (`keploy skill install --project`)
also writes .claude/skills or .agents/skills for every other agent it
found. With only Claude Code or Codex detected the button carries no
folder at all.

A consent prompt must not be described as disclosing more than it
does. State what the question names, what each answer writes, and
point at the table that lists every repository folder.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: point Mock Your Tests readers at the VS Code extension guide

Every docs link inside the VS Code extension opens Mock Your Tests: the
Keploy: Mocking Docs command, the "What to check" button when a
recording captured nothing, and the fallback of every other docs
button. That page never mentioned the extension, so a user sent there
from a failing panel found nothing about the panel or its messages.

Add one line near the top that links the extension guide and its
troubleshooting table.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: stop telling AI crawlers the VS Code extension generates tests

llms-full.txt, which this repo builds for AI search engines, still said
unit test generation is "available via VS Code extension, JetBrains
plugins, CLI, and GitHub PR Agent", and listed the extension as "inline
test generation and execution". Extension 3.0.0 records and replays API
and database mocks and generates no tests. There is no Keploy JetBrains
plugin on the JetBrains Marketplace, and neither Keploy CLI has a unit
test generation command.

Describe the extension as it is, link its guide, and name the PR Agent
as the way to generate unit tests. content/llms-root.txt:58 carries the
same claim but is left for a follow-up because it conflicts with the
open #918.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: correct the signed-in registry note and the empty-recording fix

Two statements on the VS Code extension page did not match the code:

- "Depending on your plan" the CLI keeps mock sets in the Mock
  Registry. The enterprise CLI makes every signed-in, non --local
  `keploy mock` run registry-first with no plan check, and the
  api-server upload and download routes check the role and app, not
  the plan. What the page left out is that an upload or download
  failure falls back to the set on disk, and that signed-in replays
  are reported to the account as usage while --local runs are not.
- "That run captured nothing" gave no macOS cause. On macOS the panel
  names npm, npx, yarn or pnpm when one of them started the tests,
  because macOS strips Keploy's instrumentation across that launcher.
  The panel prefills `npm test`, so this is the first failure a Mac
  Node user sees. Say what it means and what to run instead.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: say what a signed-in recording does to git and CI

The VS Code extension page said an ignored recording stays on your
machine, and that committing keploy/ lets teammates and CI replay it.
For a signed-in user neither is true. The extension drops --local only
when you are signed in, and then the enterprise CLI uploads the whole
mocks.yaml, credentials included, to the Mock Registry whatever
.gitignore says. After that upload, or after a signed-in download, it
appends /*/mocks.yaml to keploy/.gitignore. That line hides every set
git does not already track, so the CI job the extension writes, which
checks for keploy/<set>/mocks.yaml and replays with --local, fails for
lack of a recording.

Scope the local-only statements to runs without an account. Say what a
signed-in run uploads and adds to keploy/.gitignore, and that a tracked
recording stays tracked. Give git add -f as the way to get such a set
into CI, and mention the keploy.yml that the first run writes.

Reproduced with a unit test against enterprise main's
mockRegistry.upload: with keploy/ in the root .gitignore, the upload
carried the credential line and keploy/.gitignore gained
/*/mocks.yaml. A scratch repository then showed that git add keploy/
skipped the new set and kept staging the tracked one.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: keep the VS Code page true across pending extension fixes

Several statements on the page describe extension behaviour that
changes before 3.0.0 ships:
- which folders the agent question and its "Just this project" label
  name, and that the fallback rules writer writes without a question
- that the telemetry opt-out does not reach the CLI
- the list of headlines a failed replay can show

Keep only what holds before and after those changes. The page now
says where each agent answer writes, which files the fallback writes,
and how to turn off the CLI's own telemetry (disableTele in keploy.yml
or KEPLOY_DISABLETELE). The CLI's sign-in events ignore both. The
advice for runs that Keploy itself stopped moves to the "Keploy
stopped that run." notification, which stays.

The empty-recording row also names the macOS launcher trap. A runner
started through npm, npx, yarn or pnpm, or through its own env-node
shebang, loses Keploy's instrumentation, and node
node_modules/.bin/jest keeps it.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: give the real size of the Keploy CLI download

The page said the CLI is a single file of a few hundred MB. The
released 3.8.44 builds are 160-191 MB: Linux x86-64 190.7 MB, Linux
arm64 177.5 MB, macOS arm64 159.9 MB, and Windows x64 168.8 MB, going
by the content-length of each download. Say about 200 MB.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: drop the CLI method from the unit test FAQ

FAQ answers 10 and 11 offered a "CLI Tool" way to generate unit tests
and said it needs an API key. Neither the open-source nor the
enterprise Keploy CLI has a unit test generation command (the
enterprise test-gen command generates API tests), and llms-full-root.txt
on this branch already says unit tests come from the PR Agent. Point
both answers at the PR Agent.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* docs: say which telemetry opt-out reaches the Keploy agent

The VS Code page told readers that KEPLOY_DISABLETELE=true turns off
the Keploy CLI's usage reporting. On native Linux that is only half
true. Unless the CLI runs as root, it starts its agent with sudo, and
sudo's env_reset drops the variable, so the agent still reports usage.
That is the default setup for the extension on Linux.

disableTele: true in keploy.yml does reach that agent, because sudo
keeps the working directory and the agent reads the same keploy.yml.
For a Docker command the agent runs in its own container. It gets a
fixed environment and no keploy.yml, so neither setting reaches it.

Say which setting covers what, and keep the note that sign-in events
follow neither.

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

---------

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant