{"_id":"@code-is-cheap/show-me-the-talk","_rev":"4-53af2d27f043acb82402f29dddd49904","name":"@code-is-cheap/show-me-the-talk","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@code-is-cheap/show-me-the-talk","version":"1.0.0","keywords":["claude","claude-code","conversation","export","parser","ai","prompt","cli","typescript","jsonl"],"author":"","license":"MIT","_id":"@code-is-cheap/show-me-the-talk@1.0.0","maintainers":[{"name":"daymade","email":"tiansheng@outlook.com"}],"homepage":"https://github.com/code-is-cheap/show-me-the-talk#readme","bugs":{"url":"https://github.com/code-is-cheap/show-me-the-talk/issues"},"bin":{"smtt":"dist/bin/show-me-the-talk.js","show-me-the-talk":"dist/bin/show-me-the-talk.js"},"dist":{"shasum":"25b91ea5727d0f6339ab5f20d58ad937067f2039","tarball":"https://registry.npmjs.org/@code-is-cheap/show-me-the-talk/-/show-me-the-talk-1.0.0.tgz","fileCount":198,"integrity":"sha512-Gm0+9oDrZKjS558J9t9aywALcZFZm7EWQ1wZt6+B9B4j4qPcfXTNw7g4tKNgjlaWf/yAnc2r/swPhyBL+vOYRA==","signatures":[{"sig":"MEUCIQCaNTV8DQCcxp3K5MMAC5VDSq+ZOLET41RRAjy0nFbBkwIgYOlyv7p3+7t/lQEAfnRqJ6d7POVG+YTihm4UWYRQG3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859141},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"fe9e2f7dfdf5ed878e345bfb29e9190f64ed7452","scripts":{"dev":"tsx src/presentation/cli/cli.ts","docs":"typedoc src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts","prepare":"husky install","test:ui":"vitest --ui","lint:fix":"eslint src --ext .ts --fix","benchmark":"tsx scripts/benchmark.ts","postbuild":"chmod +x dist/bin/show-me-the-talk.js","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"daymade","actor":{"name":"daymade","type":"user","email":"tiansheng@outlook.com"},"email":"tiansheng@outlook.com"},"repository":{"url":"git+https://github.com/code-is-cheap/show-me-the-talk.git","type":"git"},"_npmVersion":"10.9.2","description":"Export and parse Claude Code conversations - code is cheap, show me the talk","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^6.0.0","chalk":"^5.4.1","react":"^19.1.0","figures":"^5.0.0","ink-box":"^1.0.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","ink-select-input":"^6.2.0","@inquirer/prompts":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","husky":"^8.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","vitest":"^3.2.4","typedoc":"^0.25.0","prettier":"^3.0.0","@vitest/ui":"^3.2.4","typescript":"^5.4.0","@types/node":"^24.0.3","lint-staged":"^14.0.0","@types/react":"^19.1.8","@types/ink-box":"^1.0.4","@vitest/coverage-v8":"^3.2.4","ink-testing-library":"^3.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/show-me-the-talk_1.0.0_1750955710399_0.7976926260082298","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@code-is-cheap/show-me-the-talk","version":"1.0.1","keywords":["claude","claude-code","conversation","export","parser","ai","prompt","cli","typescript","jsonl"],"author":"","license":"MIT","_id":"@code-is-cheap/show-me-the-talk@1.0.1","maintainers":[{"name":"daymade","email":"tiansheng@outlook.com"}],"homepage":"https://github.com/code-is-cheap/show-me-the-talk#readme","bugs":{"url":"https://github.com/code-is-cheap/show-me-the-talk/issues"},"bin":{"smtt":"dist/bin/show-me-the-talk.js","show-me-the-talk":"dist/bin/show-me-the-talk.js"},"dist":{"shasum":"71791973872874e9d1e8d45460cbf1d2fcb913e8","tarball":"https://registry.npmjs.org/@code-is-cheap/show-me-the-talk/-/show-me-the-talk-1.0.1.tgz","fileCount":198,"integrity":"sha512-4s+Gg003d125N/0a5hN/alAc6pLvryJ+PI7wHSjuo+0FGVI7iO+HhmA0qQoucey921n2K97MCvqyZzzl67W6CQ==","signatures":[{"sig":"MEQCICJJsgFIFlZPT2t79DNRUKEI8gO8FVJHbeyWrzMMiPq6AiBXe/i8qYVhqWJovteHj4vdZ5QRLqMiYIb75PWQGKjtFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859594},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"fe9e2f7dfdf5ed878e345bfb29e9190f64ed7452","scripts":{"dev":"tsx src/presentation/cli/cli.ts","docs":"typedoc src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts","prepare":"husky install","test:ui":"vitest --ui","lint:fix":"eslint src --ext .ts --fix","benchmark":"tsx scripts/benchmark.ts","postbuild":"chmod +x dist/bin/show-me-the-talk.js","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"daymade","actor":{"name":"daymade","type":"user","email":"tiansheng@outlook.com"},"email":"tiansheng@outlook.com"},"repository":{"url":"git+https://github.com/code-is-cheap/show-me-the-talk.git","type":"git"},"_npmVersion":"10.9.2","description":"Export and parse Claude Code conversations - code is cheap, show me the talk","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^6.0.0","chalk":"^5.4.1","react":"^19.1.0","figures":"^5.0.0","ink-box":"^1.0.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","ink-select-input":"^6.2.0","@inquirer/prompts":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","husky":"^8.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","vitest":"^3.2.4","typedoc":"^0.25.0","prettier":"^3.0.0","@vitest/ui":"^3.2.4","typescript":"^5.4.0","@types/node":"^24.0.3","lint-staged":"^14.0.0","@types/react":"^19.1.8","@types/ink-box":"^1.0.4","@vitest/coverage-v8":"^3.2.4","ink-testing-library":"^3.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/show-me-the-talk_1.0.1_1750955917600_0.7965537968275505","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@code-is-cheap/show-me-the-talk","version":"1.0.2","keywords":["claude","claude-code","conversation","export","parser","ai","prompt","cli","typescript","jsonl"],"author":"","license":"MIT","_id":"@code-is-cheap/show-me-the-talk@1.0.2","maintainers":[{"name":"daymade","email":"tiansheng@outlook.com"}],"homepage":"https://github.com/code-is-cheap/show-me-the-talk#readme","bugs":{"url":"https://github.com/code-is-cheap/show-me-the-talk/issues"},"bin":{"smtt":"dist/bin/show-me-the-talk.js","show-me-the-talk":"dist/bin/show-me-the-talk.js"},"dist":{"shasum":"0a52c91fc7f214d889c534193371bf4f9b51ce3d","tarball":"https://registry.npmjs.org/@code-is-cheap/show-me-the-talk/-/show-me-the-talk-1.0.2.tgz","fileCount":198,"integrity":"sha512-LCRRAqyfO+uCj2EzrE/5tCOr8jemMeAKp4Pds6fbhU0SAmXt3CZ2NrMm4aGAGEk63YvxbRAKaAk0gu29Avsd/w==","signatures":[{"sig":"MEYCIQD8B18iVOFqjv7DQWR1dxReuoebxvQrrhxg0KHtHhSO1QIhAIJYMTbumbPcuYV7xfFR3q6E4qzGsH4WiHzIyG8yhMyD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":862775},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"fe9e2f7dfdf5ed878e345bfb29e9190f64ed7452","scripts":{"dev":"tsx src/presentation/cli/cli.ts","docs":"typedoc src/index.ts","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts","prepare":"husky install","test:ui":"vitest --ui","lint:fix":"eslint src --ext .ts --fix","benchmark":"tsx scripts/benchmark.ts","postbuild":"chmod +x dist/bin/show-me-the-talk.js","test:unit":"vitest run tests/unit","typecheck":"tsc --noEmit","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","test:integration":"vitest run tests/integration"},"_npmUser":{"name":"daymade","actor":{"name":"daymade","type":"user","email":"tiansheng@outlook.com"},"email":"tiansheng@outlook.com"},"repository":{"url":"git+https://github.com/code-is-cheap/show-me-the-talk.git","type":"git"},"_npmVersion":"10.9.2","description":"Export and parse Claude Code conversations - code is cheap, show me the talk","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ink":"^6.0.0","chalk":"^5.4.1","react":"^19.1.0","figures":"^5.0.0","ink-box":"^1.0.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","ink-select-input":"^6.2.0","@inquirer/prompts":"^3.3.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","husky":"^8.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","vitest":"^3.2.4","typedoc":"^0.25.0","prettier":"^3.0.0","@vitest/ui":"^3.2.4","typescript":"^5.4.0","@types/node":"^24.0.3","lint-staged":"^14.0.0","@types/react":"^19.1.8","@types/ink-box":"^1.0.4","@vitest/coverage-v8":"^3.2.4","ink-testing-library":"^3.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/show-me-the-talk_1.0.2_1750956134083_0.5988161074948699","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@code-is-cheap/show-me-the-talk","version":"1.0.3","description":"Export and parse Claude Code conversations - code is cheap, show me the talk","main":"dist/index.js","types":"dist/index.d.ts","bin":{"show-me-the-talk":"dist/bin/show-me-the-talk.js","smtt":"dist/bin/show-me-the-talk.js"},"scripts":{"build":"tsc","postbuild":"chmod +x dist/bin/show-me-the-talk.js","watch":"tsc --watch","dev":"tsx src/presentation/cli/cli.ts","test":"vitest run","test:unit":"vitest run tests/unit","test:integration":"vitest run tests/integration","test:watch":"vitest","test:coverage":"vitest run --coverage","test:ui":"vitest --ui","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","format":"prettier --write src/**/*.ts","typecheck":"tsc --noEmit","benchmark":"tsx scripts/benchmark.ts","docs":"typedoc src/index.ts","prepare":"husky install","prepublishOnly":"npm run build"},"keywords":["claude","claude-code","conversation","export","parser","ai","prompt","cli","typescript","jsonl"],"author":"","license":"MIT","type":"module","engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/code-is-cheap/show-me-the-talk.git"},"bugs":{"url":"https://github.com/code-is-cheap/show-me-the-talk/issues"},"homepage":"https://github.com/code-is-cheap/show-me-the-talk#readme","devDependencies":{"@types/ink-box":"^1.0.4","@types/node":"^24.0.3","@types/react":"^19.1.8","@types/react-test-renderer":"^19.1.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","@vitest/coverage-v8":"^3.2.4","@vitest/ui":"^3.2.4","eslint":"^8.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","husky":"^8.0.0","ink-testing-library":"^3.0.0","jsdom":"^26.1.0","lint-staged":"^14.0.0","mock-stdin":"^1.0.0","prettier":"^3.0.0","strip-ansi":"^7.1.0","tsx":"^4.20.3","typedoc":"^0.25.0","typescript":"^5.4.0","vitest":"^3.2.4"},"dependencies":{"@inquirer/prompts":"^3.3.2","chalk":"^5.4.1","figures":"^5.0.0","ink":"^6.0.0","ink-box":"^1.0.0","ink-select-input":"^6.2.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","react":"^19.1.0"},"_id":"@code-is-cheap/show-me-the-talk@1.0.3","gitHead":"5f1a617f5427f343b5a71f23e25230acd4a7c74e","_nodeVersion":"22.13.1","_npmVersion":"11.4.1","dist":{"integrity":"sha512-V9mSdHizd8jhmOLRbkjqXv0aw8rBUbTfWI7MRgP9vorphfHF5sUcBmBXcmQtEuqmskcQxRqOO7Y5fsBbDgvyow==","shasum":"62c3fb667c650cd30384ad057728c199f8e2496c","tarball":"https://registry.npmjs.org/@code-is-cheap/show-me-the-talk/-/show-me-the-talk-1.0.3.tgz","fileCount":198,"unpackedSize":822037,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEjxSer6hAwZiD2HUDjCAi0zZ3GkZCRfoSb+hMb6lG+8AiADWJMHSlyHPgMTSZYgKdPAnfwv65PNwM3YN9X5paAWjA=="}]},"_npmUser":{"name":"daymade","email":"tiansheng@outlook.com","actor":{"name":"daymade","email":"tiansheng@outlook.com","type":"user"}},"directories":{},"maintainers":[{"name":"daymade","email":"tiansheng@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/show-me-the-talk_1.0.3_1751220814954_0.09938151483148494"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-26T16:35:10.313Z","modified":"2025-06-29T18:13:35.387Z","1.0.0":"2025-06-26T16:35:10.637Z","1.0.1":"2025-06-26T16:38:37.827Z","1.0.2":"2025-06-26T16:42:14.298Z","1.0.3":"2025-06-29T18:13:35.183Z"},"bugs":{"url":"https://github.com/code-is-cheap/show-me-the-talk/issues"},"license":"MIT","homepage":"https://github.com/code-is-cheap/show-me-the-talk#readme","keywords":["claude","claude-code","conversation","export","parser","ai","prompt","cli","typescript","jsonl"],"repository":{"type":"git","url":"git+https://github.com/code-is-cheap/show-me-the-talk.git"},"description":"Export and parse Claude Code conversations - code is cheap, show me the talk","maintainers":[{"name":"daymade","email":"tiansheng@outlook.com"}],"readme":"# Show Me The Talk\n\n> **Code is cheap, show me the talk** - Export and share your Claude Code conversation experiences!\n\nA TypeScript library and CLI tool for parsing, analyzing, and exporting Claude Code conversations. Built with Domain-Driven Design principles and SOLID architecture.\n\n## 🚀 Features\n\n- **🖥️ Interactive Terminal UI**: Modern terminal interface with Ink + React\n- **📊 Real-time Filtering**: Live search and filter conversations by project, keywords, date\n- **⚡ Multiple Export Formats**: JSON, Markdown, Simple, and Enhanced HTML with Time Machine\n- **🤖 Smart Conversation Analysis**: Auto-categorize by debugging, architecture, learning, etc.\n- **📁 Project-based Organization**: Group and navigate conversations by project context\n- **📈 Rich Metrics & Analytics**: Comprehensive conversation statistics and insights\n- **⌨️ Keyboard Navigation**: Professional terminal experience optimized for developers\n- **🎨 Enhanced HTML Export**: Interactive conversations with syntax highlighting and timeline\n- **🔍 Advanced Parsing**: Extract meaningful dialogues from Claude Code JSONL files\n- **🛠️ TypeScript**: Full type safety with modern development experience\n\n## 📦 Installation\n\n### Global Installation (Recommended for CLI usage)\n```bash\nnpm install -g @code-is-cheap/show-me-the-talk\n```\n\n### Local Installation\n```bash\nnpm install @code-is-cheap/show-me-the-talk\n```\n\n### One-time Usage with npx\n```bash\nnpx @code-is-cheap/show-me-the-talk --help\n```\n\n## 🎯 Quick Start\n\n### Interactive Terminal UI (Default)\n\n```bash\n# Launch interactive TUI (default behavior)\nshow-me-the-talk\n\n# Short command alias\nsmtt\n\n# Explicit TUI launch\nshow-me-the-talk --tui\n```\n\n### Command Line Export\n\n```bash\n# Export all conversations as JSON\nshow-me-the-talk -f json -o my-conversations.json\n\n# Export with metadata and analytics\nshow-me-the-talk -f json -o detailed.json -m\n\n# Export specific project conversations\nshow-me-the-talk -f markdown -o project.md -p \"/path/to/project\"\n\n# Export single conversation session\nshow-me-the-talk -f html -o session.html -s \"session-id-here\"\n```\n\n## 🛠️ Usage\n\n### CLI Options\n\n```bash\nUsage: show-me-the-talk [options]\n\nOptions:\n  -f, --format <format>     Export format: json, markdown, simple, html (default: interactive TUI)\n  -o, --output <file>       Output file path (default: conversations.md)\n  -d, --claude-dir <dir>    Claude directory path (default: ~/.claude)\n  -s, --session <id>        Export specific session ID\n  -p, --project <path>      Export conversations for specific project\n  -m, --metadata            Include conversation metrics\n  -t, --tui                 Launch interactive Terminal UI (default behavior)\n  -v, --version             Show version number\n  -h, --help                Show this help message\n```\n\n### Export Formats\n\n#### 1. **JSON** - Machine-readable structured data\n```bash\nshow-me-the-talk -f json -o data.json\n```\n\n#### 2. **Markdown** - Human-readable documentation\n```bash\nshow-me-the-talk -f markdown -o conversations.md\n```\n\n#### 3. **Simple** - Clean, minimal format\n```bash\nshow-me-the-talk -f simple -o clean.md\n```\n\n#### 4. **HTML** - Enhanced web format with Time Machine\n```bash\nshow-me-the-talk -f html -o interactive.html\n```\n\n## 📚 Library Usage\n\n### Basic Usage\n\n```typescript\nimport { ShowMeTheTalk } from '@code-is-cheap/show-me-the-talk';\n\nconst tool = new ShowMeTheTalk('~/.claude');\nconst conversations = await tool.getConversations();\n\n// Export conversations\nawait tool.export('json', 'output.json', {\n  includeMetadata: true,\n  projectPath: '/path/to/project'\n});\n```\n\n### Advanced Usage\n\n```typescript\nimport { \n  ShowMeTheTalk,\n  ExportConfiguration,\n  ConversationFilter \n} from '@code-is-cheap/show-me-the-talk';\n\nconst tool = new ShowMeTheTalk('~/.claude');\n\n// Custom export configuration\nconst config = ExportConfiguration.create()\n  .withFormat('html')\n  .withMetadata(true)\n  .withTimeMachine(true)\n  .build();\n\n// Apply filters\nconst filter = new ConversationFilter()\n  .byProject('/my/project')\n  .byCategory('debugging')\n  .afterDate(new Date('2024-01-01'));\n\nconst conversations = await tool.getConversations(filter);\nawait tool.exportWithConfig(conversations, 'output.html', config);\n```\n\n## 🏗️ Architecture\n\nBuilt with **Domain-Driven Design** and **Clean Architecture** principles:\n\n```\nsrc/\n├── domain/              # Core business logic\n│   ├── models/          # Entities and value objects\n│   ├── services/        # Domain services\n│   └── repositories/    # Repository interfaces\n├── application/         # Application orchestration\n│   ├── dto/            # Data transfer objects\n│   └── services/       # Application services\n├── infrastructure/      # External concerns\n│   ├── persistence/    # Data access implementations\n│   ├── filesystem/     # File operations\n│   └── container/      # Dependency injection\n└── presentation/        # User interfaces\n    ├── cli/            # Command-line interface\n    └── tui/            # Terminal user interface\n```\n\n## 🔧 Development\n\n### Prerequisites\n- Node.js 18+\n- TypeScript 5+\n\n### Setup\n```bash\ngit clone https://github.com/code-is-cheap/show-me-the-talk.git\ncd show-me-the-talk\nnpm install\nnpm run build\n```\n\n### Development Scripts\n```bash\nnpm run dev         # Development mode with tsx\nnpm run build       # Build TypeScript to JavaScript\nnpm run watch       # Build in watch mode\nnpm run test        # Run all tests\nnpm run lint        # Run ESLint\nnpm run format      # Format with Prettier\n```\n\n### Testing\n```bash\nnpm test                    # Run all tests\nnpm run test:unit          # Run unit tests only\nnpm run test:integration   # Run integration tests only\nnpm run test:watch         # Run tests in watch mode\nnpm run test:coverage      # Generate coverage report\n```\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and development process.\n\n## 📈 Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a list of changes and version history.\n\n## 🆘 Support\n\n- 📖 [Documentation](https://github.com/code-is-cheap/show-me-the-talk/wiki)\n- 🐛 [Issue Tracker](https://github.com/code-is-cheap/show-me-the-talk/issues)\n- 💬 [Discussions](https://github.com/code-is-cheap/show-me-the-talk/discussions)\n\n---\n\n**Show Me The Talk** - Making Claude Code conversations shareable and accessible! 🚀\n","readmeFilename":"README.md"}