Bring receipts from your Claude Code sessions
翻譯準備中
外掛TypeScript · JavaScriptGitHub @chrishutchinson自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
安裝型專案無需部署網域也可驗證。個人儲存庫可透過 GitHub 登入驗證,組織儲存庫可使用上方的儲存庫驗證檔案。
正在載入完整 README。 以下為已儲存的摘錄。
This has been one of my favourite creative side projects yet (and just in time for Opus 4.6).
I picked up a second hand receipt printer and hooked it up to Claude Code's SessionEnd hook. With some ccusage wrangling, a receipt is printed, showing a breakdown of that session's spend by model, along with token counts.
It's dumb, the receipts are beautiful, and I love it so much.
I hope you enjoy it too.
• Configure the SessionEnd hook in your global ~/.claude/settings.json
• Create a config file at ~/.claude-receipts.config.json檢視完整 README ↗A note from the author:
This has been one of my favourite creative side projects yet (and just in time for Opus 4.6).
I picked up a second hand receipt printer and hooked it up to Claude Code's
SessionEndhook. With someccusagewrangling, a receipt is printed, showing a breakdown of that session's spend by model, along with token counts.It's dumb, the receipts are beautiful, and I love it so much.
I hope you enjoy it too.
npx claude-receipts setup
This will:
SessionEnd hook in your global ~/.claude/settings.json~/.claude-receipts.config.jsonFrom now on, every time you exit a Claude Code session, your receipt will be generated and opened in your browser.
Generate a receipt for your most recent session:
npx claude-receipts generate
generateGenerate a receipt for a Claude Code session.
# Generate for most recent session
npx claude-receipts generate
# Generate HTML (saved to ~/.claude-receipts/projects/)
npx claude-receipts generate --output html
# Print to thermal printer
npx claude-receipts generate --output printer --printer usb
# Multiple outputs (HTML + printer)
npx claude-receipts generate --output html,printer
# Specific session by UUID prefix
npx claude-receipts generate --session 9356d5e2
# Override location
npx claude-receipts generate --location "Paris, France"
Options:
-s, --session <id> - Generate for a specific session ID or UUID prefix-o, --output <format> - Output format: "html", "console", or "printer" (supports multiple, comma-separated)-l, --location <text> - Override location detection-p, --printer <name> - Printer interface (e.g., "usb", "tcp://192.168.1.100")Output Formats:
html - Beautiful styled receipt saved to ~/.claude-receipts/projects/console - ASCII art display in terminalprinter - Send to thermal printer (requires Epson TM-T88V or compatible)setupConfigure automatic receipt generation.
# Run interactive setup
npx claude-receipts setup
# Uninstall the hook
npx claude-receipts setup --uninstall
This modifies ~/.claude/settings.json to add a SessionEnd hook that automatically generates receipts.
configManage your receipt configuration.
# Show current configuration
npx claude-receipts config --show
# Set a configuration value
npx claude-receipts config --set location="Kuala Lumpur, Malaysia"
npx claude-receipts config --set timezone="Asia/Kuala_Lumpur"
npx claude-receipts config --set printer=usb
# Reset to defaults
npx claude-receipts config --reset
Available settings:
location - Default location (string)timezone - Timezone for dates (string, e.g., "Asia/Macau")printer - Default printer interface (string, e.g., "usb" or "tcp://192.168.1.100")Configuration is stored at ~/.claude-receipts.config.json.
Default configuration:
{
"version": "1.0.0"
}
Optional settings:
location - Custom location string (otherwise auto-detected)timezone - Custom timezone for date formattingprinter - Default printer interface for thermal printingLocation is determined in this order:
--location flag (if provided)location settingnpx claude-receipts generate --output html via stdin with the session IDccusage session --id <session-id> to get accurate session token/cost data--output html is specified, generates a styled HTML receipt with token breakdowns by model~/.claude-receipts/projects/[session-name].html and/or prints to thermal printer--output printer is specified, sends the receipt to a thermal receipt printerclaude-receipts supports printing to Epson TM-T88V thermal printers (and compatible models) via:
--printer usb (or config --set printer=usb)--printer tcp://192.168.1.100[!WARNING] Your mileage with printing may vary. I have tested with an Epson TM-T88V, printing from macOS and it works well, but other models may have different capabilities or require adjustments to the code. I am more than happy to accept PRs to improve printer compatibility.
The receipt includes:
This means you're trying to manually generate a receipt but the most recent session doesn't have a valid project path. Solutions:
setup command)ccusage couldn't find any sessions. Make sure you've used Claude Code recently and that ccusage is working:
npx ccusage session --json
Check that the hook is installed:
cat ~/.claude/settings.json
You should see a SessionEnd hook pointing to claude-receipts.
Very short sessions (e.g., just "hello world" + immediate exit) may not appear in ccusage yet. The hook will exit silently rather than printing a wrong receipt. For sessions that exist, the package now uses ccusage session --id to fetch accurate totals rather than sub-session slices.
If using --printer usb, ensure:
/dev/usb/lp*)For network printers, use --printer tcp://<ip-address> with port 9100 (default ESC/POS port).
ccusage --id)MIT