Skip to content

vibe-log/vibe-log-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

439 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

og-image

Open-source CLI for analyzing Claude Code and Codex sessions locally and generating productivity reports

by vibe-log.dev npm version License: MIT Node.js Version

Tests NPM Publish Build Verification Coverage

Security Policy Transparent Build

PRs Welcome X  Follow Star this repo

Website β€’ Report Bug β€’ Request Feature

What is Vibe-Log?

Vibe-log-cli is an open-source command-line tool that analyzes your Claude Code and Codex sessions to extract productivity insights and generate reports. All analyses can run completely locally on your machine using your local AI coding tool through ACP. It also includes a Claude Code statusline that helps you get more from your sessions.

Getting Started fast

Just run:

npx vibe-log-cli@latest

Main features

1. πŸ“‹ Today's standup

New: Be prepared in 2-3 minutes for your daily standup meeting! Screenshot 2025-10-02 163102

2. πŸ“Š Claude Code and Codex Productivity Report Generation (Local)

Generate comprehensive productivity reports from Claude Code and Codex sessions using your local AI coding setup. No data leaves your machine. See example of locally generated report here: https://vibe-log.dev/example-daily-report image

3. 🧠 Claude Code Co-pilot Statusline

Strategic product advisor in Claude Code. Your prompts are analyzed locally (via CC) to provide actionable guidance that pushes you to ship faster. Feedback appears in your Claude Code status line with concrete next steps. image

Updates

What's New in v0.7.x

Today's Standup ✨

Get a personalized standup summary of your recent Claude Code and Codex activity right from your terminal. Runs 100% locally using your own AI coding setup. The standup feature analyzes your recent sessions and generates a concise summary of:

  • What you worked on
  • Key accomplishments
  • Next steps

Improved Onboarding Experience πŸš€

Getting started with vibe-log is now smoother than ever: Better first-run setup flow Helpful prompts to guide you through configuration Improved error messages when things go wrong

Improved Time Calculation ⏱️

More accurate session duration tracking with better handling of: Massive sessions: Sessions with 10,000+ messages no longer cause performance issues Smart truncation: Large sessions are intelligently truncated while preserving time data Consistent timestamps: Better parsing and validation of session timing information Edge case handling: Fixed issues with sessions that had missing or invalid timestamps

πŸ’¬ More about Claude Status Line - Strategic Co-pilot / Advisor (Local)

πŸ”’ Installation Safety: Automatically backs up your existing status line configuration. Uninstalling instantly restores your original setup - zero risk to your Claude Code configuration.

Why Use Status Line?

  • πŸš€ Ship Faster: Get pushed to deliver
  • 🎯 Stay Focused: Remembers your original mission and keeps you on track and forward ⏩︎
  • ⚑ Concrete Actions: Specific next steps like:
  • πŸ“ˆ Strategic Thinking: Considers edge cases, user experience, and scaling at the right time
  • πŸ“Š Token Usage Display: Integrates with ccusage to show real-time token metrics
  • ↩️ Easy Restore: Your original status line is backed up and can be restored anytime

Architecture

How Status Line Works

  1. Intercepts prompts submitted in Claude Code
  2. Analyzes via the local Claude Code latest prompt with relevant session context.
  3. Provides strategic guidance and pushes you to ship
  4. Displays actionable feedback in the Claude Code status line

In more details:

flowchart LR
    subgraph Input ["✳️ In Claude Code"]
        User([πŸ‘€ You type a<br/>prompt]) --> Submit[Press Enter to<br/>submit prompt]
        Submit --> Hook[πŸͺ UserPromptSubmit<br/>hook triggers]
    end

    subgraph Analysis ["🧠 Local Prompt Analysis via Claude Code SDK"]
        Hook --> CLI[Vibe-log CLI<br/>receives prompt]
        CLI --> Check{Is new chat?}
        Check -->|No| Context[πŸ“ Include previous<br/>conversation]
        Check -->|Yes| Direct[πŸ’­ Analyze prompt<br/>standalone]
        
        subgraph Personality ["🎭 Infuse Coach Personality"]
            Gordon[πŸ§‘β€πŸ³ Gordon<br/>Tough love]
            Vibe[πŸ’œ Vibe-log<br/>Encouraging]
            Custom[✨ Custom<br/>Your style]
        end
        
        Context --> SDK[Claude SDK<br/>analyzes prompt quality]
        Direct --> SDK
        Personality -.-> SDK
        SDK --> Score[πŸ“Š Generate score<br/>& suggestion]
    end

    subgraph Display ["πŸ’¬ Status Line Feedback"]
        Score --> Save[πŸ’Ύ Save to<br/>~/.vibe-log/analysis]
        Save --> Status[Status bar<br/>reads result]
        Status --> Show[🟒 85/100<br/>✨ Gordon says:<br/>Add more context chef!]
    end

    Show --> Improve([πŸ“ˆ Better prompts<br/>Better results])
