https://github.com/eckardt/cchistory
  
  
    Like the shell history command but for your Claude Code sessions. 
    https://github.com/eckardt/cchistory
  
bash claude claude-code cli shell shell-history terminal
        Last synced: about 2 months ago 
        JSON representation
    
Like the shell history command but for your Claude Code sessions.
- Host: GitHub
 - URL: https://github.com/eckardt/cchistory
 - Owner: eckardt
 - License: mit
 - Created: 2025-06-07T15:44:23.000Z (5 months ago)
 - Default Branch: main
 - Last Pushed: 2025-08-19T08:17:13.000Z (3 months ago)
 - Last Synced: 2025-08-19T10:40:56.246Z (3 months ago)
 - Topics: bash, claude, claude-code, cli, shell, shell-history, terminal
 - Language: TypeScript
 - Homepage:
 - Size: 450 KB
 - Stars: 29
 - Watchers: 0
 - Forks: 0
 - Open Issues: 1
 - 
            Metadata Files:
            
- Readme: README.md
 - License: LICENSE
 - Codeowners: .github/CODEOWNERS
 
 
Awesome Lists containing this project
- awesome-claude-code - `cchistory`
 - awesome-ai - eckardt/cchistory
 
README
          # cchistory
[](https://badge.fury.io/js/cchistory)
Like the shell `history` command but for your Claude Code sessions.
  
## Why cchistory?
When Claude Code runs shell commands, they don't appear in your shell history. This makes it hard to:
- Re-run useful commands from past sessions
- Build on previous work
- Learn from command patterns Claude uses
- Copy command sequences for documentation
```bash
$ cchistory | tail -5
  46  git status
  47  git pull origin main
  48  git log --oneline -5
  49  docker-compose up -d
  50  curl -I localhost:8080/health
```
## 📦 Installation
### npm (recommended)
```bash
npm install -g cchistory
```
### npx (try without installing)
```bash
npx cchistory --help
```
### From source
```bash
git clone https://github.com/eckardt/cchistory
cd cchistory
npm install
npm run build
npm link
```
## Usage
```bash
cchistory                    # Current project history
cchistory --global           # All projects
cchistory --list-projects    # See all available projects
cchistory | grep docker      # Find Docker commands  
cchistory | tail -5          # Last 5 commands
cchistory my-app | tail -10  # Last 10 from specific project
cchistory ~/code/my-app      # Project by full path
```
## ✨ Features
- 🔍 Extract all Bash commands Claude executed across projects
- 🗂️ Filter by specific project or search globally  
- 📊 Standard Unix tool compatibility (`grep`, `awk`, `sort`)
- ⚡ Fast streaming parser for large conversation logs
- 🚀 Zero-config - works with existing Claude Code setup
## How It Works
Claude Code stores conversation history in `~/.claude/projects/`. This tool:
1. Finds your Claude projects
2. Streams through conversation logs  
3. Extracts shell commands Claude executed
4. Formats them like traditional shell history
## 📋 Example Output
```bash
$ cchistory --global | head -10
   1  [web-scraper    ] npm install puppeteer
   2  [web-scraper    ] mkdir src tests
   3  [api-project    ] docker-compose up -d
   4  [api-project    ] curl -X POST localhost:3000/api/test
   5  [frontend       ] npm run dev
   6  [frontend       ] git add .
   7  [backend        ] npm test
   8  [backend        ] git commit -m "fix: validation"
   9  [deployment     ] kubectl apply -f deployment.yaml
  10  [deployment     ] kubectl get pods
```
## Advanced Usage
```bash
# Find all npm commands across projects
cchistory --global | grep npm
# Get last 20 Docker commands
cchistory --global | grep docker | tail -20
# Count commands by type
cchistory --global | sed 's/.*] //' | awk '{print $1}' | sort | uniq -c | sort -nr | head -10
```
## Command Sources
Extracts commands from:
- **Bash tool usage**: Commands Claude executes via the Bash tool
- **User "!" commands**: Commands you run with `! command` in Claude
## Requirements
- Node.js 20+ 
- Claude Code with conversation history in `~/.claude/projects/`
**Note**: Claude Code automatically cleans up conversation transcripts based on the `cleanupPeriodDays` setting (default: 30 days). Commands older than this period won't appear in cchistory output. You can adjust this retention period in [Claude Code's settings](https://docs.anthropic.com/en/docs/claude-code/settings) if needed.
## Options
```
cchistory [project-name]    # Show history for specific project (by name or path)
cchistory --global          # Show history from all projects  
cchistory --list-projects   # List all available Claude projects
cchistory --help            # Show usage info
```
## Output Format
Each line shows:
```
[sequence] [project-name] command
```
- **sequence**: Command number (oldest first)
- **project-name**: Which Claude project ran the command
- **command**: The actual shell command
Multi-line commands use zsh history format with `\\n` for newlines.
## Unix Philosophy
`cchistory` does one thing well: extract shell commands. Use it with standard Unix tools:
- `grep` for filtering
- `head`/`tail` for limiting output  
- `awk` for field processing
- `sort`/`uniq` for analysis
- Pipe to files for documentation