惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
博客园 - Franky
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - delta-hq/cc-ledger: Per-session and per-PR cost ...
tsv650 · 2026-05-14 · via Hacker News: Show HN

cc-ledger

Local-first ledger of coding-agent activity. Every Claude Code edit, prompt, and per-turn token cost is captured via hooks and written to ~/.cc-ledger/ledger.db on your own machine. Pushing aggregates to the cloud dashboard at ccledger.dev is opt-in (cc-ledger auth then cc-ledger sync); raw prompts, transcripts, and file blobs never leave the laptop.

Phase 1 supports Claude Code; the agent layer is abstracted so Cursor / Codex / Amp / OpenCode drop in later.

Install

curl -fsSL https://ccledger.dev/install | bash

Picks the right tarball for your platform (macOS / Linux, x86_64 / aarch64), verifies the SHA256, drops cc-ledger into ~/.local/bin, and runs cc-ledger install to wire the Claude Code hooks.

Env overrides: CC_LEDGER_INSTALL_DIR=… to change install path, CC_LEDGER_VERSION=… to pin a version, CC_LEDGER_NO_HOOKS=1 to skip the hook step.

After install, open Claude Code. Every session, every edit, every assistant turn now lands in ~/.cc-ledger/ledger.db.

cc-ledger stats          # six-panel summary
cc-ledger pr-cost        # cost per PR for the current branch

macOS menubar app

A macOS menubar companion lives in menubar/ — same data, glanceable. 5-hour session pacing, active-session breakdown per repo, 24h / 30d usage trend, all reading the local ledger you already have.

cd menubar
./Scripts/package.sh && open MenuBar.app

See menubar/README.md for requirements (macOS 14+, Swift 6) and how to suppress the per-rebuild Keychain prompt.

Where your data lives

Everything cc-ledger writes lives under one directory — by default ~/.cc-ledger/, overridable with CC_LEDGER_HOME:

~/.cc-ledger/
├── ledger.db                     SQLite (WAL mode) — the ledger
├── blobs/<aa>/<bbcc…>            SHA256 content-addressed pre/post file snapshots
├── pricing.toml                  optional override (else uses embedded snapshot)
├── auth.json                     WorkOS tokens, mode 0600 (only after `cc-ledger auth`)
├── auth.lock                     advisory lock for refresh races
├── version-check.json            cached "/latest" lookup for the upgrade banner
└── audit/<session_id>/…          only when CC_LEDGER_AUDIT=1

Footprint: ~140 KB per typical session, ~700 KB per heavy session, ~250 MB / year for a daily user.

Retention

Local data is kept indefinitely — cc-ledger never auto-prunes, rotates, or expires anything under ~/.cc-ledger/. The directory is yours; if you want to wipe history, delete it. To reset only the cloud copy, run cc-ledger sync --reset-cursor to re-upload from scratch.

What's local-only vs synced