Loading

Coach Personalities

  • Gordon - Sharp, pushy, business-focused. Creates urgency: "Ship by FRIDAY or you're fired!"
  • Vibe-Log - Supportive but pushy senior dev. Helps you ship: "MVP checklist: Auth works βœ“ | Ship it!"
  • Custom - User-defined personality with strategic focus

Example Output

Setup

  1. Run npx vibe-log-cli
  2. Select "Configure prompt coach status line"
  3. Choose coach personality
  4. (Optional) Enable ccusage token metrics display
  5. Prompts will be analyzed locally in Claude Code

Note: Installation automatically backs up your current status line (if any). When you uninstall vibe-log, your original configuration is instantly restored.

Local Report Generation Works

Generate comprehensive productivity reports from Claude Code and Codex sessions. No data leaves your machine.

  • Select timeframe
  • Select projects
flowchart TD
    Start([πŸ“ Claude Code and Codex Sessions]) --> Select[vibe-log-cli select time frame and projects]
    Select --> Extract[Extracts & prepares session data]
    Extract --> Launch[Launches local ACP analysis]
    Launch --> Parallel{Session analysis}
    Parallel --> Gather[Gathers results &<br/>Generates report]
    Gather --> Output[πŸ“Š HTML Report in current folder]    
    style Start fill:#e1f5fe
    style Output fill:#d4edda
Loading

Example of Local Report Output

screencapture-file-C-vibelog-vibe-log-cli-vibe-log-report-2025-09-05-2-html-2025-09-05-15_54_16

☁️ Cloud Sync (Optional)

Optionally sync your sanitized session data to the vibe-log dashboard for advanced analytics and tracking over time.

Features

  • 🎁 Free Forever: Up to 1,000 session analyses per month
  • πŸ“ˆ Track Over Time: Monitor your prompt quality and productivity trends
  • πŸ”„ Auto-sync: Configure hooks for automatic background sync
  • πŸ”’ Privacy First: All code removed before upload, only patterns synced
  • πŸ“Š Web Dashboard: Learn and improve your AI coding sessions.

How It Works

flowchart TD
    subgraph Local ["🏠 Your Machine"]
        Sessions[Claude Code and Codex Sessions] --> Select[Select sessions]
        Select --> Privacy[πŸ”’ Privacy Layer<br/>Removes code & secrets<br/>Keeps only patterns]
    end
    
    subgraph Cloud ["☁️ Vibe-Log Cloud"]
        Privacy --> Upload[Upload patterns]
        Upload --> Verify[Server verification]
        Verify --> Analysis[AI analysis]
        Analysis --> Dashboard[πŸ“Š Web Dashboard]
    end
    
    subgraph Features ["Dashboard Features"]
        Dashboard --> Track[πŸ“ˆ Track prompt improvement over time]
        Dashboard --> Metrics[⚑ Deeper productivity insights]  
        Dashboard --> Streaks[πŸ”₯ Peak times/Low times]
        Dashboard --> Prompt[πŸ’¬ User Prompt Analysis]
    end
    
    style Local fill:#e1f5fe
    style Cloud fill:#f3e5f5
    style Features fill:#d4edda
Loading

Auto-Sync

What is Auto-Sync

Claude Code hooks and Codex hooks allow Vibe-Log to automatically sync local sessions in the background. Claude Code auto-sync is stable. Codex auto-sync is experimental and sync-only.

What are hooks?

