# Vibe-log-cli reads your Claude Code transcripts and hands the analysis back to Claude Code

> An npm-published TypeScript CLI that generates standup summaries and productivity reports from local Claude Code and Codex sessions over ACP, plus a status line that intercepts your prompts and answers with a coach personality. The binary is called vibe-log, the package is vibe-log-cli, and the install command is one npx line.

**vibe-log/vibe-log-cli** — A CLI tool for logging and analyzing Claude Code and Cursor ai-driven coding session.

- Repository: https://github.com/vibe-log/vibe-log-cli
- Website: https://vibe-log.dev
- Stars: 339 · Forks: 21
- Language: TypeScript
- License: MIT
- Published: 2026-09-15 · Updated: 2026-09-15 · Language: en
- Canonical page: https://hysenlabs.com/projects/vibe-log-vibe-log-cli

## The install is one npx line and the binary is not the package name

The whole getting-started path is a single command with no global install and no configuration file.

```bash
npx vibe-log-cli@latest
```

The package on npm is called vibe-log-cli, but the executable it installs is a different name. The manifest maps a bin entry of vibe-log pointing at ./bin/vibe-log.js, and the package main field resolves to dist/index.js. So the command you type through npx and the command name in your shell are two different strings, which matters when you write a script or a status line entry that invokes it.

The version in the manifest is 0.8.14, the package is marked private with a repository field pointing at the GitHub project, and the licence is MIT. The description field reads Track your building journey with Vibelog, and the author is listed as Vibelog.

Everything is TypeScript, built with tsup, type-checked with tsc --noEmit, linted by eslint over src, and formatted by prettier. There is a .prettierrc and an .eslintrc.js at the top level, plus a tsconfig.json and a vitest.config.ts.

Nothing here needs a database, a config file or an account to produce a local report.

## Reports are generated over ACP against your own coding tool

The local report path is described in a flow that runs entirely on your machine, and the diagram reduces to a short chain: sessions, then a selection step, then extraction and preparation, then a local ACP analysis launch, then per-session analysis, then gathering, then an HTML report written to the current folder.

The selection step is the interactive part. You pick a timeframe and you pick projects, and only then does anything get analysed. That ordering is what keeps a large history from being processed by default.

ACP is the transport, and the emphasis throughout is that the analysis runs using your local AI coding tool rather than a hosted model the project operates. The standup feature is described the same way: a personalised summary of recent activity, right from the terminal, running locally.

What comes out of the standup feature is a concise summary of three things: what you worked on, key accomplishments, and next steps. The report feature is broader and its example output is published separately on the project site.

Two different outputs, one input source. If your question is what to say in a standup, the standup feature is the smaller tool; if it is how a week went across projects, that is the report.

## The status line intercepts your prompt on every submission

This is the part with side effects, and it is worth understanding before you enable it.

The mechanism is a UserPromptSubmit hook inside Claude Code. You type a prompt and press Enter, the hook fires, and the CLI receives the prompt. The CLI then checks whether this is a new chat. If it is not, the previous conversation is included as context; if it is, the prompt is analysed standalone. Either way the analysis runs through the local Claude Code SDK, a coach personality is applied, and the result is displayed in the Claude Code status line.

The personality is a choice you make at setup, and the three shipped options have very different registers. Gordon is described as sharp, pushy and business-focused, creating urgency with a line about shipping by Friday or being fired. Vibe-Log is a supportive but pushy senior dev. Custom is user-defined with a strategic focus.

Installation backs up your current status line configuration automatically, and uninstalling restores the original instantly. The claim is zero risk to your Claude Code configuration, and the mechanism behind it is that backup.

Token metrics display is a separate optional step, wired through ccusage rather than implemented here.

## Sessions past 10,000 messages are truncated, not skipped

One block of the documentation covers time calculation, and it reads like a bug changelog from a real user rather than a feature list.

Massive sessions with 10,000 or more messages no longer cause performance issues. Large sessions are intelligently truncated while preserving time data. Timestamps are parsed and validated more consistently. And sessions with missing or invalid timestamps had fixed edge cases.

Those four items together describe a duration calculation that was breaking on long sessions, and the fix preserves the time component while dropping message content. That distinction is the point: a truncated session still reports how long it ran.

This block sits under an update heading for the 0.7.x series, alongside the standup feature and an onboarding pass covering a better first-run flow, helpful prompts through configuration, and improved error messages. The README lists the improvements rather than describing a mechanism, so if you are trying to work out how duration is computed from the transcripts, that documentation is not here.

What it does establish is that session size is a known failure mode, which is worth knowing before you point the tool at a history with months of transcripts in it.

## Cloud sync strips code before anything is uploaded

Cloud sync is optional and sits after the local features, which reflects where the boundary is drawn.

The stated flow has a local stage and a cloud stage. Locally, you select sessions and a privacy layer removes code and secrets while keeping only patterns. What crosses to the dashboard is that pattern data.

The features listed for the synced path are a free tier of up to 1,000 session analyses per month, tracking your prompt quality and productivity trends over time, configurable hooks for automatic background sync, a web dashboard, and the privacy behaviour itself. The phrase privacy first is used for the removal step, not for the transport, and there is no encryption or authentication detail in what is documented.

Two consequences follow. The local-only claim in the report feature, that no data leaves your machine, holds as long as you leave cloud sync off. And turning it on changes what the tool is, from something that reads your transcripts into something that reports on your prompting patterns to a service.

