CLI

evlog doctor

Installation
Diagnose an evlog setup — Node version, project resolution, the installed evlog version, the detected framework, and whether local logs are being written.

evlog doctor answers "is evlog actually wired up here?" — the question you have when you followed the setup guide and nothing is showing up.

Terminal
evlog doctor
Output
pnpm workspace

ENVIRONMENT
│ ✓ node     v24.18.0
│ ✓ project  evlog-playground · pnpm · apps/playground
│ ✓ stack    nuxt

EVLOG
│ ✓ evlog  v2.22.3 (workspace:*)
│ ✓ logs   1 file · .evlog/logs

5 ok · 0 warn · 0 fail

What it checks

CheckPasses whenWarns or fails when
nodeNode 20 or laterOlder than 20 — the CLI will not run reliably (fail)
projectA package.json was resolvedNone found above the working directory
stackA framework was detected and evlog is installedA framework was detected but evlog is not wired to it
evlogevlog resolves from node_modulesDeclared in package.json but not installed, or missing entirely
logsA local sink exists under .evlog/logsNothing has been written yet

In a workspace, the header names the workspace kind and project shows which package was resolved — the fastest way to notice you are diagnosing the repo root instead of your app.

An empty logs sink is not a problem in itself: the directory is created on first write by the fs drain. It is only a signal when you expected local logs and there are none.

Exit code

0 when nothing failed, 1 when any check failed. Warnings do not fail the command — a project that has not written logs yet is not broken.

JSON

Terminal
evlog doctor --json | jq '.checks'

The payload carries the resolved project (cwd, root, packageDir, workspace kind, package name, detected stack), every check with its status, and the summary counts.

Each warning and failure also carries a code from the CLI's own error catalog — cli.EVLOG_NOT_FOUND, cli.EVLOG_DECLARED_NOT_INSTALLED, cli.LOGS_SINK_MISSING, cli.NODE_TOO_OLD, cli.PROJECT_NO_PACKAGE — each with a why and a fix, the same way structured errors work in your app.

Options

FlagWhat it does
--cwd <dir>Diagnose another directory
--jsonMachine-readable output on stdout
--debugPrint the steps the command went through
--noHeaderSkip the branded header

Next

  • Installation — wire evlog into your framework
  • evlog map — once it is installed, see where it is missing