β€’ Small commands that run at specific moments in Claude Code or Codex

β€’ They work silently in the background (you won't notice them)

Which Claude Code hooks do we use?

πŸ“ SessionStart - Syncs previous sessions when you start/resume work (Triggers: startup, resume, clear commands)

πŸ“¦ PreCompact - Syncs full session before context compression (Triggers: manual or automatic context cleanup)

Why we recommend both:

βœ“ SessionStart ensures nothing is lost between sessions

βœ“ PreCompact syncs everything before Claude compresses context

Which Codex hooks do we use?

πŸ“ SessionStart - Syncs recent Codex sessions when work starts

πŸ”š Stop - Syncs after Codex finishes responding

Codex hooks write Vibe-Log commands to Codex hooks.json and enable [features].codex_hooks = true in Codex config.toml. Vibe-Log does not install Codex prompt coach or statusline hooks.

Setup Auto-sync

  1. Run npx vibe-log-cli
  2. Authenticate with your Github account
  3. Enable auto-sync via CLI menu

Supported Coding Engines

Currently supported:

  • βœ… Claude Code
  • βœ… Codex (manual cloud sync, experimental auto-sync hooks, local standups, local reports)

Future:

  • πŸ”œ Cursor
  • πŸ”œ VS Code

🌍 Cross-Platform - Runs on macOS, Windows, Linux, and any environment with Node.js

πŸ”’ Privacy & Security

Automated Releases NPM Provenance SHA256 Checksums Open Source

This package is built with complete transparency:

  • βœ… Source Code: Fully open source at github.com/vibe-log/vibe-log-cli
  • βœ… Not Minified: Published code is readable and verifiable
  • βœ… Source Maps: Included for debugging and verification
  • βœ… Automated Builds: All releases via GitHub Actions (no manual publishing)
  • βœ… npm Provenance: Every package includes build attestation
  • βœ… Checksums: SHA256 hashes for integrity verification

Verify Our Package

# Download and inspect the package
npm pack vibe-log-cli@latest
tar -xzf vibe-log-cli-*.tgz
head -100 package/dist/index.js  # Verify it's readable

# Check checksums
cd package/dist && sha256sum -c checksums.sha256

Privacy

  • Context-Preserving Sanitization: Messages are sanitized to remove sensitive data while preserving context
  • What gets redacted/removed:
    • Code blocks β†’ [CODE_BLOCK_1: javascript]
    • API keys/tokens β†’ [CREDENTIAL_1]
    • File paths β†’ [PATH_1]
    • URLs β†’ [DATABASE_URL], [API_URL]
    • Emails β†’ [EMAIL_1]
    • Environment variables β†’ [ENV_VAR_1]
    • Also Removed: Images/Binary files
  • What's preserved: Conversation flow, questions, explanations
  • Transparent: Preview sanitized data with the interactive prompt
  • Open source: Review our sanitization at src/lib/message-sanitizer-v2.ts

Troubleshooting

Authentication Issues

Try the following:

  • Log out from the CLI
  • Clear cookies
  • Re-authenticate via the CLI

No Sessions Found

  • Make sure Claude Code or Codex is installed
  • Check that you've used Claude Code or Codex recently
  • For Codex cloud sync, use send --source codex or choose Codex from the manual sync menu

Sessions Stuck in Analyzing

  • Please open a Github issue.

Debug Mode

# Enable debug logging
VIBELOG_DEBUG=1 npx vibe-log-cli send

Contributing

We love your input! We want to make contributing to Vibe-Log CLI as easy and transparent as possible. Please see our Contributing Guide for details.

# Clone the repository
git clone https://github.com/vibe-log/vibe-log-cli.git
cd vibe-log-cli

# Install dependencies
npm install

# Run tests
npm test

# Build the project
npm run build

Check out our open issues for a list of proposed features and known issues.

Community

Support

Need help? Here are some ways to get support:

License

MIT Β© Vibe-Log - see the LICENSE file for details.

Acknowledgments

Built with love by the Vibe-Log team @mickmicksh, @dannyshmueli

Special thanks to ccusage for providing token usage metrics integration for Claude Code sessions.

Star History

Star History Chart