Data Where it lives Synced to ccledger.dev (opt-in)
Prompts + assistant transcripts ~/.claude/projects/<cwd>/<session>.jsonl (Claude Code's own log) ❌ never
Tool calls + pre/post file blobs ~/.cc-ledger/ ❌ never
Audit JSON (CC_LEDGER_AUDIT=1) ~/.cc-ledger/audit/ ❌ never
Session metadata (model, billing, OS) ~/.cc-ledger/ ✅ (cwd dropped, repo identity hashed from git remote)
Per-turn token + USD cost ~/.cc-ledger/ ✅ as aggregates
Per-line attributions ~/.cc-ledger/ ✅ (file paths normalized to repo-relative)
Commits / PRs / cost rollups ~/.cc-ledger/

cc-ledger does not store a duplicate copy of your prompts or assistant turns — Claude Code already writes them verbatim to ~/.claude/projects/<cwd>/<session>.jsonl, and that's where they stay. Reading prompt history is cat ~/.claude/projects/.../*.jsonl | jq away.

cc-ledger sync prints exactly which row counts are about to leave the machine and waits for confirmation, unless --yes is passed. Sync is also forked in the background (detached, ~15 min cooldown) when you run stats, pr-cost, or any hook — toggle off with --no-autosync or CC_LEDGER_NO_AUTOSYNC=1.

If you never run cc-ledger auth, nothing ever leaves the machine.

Commands

cc-ledger install              wire hooks into ~/.claude/settings.json
cc-ledger stats                six-panel summary, local read
cc-ledger pr-cost              cost-per-PR for current branch (or --pr / --all)
cc-ledger config [key [value]] read/set local config keys
cc-ledger auth                 device-flow login via WorkOS (subcommands: status, logout)
cc-ledger sync                 push aggregates to ccledger.dev
cc-ledger backfill agent-turns re-classify activity from local Claude Code transcripts

Global flags:

Flag Effect
--update Check for a newer release, install + re-exec into it
--no-autosync Skip the opportunistic background sync for this invocation

cc-ledger stats

Six panels — one question each, defaulting to the last 30 days. Pass --since 7d / --since all to retarget, --top N to cap rows.

Panel Question
Daily activity When have I been using it?
Top repos Where am I spending?
Top models Which model is doing the work?
Top sessions by token burn Which sessions are the heavy hitters (and which crossed the p95 runaway threshold)?
Session spend distribution What does a typical session cost vs. how bad does it get?
Activity category What kind of work — coding, debugging, exploration, …?

cc-ledger pr-cost

Pure-local cost-per-PR view. Recomputes the rollup against the live data and prints a table. --json for machine output, --all for every PR ever seen in the cwd, --recompute to force a fresh recompute.

cc-ledger auth and cc-ledger sync

Login is a WorkOS device-authorization flow — opens your browser, polls for the token, writes ~/.cc-ledger/auth.json (mode 0600). After login:

  • cc-ledger sync pushes the aggregates listed above. Cursor-based and idempotent on the server, so it's safe to re-run.
  • cc-ledger sync --dry-run shows what would upload without sending.
  • cc-ledger sync --reset-cursor clears the local cursor — useful after switching orgs or for a fresh laptop.
  • A SessionEnd hook automatically forks a silent background sync so the dashboard stays close-to-live.
  • cc-ledger auth status shows the active org and access-token expiry; cc-ledger auth logout deletes the token file.

Cost computation

Every assistant turn computes API-equivalent USD cost from raw token counts and the active pricing table.

  • Five token classes per turn: input, output, cache_read (0.10× input), cache_write_5m (1.25× input), cache_write_1h (2× input).
  • Service-tier modifier: batch → ×0.5; standard / priority pass through.
  • Pricing source order: $CC_LEDGER_PRICING~/.cc-ledger/pricing.toml → embedded snapshot.
  • Each turn stores the pricing version it used so historical numbers stay interpretable when prices change.

For subscription users (Pro / Max / Team / Enterprise) the cost field reads "what this would cost on API" — useful as shadow billing. Set CC_LEDGER_BILLING=pro (or api / max / team / enterprise) to stamp the session accordingly.

The embedded pricing snapshot is verified against platform.claude.com/docs/en/about-claude/pricing and covers Opus 4.7 / 4.6 / 4.5 / 4.1 / 4, Sonnet 4.6 / 4.5 / 4 / 3.7, Haiku 4.5 / 3.5, plus legacy Opus 3 / Haiku 3.

Configuration

All optional — defaults work for the common case.

Env var Effect
CC_LEDGER_HOME Override ~/.cc-ledger/ (tests, sandboxes)
CC_LEDGER_PRICING Path to a pricing TOML override
CC_LEDGER_BILLING api | pro | max | team | enterprise
CC_LEDGER_AUDIT 1 archives every raw hook payload to <home>/audit/ for forensics
CC_LEDGER_NO_AUTOSYNC 1 disables the opportunistic background sync
CC_LEDGER_AUTO_UPDATE 1 makes every user-facing invocation behave as if --update was passed
CC_LEDGER_NO_UPDATE_CHECK 1 suppresses the post-command "new version available" banner
CC_LEDGER_API_BASE Override the cloud API base (testing against a local backend)
CLAUDE_CONFIG_DIR Where Claude Code's settings.json lives

Build from source

cargo build --release
./target/release/cc-ledger install

Toolchain is pinned to Rust 1.85 via rust-toolchain.tomlrustup installs it automatically the first time.

License

MIT.