[{"data":1,"prerenderedAt":1097},["ShallowReactive",2],{"navigation_docs":3,"-cli-telemetry":529,"-cli-telemetry-surround":1092},[4,30,80,128,308,440,499],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"CLI","\u002Fcli","3.cli",[85,88,93,98,103,108,113,118,123],{"title":36,"path":86,"stem":87,"icon":44},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":89,"path":90,"stem":91,"icon":92},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":94,"path":95,"stem":96,"icon":97},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":99,"path":100,"stem":101,"icon":102},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":104,"path":105,"stem":106,"icon":107},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":109,"path":110,"stem":111,"icon":112},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":114,"path":115,"stem":116,"icon":117},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":119,"path":120,"stem":121,"icon":122},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":124,"path":125,"stem":126,"icon":127},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":129,"path":130,"stem":131,"children":132,"page":29},"Integrate","\u002Fintegrate","4.integrate",[133,137,220],{"title":36,"path":134,"stem":135,"icon":136},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[142,145,175,200],{"title":36,"path":143,"stem":144,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":146,"path":147,"stem":148,"children":149,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[150,155,160,165,170],{"title":151,"path":152,"stem":153,"icon":154},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":156,"path":157,"stem":158,"icon":159},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":161,"path":162,"stem":163,"icon":164},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":166,"path":167,"stem":168,"icon":169},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":171,"path":172,"stem":173,"icon":174},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":176,"path":177,"stem":178,"children":179,"page":29},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[180,185,190,195],{"title":181,"path":182,"stem":183,"icon":184},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":186,"path":187,"stem":188,"icon":189},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":191,"path":192,"stem":193,"icon":194},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":196,"path":197,"stem":198,"icon":199},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":201,"path":202,"stem":203,"children":204,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[205,210,215],{"title":206,"path":207,"stem":208,"icon":209},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":211,"path":212,"stem":213,"icon":214},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":216,"path":217,"stem":218,"icon":219},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":221,"path":222,"stem":223,"children":224,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[225,229,234,239,244,249,254,259,264,269,274,279,284,289,293,298,303],{"title":36,"path":226,"stem":227,"icon":228},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":230,"path":231,"stem":232,"icon":233},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":235,"path":236,"stem":237,"icon":238},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":240,"path":241,"stem":242,"icon":243},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":245,"path":246,"stem":247,"icon":248},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":250,"path":251,"stem":252,"icon":253},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":255,"path":256,"stem":257,"icon":258},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":260,"path":261,"stem":262,"icon":263},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":265,"path":266,"stem":267,"icon":268},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":270,"path":271,"stem":272,"icon":273},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":275,"path":276,"stem":277,"icon":278},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":280,"path":281,"stem":282,"icon":283},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":285,"path":286,"stem":287,"icon":288},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":290,"path":291,"stem":292,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":294,"path":295,"stem":296,"icon":297},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":299,"path":300,"stem":301,"icon":302},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":304,"path":305,"stem":306,"icon":307},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":309,"path":310,"stem":311,"children":312,"page":29},"Use Cases","\u002Fuse-cases","5.use-cases",[313,316,321,350,377,409,430,435],{"title":36,"path":314,"stem":315,"icon":102},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":317,"path":318,"stem":319,"icon":320},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":322,"icon":323,"path":324,"stem":325,"children":326,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[327,330,335,340,345],{"title":36,"path":328,"stem":329,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":331,"path":332,"stem":333,"icon":334},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":336,"path":337,"stem":338,"icon":339},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":341,"path":342,"stem":343,"icon":344},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":346,"path":347,"stem":348,"icon":349},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":351,"icon":352,"path":353,"stem":354,"children":355,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[356,359,364,369,373],{"title":36,"path":357,"stem":358,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":360,"path":361,"stem":362,"icon":363},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":365,"path":366,"stem":367,"icon":368},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":370,"path":371,"stem":372,"icon":320},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":374,"path":375,"stem":376,"icon":107},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":378,"icon":379,"path":380,"stem":381,"children":382,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[383,386,391,396,401,405],{"title":36,"path":384,"stem":385,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":387,"path":388,"stem":389,"icon":390},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":392,"path":393,"stem":394,"icon":395},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":397,"path":398,"stem":399,"icon":400},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":402,"path":403,"stem":404,"icon":379},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":406,"path":407,"stem":408,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":346,"icon":107,"path":410,"stem":411,"children":412,"page":29},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[413,416,421,426],{"title":36,"path":414,"stem":415,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":417,"path":418,"stem":419,"icon":420},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":422,"path":423,"stem":424,"icon":425},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":427,"path":428,"stem":429,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":431,"path":432,"stem":433,"icon":434},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":436,"path":437,"stem":438,"icon":439},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":441,"path":442,"stem":443,"children":444,"page":29},"Extend","\u002Fextend","6.extend",[445,449,454,459,463,468,472,476,480,484,489,494],{"title":36,"path":446,"stem":447,"icon":448},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":450,"path":451,"stem":452,"icon":453},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":455,"path":456,"stem":457,"icon":458},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":460,"path":461,"stem":462,"icon":453},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":464,"path":465,"stem":466,"icon":467},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":406,"path":469,"stem":470,"icon":471},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":473,"path":474,"stem":475,"icon":448},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":477,"path":478,"stem":479,"icon":434},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":481,"path":482,"stem":483,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":485,"path":486,"stem":487,"icon":488},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":490,"path":491,"stem":492,"icon":493},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":495,"path":496,"stem":497,"icon":498},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":427,"path":500,"stem":501,"children":502,"page":29},"\u002Freference","7.reference",[503,508,511,516,520,525],{"title":504,"path":505,"stem":506,"icon":507},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":374,"path":509,"stem":510,"icon":107},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":512,"path":513,"stem":514,"icon":515},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":517,"path":518,"stem":519,"icon":379},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":521,"path":522,"stem":523,"icon":524},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":526,"path":527,"stem":528,"icon":434},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"id":530,"title":531,"body":532,"description":1081,"extension":1082,"links":1083,"meta":1088,"navigation":1089,"path":120,"seo":1090,"stem":121,"__hash__":1091},"docs\u002F3.cli\u002F7.telemetry.md","CLI telemetry",{"type":533,"value":534,"toc":1070},"minimark",[535,544,557,566,572,637,644,649,663,766,773,786,803,825,829,855,858,867,871,874,888,892,896,899,979,991,995,998,1017,1020,1024,1066],[536,537,538,539,543],"p",{},"The evlog CLI records one anonymous wide event per run, so we know which commands people use and which ones error. It is the same ",[540,541,542],"a",{"href":414},"telemetry toolkit"," evlog ships for your own CLIs, pointed at itself.",[545,546,548,549,553,554,556],"callout",{"color":547,"icon":13},"neutral","This page is about the CLI's own telemetry. If you are instrumenting a CLI ",[550,551,552],"strong",{},"you"," are building, you want ",[540,555,346],{"href":414}," instead.",[558,559,561,562,565],"h2",{"id":560},"what-init-records","What ",[563,564,89],"code",{}," records",[536,567,568,571],{},[563,569,570],{},"evlog init"," asks more questions than the other commands, so it records the answers — which lets the flow lead with the options people actually pick and drop the ones nobody does.",[573,574,575,588],"table",{},[576,577,578],"thead",{},[579,580,581,585],"tr",{},[582,583,584],"th",{},"Recorded",[582,586,587],{},"Example",[589,590,591,609,619,627],"tbody",{},[579,592,593,597],{},[594,595,596],"td",{},"Framework, development sink, sampling preset",[594,598,599,602,603,602,606],{},[563,600,601],{},"nuxt",", ",[563,604,605],{},"fs",[563,607,608],{},"balanced",[579,610,611,614],{},[594,612,613],{},"One flag per destination, extra and enricher chosen",[594,615,616],{},[563,617,618],{},"initProdAxiom: true",[579,620,621,624],{},[594,622,623],{},"Counts",[594,625,626],{},"files written, manual steps left, doctor failures",[579,628,629,632],{},[594,630,631],{},"Whether an offer had anything behind it",[594,633,634],{},[563,635,636],{},"initHadRepeatedErrors: true",[536,638,639,640,643],{},"Every string is an id from the CLI's own catalog and is checked against an allowlist before it is sent — an undeclared value is dropped rather than transmitted. ",[550,641,642],{},"Your service name is never recorded",", nor package names, paths, or anything read out of your source. The last row says only whether the scan found something, never what it found.",[558,645,561,647,565],{"id":646},"what-map-records",[563,648,94],{},[536,650,651,654,655,658,659,662],{},[563,652,653],{},"evlog map"," records the shape of a scan: the score and its grade, how many entry points there were and how many are instrumented, partial, dark or exempt, which framework was detected, and whether a ",[563,656,657],{},"--min-score"," or ",[563,660,661],{},"--baseline"," gate failed the run.",[573,664,665,673],{},[576,666,667],{},[579,668,669,671],{},[582,670,584],{},[582,672,587],{},[589,674,675,688,701,714,727,740,753],{},[579,676,677,680],{},[594,678,679],{},"Score and grade",[594,681,682,602,685],{},[563,683,684],{},"mapScore: 72",[563,686,687],{},"mapGrade: good",[579,689,690,693],{},[594,691,692],{},"Entry point counts by coverage",[594,694,695,602,698],{},[563,696,697],{},"mapEntryPoints: 34",[563,699,700],{},"mapDark: 9",[579,702,703,706],{},[594,704,705],{},"Per kind: entry points and dark entry points",[594,707,708,602,711],{},[563,709,710],{},"mapKindPage: 12",[563,712,713],{},"mapDarkPage: 3",[579,715,716,719],{},[594,717,718],{},"Per sensitivity: money \u002F auth \u002F PII entry points, and dark",[594,720,721,602,724],{},[563,722,723],{},"mapSensitiveMoney: 2",[563,725,726],{},"mapDarkMoney: 1",[579,728,729,732],{},[594,730,731],{},"Per rule: how many entry points failed it, how many waived it",[594,733,734,602,737],{},[563,735,736],{},"mapFailWideEvent: 6",[563,738,739],{},"mapSuppressedWideEvent: 2",[579,741,742,745],{},[594,743,744],{},"Which gate ran, and whether it failed",[594,746,747,602,750],{},[563,748,749],{},"mapGate: baseline",[563,751,752],{},"mapGateFailed: true",[579,754,755,758],{},[594,756,757],{},"Where this run sits in the local sequence, and how the score moved",[594,759,760,602,763],{},[563,761,762],{},"mapRunOrdinal: 7",[563,764,765],{},"mapScoreDelta: +4",[536,767,768,769,772],{},"Rule ids are the CLI's own closed set and are already public. Everything read out of your source is a count: ",[550,770,771],{},"no route path, no file name, no project name, no snippet",".",[536,774,775,778,779,782,783,785],{},[563,776,777],{},"mapRunOrdinal"," and ",[563,780,781],{},"mapScoreDelta"," answer the question the snapshot cannot: whether running ",[563,784,653],{}," repeatedly actually makes scores rise. The ordinal is a monotonic counter stored in the CLI's own data directory, and the delta is the signed score change against the previous run on that machine. Absent on the first run.",[536,787,788,789,792,793,795,796,798,799,802],{},"The counter is ",[550,790,791],{},"per machine, not per project",". It is keyed by nothing that identifies the project: no git remote hash, no path. Someone running ",[563,794,94],{}," across three repos produces one interleaved sequence, which is noisier but the only way to get a per-project trajectory without identifying the project. ",[563,797,781],{}," is therefore \"since the last map run on this machine\", and is only meaningful in aggregate. Both are numbers, so they need no allowlist. The counter resets when ",[563,800,801],{},"evlog telemetry disable"," purges data, is never written while telemetry is off, and is omitted in ephemeral CI alongside the machine id. There, the ordinal is meaningless and would be a permanent 1.",[536,804,805,806,809,810,813,814,817,818,817,821,824],{},"Kinds are the CLI's own closed set too, and a kind absent from the project is omitted rather than sent as zero, the same convention as a flag left at its default. The dark count for a kind that is present but fully covered is ",[563,807,808],{},"0",", so ",[563,811,812],{},"mapKindPage: 12, mapDarkPage: 3"," always reads as \"12 pages, 3 dark\", never as a missing number. Sensitivity is a heuristic classification (imports and path terms, see the report's ",[563,815,816],{},"$"," \u002F ",[563,819,820],{},"A",[563,822,823],{},"o"," markers), so the per-sensitivity counts are an estimate of what the classifier found, not ground truth.",[558,826,828],{"id":827},"see-what-is-collected","See what is collected",[830,831,837],"pre",{"className":832,"code":833,"filename":834,"language":835,"meta":836,"style":836},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","evlog telemetry status\n","Terminal","bash","",[563,838,839],{"__ignoreMap":836},[840,841,844,848,852],"span",{"class":842,"line":843},"line",1,[840,845,847],{"class":846},"sBMFI","evlog",[840,849,851],{"class":850},"sfazB"," telemetry",[840,853,854],{"class":850}," status\n",[536,856,857],{},"The command prints whether telemetry is on, where its data directory is, and the full disclosure table — every field, its type, and what it is for. The disclosure is generated from the code that sends the event, so it cannot drift from what actually goes over the wire.",[830,859,865],{"className":860,"code":862,"filename":863,"language":864,"meta":836},[861],"language-text","Telemetry: enabled (preference: enabled)\nData directory: ~\u002F.config\u002Fevlog-cli\u002Ftelemetry\n","Output","text",[563,866,862],{"__ignoreMap":836},[558,868,870],{"id":869},"what-is-in-an-event","What is in an event",[536,872,873],{},"One event per run, with the command name, how long it took, whether it succeeded, and the error code when it did not. Alongside that: the Node version, the OS and architecture, whether the run was in CI and on which provider, whether stdout is a TTY, and whether an AI coding agent was driving it.",[536,875,876,877,880,881,883,884,887],{},"Flags are recorded as the ones you actually passed. Booleans and numbers keep their value; a string value is recorded as ",[563,878,879],{},"\u003Cset>"," rather than by content, unless the flag is explicitly allowlisted. Positional arguments are never recorded at all, and a flag left at its default is not recorded either — ",[563,882,653],{}," on its own sends an empty ",[563,885,886],{},"flags"," object. The machine id is a hash, and it is omitted entirely in ephemeral CI.",[545,889,891],{"color":547,"icon":890},"i-lucide-lock","No file paths, no source code, no project names, no route paths, no argument values.",[558,893,895],{"id":894},"turn-it-off","Turn it off",[536,897,898],{},"Any one of these is enough:",[830,900,902],{"className":832,"code":901,"filename":834,"language":835,"meta":836,"style":836},"# persisted preference\nevlog telemetry disable\n\n# per-run, or in a shell profile\nEVLOG_TELEMETRY=0 evlog map\n\n# the cross-tool standard, respected everywhere\nexport DO_NOT_TRACK=1\n",[563,903,904,910,920,927,933,952,957,963],{"__ignoreMap":836},[840,905,906],{"class":842,"line":843},[840,907,909],{"class":908},"sHwdD","# persisted preference\n",[840,911,913,915,917],{"class":842,"line":912},2,[840,914,847],{"class":846},[840,916,851],{"class":850},[840,918,919],{"class":850}," disable\n",[840,921,923],{"class":842,"line":922},3,[840,924,926],{"emptyLinePlaceholder":925},true,"\n",[840,928,930],{"class":842,"line":929},4,[840,931,932],{"class":908},"# per-run, or in a shell profile\n",[840,934,936,940,944,946,949],{"class":842,"line":935},5,[840,937,939],{"class":938},"sTEyZ","EVLOG_TELEMETRY",[840,941,943],{"class":942},"sMK4o","=",[840,945,808],{"class":850},[840,947,948],{"class":846}," evlog",[840,950,951],{"class":850}," map\n",[840,953,955],{"class":842,"line":954},6,[840,956,926],{"emptyLinePlaceholder":925},[840,958,960],{"class":842,"line":959},7,[840,961,962],{"class":908},"# the cross-tool standard, respected everywhere\n",[840,964,966,970,973,975],{"class":842,"line":965},8,[840,967,969],{"class":968},"spNyl","export",[840,971,972],{"class":938}," DO_NOT_TRACK",[840,974,943],{"class":942},[840,976,978],{"class":977},"sbssI","1\n",[536,980,981,983,984,986,987,990],{},[563,982,801],{}," also purges anything that had been queued and not yet delivered, and resets the ",[563,985,94],{}," run counter. ",[563,988,989],{},"evlog telemetry enable"," turns it back on.",[558,992,994],{"id":993},"inspect-before-trusting","Inspect before trusting",[536,996,997],{},"To see exactly what a run would send, without sending it:",[830,999,1001],{"className":832,"code":1000,"filename":834,"language":835,"meta":836,"style":836},"EVLOG_TELEMETRY_DEBUG=1 evlog map\n",[563,1002,1003],{"__ignoreMap":836},[840,1004,1005,1008,1010,1013,1015],{"class":842,"line":843},[840,1006,1007],{"class":938},"EVLOG_TELEMETRY_DEBUG",[840,1009,943],{"class":942},[840,1011,1012],{"class":850},"1",[840,1014,948],{"class":846},[840,1016,951],{"class":850},[536,1018,1019],{},"The would-be payload is printed to stderr.",[558,1021,1023],{"id":1022},"commands","Commands",[573,1025,1026,1036],{},[576,1027,1028],{},[579,1029,1030,1033],{},[582,1031,1032],{},"Command",[582,1034,1035],{},"What it does",[589,1037,1038,1048,1057],{},[579,1039,1040,1045],{},[594,1041,1042],{},[563,1043,1044],{},"evlog telemetry status",[594,1046,1047],{},"Current state, data directory, and the full disclosure",[579,1049,1050,1054],{},[594,1051,1052],{},[563,1053,989],{},[594,1055,1056],{},"Enable anonymous usage telemetry",[579,1058,1059,1063],{},[594,1060,1061],{},[563,1062,801],{},[594,1064,1065],{},"Disable it and purge undelivered data",[1067,1068,1069],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":836,"searchDepth":912,"depth":912,"links":1071},[1072,1074,1076,1077,1078,1079,1080],{"id":560,"depth":912,"text":1073},"What init records",{"id":646,"depth":912,"text":1075},"What map records",{"id":827,"depth":912,"text":828},{"id":869,"depth":912,"text":870},{"id":894,"depth":912,"text":895},{"id":993,"depth":912,"text":994},{"id":1022,"depth":912,"text":1023},"What the evlog CLI collects about its own usage, how to see it, and the three ways to turn it off — DO_NOT_TRACK, EVLOG_TELEMETRY=0, or evlog telemetry disable.","md",[1084],{"label":1085,"icon":1086,"to":414,"color":547,"variant":1087},"Telemetry for your own CLI","i-lucide-radio","subtle",{},{"title":119,"icon":122},{"title":531,"description":1081},"xiFvMs3tCMdnV8caMJD_rOaZ_KjGd49AV_9JEblAnOM",[1093,1095],{"title":114,"path":115,"stem":116,"description":1094,"icon":117,"children":-1},"Diagnose an evlog setup — Node version, project resolution, the installed evlog version, the detected framework, and whether local logs are being written.",{"title":124,"path":125,"stem":126,"description":1096,"icon":127,"children":-1},"Teach the AI agents working in your repository how to use evlog — a short block of conventions in AGENTS.md, plus the published agent skills installed through npx skills.",1786484465784]