registry  /  @neatlogs/claude-code  /  0.1.7

@neatlogs/claude-code@0.1.7

Neatlogs observability for Claude Code sessions — automatic tracing of prompts, tool calls, thinking, and LLM responses via hooks

AI Security Review

scanned 2h ago · by lpm-firewall-ai

LPM treats this as warn-only first-party agent extension lifecycle risk. Explicit setup installs this package's command as Claude Code hooks. Runtime hook handling captures Claude session content and uploads telemetry only when configured with an API key.

Static reason
No blocking static signals were detected.
Trigger
User runs `neatlogs-claude-code setup`, then Claude Code emits configured hook events.
Impact
Sensitive Claude Code session content can be sent to the configured Neatlogs endpoint as the package's stated observability function.
Mechanism
Claude hook registration plus telemetry export of session prompts, outputs, thinking, tool data, and loaded instructions.
Rationale
Source inspection confirms an explicit-user-command Claude Code extension that exports sensitive session telemetry. It is not concretely malicious, but warrants a warning for agent extension lifecycle and data-export risk.
Evidence
package.jsonREADME.mdhooks/hooks.jsondist/cli.jsdist/index.jsdist/setup-2YTCJSH6.jsdist/chunk-WTSEVKOY.js~/.config/neatlogs/config.json~/.claude/settings.json.claude/settings.json/tmp/neatlogs-hook-debug.log
Network endpoints1
ingest.neatlogs.com

Decision evidence

public snapshot
AI called this Suspicious at 90.0% confidence as Dangerous Capability with low false-positive risk.
Evidence for warning
  • `dist/setup-2YTCJSH6.js` explicit `setup` writes hooks to `~/.claude/settings.json` or project `.claude/settings.json`.
  • `hooks/hooks.json` invokes `dist/cli.js hook` for broad Claude lifecycle events.
  • `dist/cli.js` reads hook JSON, captures prompts/tool activity, and flushes telemetry when an API key exists.
  • `dist/index.js` sends protobuf spans with `x-api-key` to the configured endpoint; default is `https://ingest.neatlogs.com`.
  • `dist/index.js` reads instruction files and transcript-related hook paths, retaining prompt, output, thinking, and tool-call fields.
Evidence against
  • `package.json` has no preinstall, install, or postinstall lifecycle hook.
  • Hook registration occurs only through the user-invoked `neatlogs-claude-code setup` command.
  • No child-process execution, shell payload, eval/vm use, native loading, or remote code loading was found.
  • The only network literal found is the package-aligned Neatlogs ingest endpoint.
Behavioral surface
Source
CryptoEnvironmentVarsFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 5 file(s), 153 KB of source, external domains: ingest.neatlogs.com

Source & flagged code

5 flagged · loading source
dist/setup-2YTCJSH6.jsView file
Published source reference
Medium
Ai Review Evidence

`dist/setup-2YTCJSH6.js` explicit `setup` writes hooks to `~/.claude/settings.json` or project `.claude/settings.json`.

dist/setup-2YTCJSH6.jsView on unpkg
hooks/hooks.jsonView file
Published source reference
Medium
Suspicious Lifecycle Evidence

`hooks/hooks.json` invokes `dist/cli.js hook` for broad Claude lifecycle events.

hooks/hooks.jsonView on unpkg
dist/cli.jsView file
Published source reference
Medium
Ai Review Evidence

`dist/cli.js` reads hook JSON, captures prompts/tool activity, and flushes telemetry when an API key exists.

dist/cli.jsView on unpkg
dist/index.jsView file
Published source reference
Medium
Ai Review Evidence

`dist/index.js` sends protobuf spans with `x-api-key` to the configured endpoint; default is `https://ingest.neatlogs.com`.

dist/index.jsView on unpkg
Published source reference
Medium
Ai Review Evidence

`dist/index.js` reads instruction files and transcript-related hook paths, retaining prompt, output, thinking, and tool-call fields.

dist/index.jsView on unpkg

Findings

7 Medium3 Low
MediumNetwork
MediumEnvironment Vars
MediumAi Review Evidencedist/setup-2YTCJSH6.js
MediumSuspicious Lifecycle Evidencehooks/hooks.json
MediumAi Review Evidencedist/cli.js
MediumAi Review Evidencedist/index.js
MediumAi Review Evidencedist/index.js
LowScripts Present
LowFilesystem
LowUrl Strings