The trend tracking is the one feature here with no local equivalent. Nothing in the local path accumulates history across weeks.

## Build verification checks that dist and its checksums exist

The npm scripts show what this project treats as release-critical, and the answer is build artifacts rather than tests.

The verify script has two halves. verify:build tests that dist/index.js and dist/index.js.map both exist and prints a confirmation. verify:checksums changes into dist and runs sha256sum -c checksums.sha256 when that file is present, and prints a warning when it is not.

The checksums are generated during the build. postbuild runs copy-templates and then generate-checksums, and the clean target is a rimraf of dist. prepublishOnly runs the build, which means the artifacts checked by verify exist by the time anything is published.

That is a supply chain habit rather than a testing one. A package that verifies the artifacts it is about to ship, and checksums those artifacts, is defending against a different failure than a failing test.

The test tooling is extensive by comparison: vitest for the suite, a coverage variant, coverage-badges, two template-specific test scripts including a critical subset, a shell script for testing the npm package, and separate test/ and tests/ directories. check-all chains lint, type-check, test and security-check, where security-check is npm audit combined with npm outdated.

There is also validate-deps as npm ls --depth=0, and coverage/ plus test-reports/ directories in the tree, which suggests coverage output is committed or at least generated in place.

## The repository describes Codex, the metadata describes Cursor

One inconsistency is worth flagging before you pick a tool to run this against.

The repository description field in the metadata says the tool is for logging and analyzing Claude Code and Cursor ai-driven coding sessions. The README says Claude Code and Codex throughout, in the summary, in the report description, in the standup description and in the flow diagram. Codex appears consistently in the documentation and never in the metadata line; Cursor appears in the metadata line and nowhere in the documentation.

One of those is out of date. For a tool whose entire input is session transcripts, which editors it can read is the first compatibility question, and the two sources give different answers.

Everything else in the tree is straightforward for a published npm CLI: bin/ holding the launcher, src/ for the TypeScript source, scripts/ for build helpers including copy-templates.js and generate-checksums.js, docs/, a CLAUDE.md, CONTRIBUTING.md, SECURITY.md and CHANGELOG.md.

Two files in the top-level listing are unusual enough to name. NPX_CACHE_RESEARCH.md and NPX_NON_BLOCKING_AUTO_UPDATE_PLAN.md, alongside TESTING_GUIDE_OTHER_MACHINE.md, are planning and research notes kept in the repository rather than in an issue tracker.

The release record is dense at the tail: v0.8.12, v0.8.13 and v0.8.14 were all published on the same day, 2026-04-19, and the last push is dated the same day.

## Conclusion

Adopt Vibe-log-cli if you already work in Claude Code or Codex and want standup summaries, productivity reports and a local prompt coach without sending your transcripts anywhere. The report path runs entirely on your machine through your own AI coding setup, and the optional cloud sync strips code and secrets first. Do not adopt it expecting a managed service, a leaderboard that ranks you against other developers, or a UI, because the deliverable is a terminal command and an HTML file written to the current folder. Before you rely on it, check three things: that you understand what the status line does on every prompt you submit, since it backs up your existing configuration but still intercepts your input, that the local ACP path works with the coding tool you actually use, and that you have read the privacy layer's behaviour rather than its marketing, since all code is removed before upload and only patterns are synced, with a free tier of 1,000 session analyses per month.

## FAQ

### How do I run Vibe-log-cli for the first time?

Run npx vibe-log-cli@latest. There is no global install and no configuration file, and the package installs an executable named vibe-log. For the report feature you then choose a timeframe and a set of projects, and the HTML report is written to your current folder.

### Does Vibe-log-cli send my Claude Code sessions to a server?

Not by default. The report and standup features run locally through your own AI coding tool over ACP. Cloud sync is optional and separately configured, and when it is on a privacy layer removes code and secrets before upload, keeping only patterns, with a free tier of up to 1,000 session analyses per month.

### What does the Vibe-log-cli Claude Code status line actually do?

It installs a UserPromptSubmit hook that intercepts each prompt, passes it with session context to local analysis through the Claude Code SDK, applies a coach personality, and shows the feedback in the status line. Installation backs up your existing status line configuration, and uninstalling restores it.

### What are the available coach personalities in Vibe-log-cli?

Three: Gordon, described as sharp, pushy and business-focused with an urgency framing, Vibe-Log, a supportive but pushy senior developer, and Custom, which is user-defined with a strategic focus. You pick one during setup from the Configure prompt coach status line option.

### What is vibe coding and how do I use it with Vibe-log-cli?

This repository does not define the term vibe coding. What it provides is a CLI that analyzes Claude Code and Codex sessions, runs the analysis locally over ACP, and produces standup summaries, HTML productivity reports, and a prompt coach status line inside Claude Code.

## Sources

- [License: MIT](https://github.com/vibe-log/vibe-log-cli/blob/main/LICENSE)
- [Project website](https://vibe-log.dev)
- [README](https://github.com/vibe-log/vibe-log-cli/blob/main/README.md)
- [Releases](https://github.com/vibe-log/vibe-log-cli/releases)
- [vibe-log/vibe-log-cli on GitHub](https://github.com/vibe-log/vibe-log-cli)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/vibe-log-vibe-log-cli
