Native macOS · Built for agentic developmentOpen source · Native macOS · Built for agentic development
Observability that never leaves your Mac.
Loggerhead is a Mac app that watches the software you run on your machine. It collects the logs, numbers, and request traces your app produces and shows them in one clear window. Your AI coding tool can read the same data. Nothing leaves your Mac.
- macOS 14 or later
- Apple silicon and Intel
- Notarised, free to start
- 14:02:1114:02:11.204ERRORcheckoutpayment provider timeout after 3000ms (trace 7f3a…c1)
- 14:02:1114:02:11.198WARNpaymentsretrying charge: attempt 2/3 for order #48213
- 14:02:1014:02:10.977INFOgatewayPOST /api/checkout 200 in 412ms
- 14:02:1014:02:10.931INFOinventoryreserved 2 units of SKU-9931 for cart c_18f2
- 14:02:1014:02:10.880DEBUGcheckoutloaded cart c_18f2 with 3 items
- 14:02:1014:02:10.412INFOauthsession refreshed for user u_2291
- 14:02:0914:02:09.760WARNinventorystock for SKU-1102 below threshold (4 left)
- 14:02:0914:02:09.301INFOgatewayGET /api/cart/c_18f2 200 in 38ms
- 14:02:0814:02:08.115FATALpaymentsconnection pool exhausted, restarting worker
- 14:02:0714:02:07.902INFOgatewayPOST /api/login 200 in 91ms
- 14:02:0714:02:07.455DEBUGauthtoken verified (kid=2024-09)
Three signals, one window
Logs, metrics, and traces that already know each other.
Click a log line and jump to its trace. Click a span and see the logs it emitted. One local store keeps every signal in the same time base, so you stop stitching tabs together.
Logs that stream, not scroll
Severity tints, service colours, and a query bar that understands attributes. Filter live, pause the stream, and pin what matters.
Metrics with a memory
Counters, gauges, and histograms land in DuckDB. Pick any window, see the trend, and compare services without an exporter in the middle.
Traces you can actually read
A waterfall per request, spans grouped by service, and the slow one highlighted. Jump from a span to the logs it produced in one click.
Built for agentic development
Give your coding agent eyes on the running app.
AI coding tools guess when they cannot see. Loggerhead gives them a window into your running app through MCP, an open standard those tools already speak. The tool reads what your app actually did, then fixes the real problem.
- Search logs and traces by service, severity, attribute, or trace ID
- Aggregate metrics over any window without a query language
- Local only. The MCP server talks to the backend on 127.0.0.1
- One click to connect Claude Code, Cursor, Codex, or Windsurf
WORKS WITH
- Claude Code
- Cursor
- Codex
- Windsurf
- Any MCP client
>checkout is returning 500s locally. why?
loggerhead.search_logs { service: "checkout", severity: ">=ERROR", window: "15m" }
3 results · trace 7f3a…c1 in 2 of 3
loggerhead.get_trace { traceId: "7f3a…c1" }
9 spans · payments → provider.charge 3,004 ms (timeout)
The 500 comes from payments. The call to provider.charge waits 3,004 ms and hits the 3 s client timeout in payments/client.go:41. The retry then double-charges. I will raise the timeout to 8 s and make the retry idempotent.
payments/client.go
- Timeout: 3 * time.Second,
+ Timeout: 8 * time.Second,
>█
WORKS WITH
- Claude Code
- Cursor
- Codex
- Windsurf
- Any MCP client
One root, many branches
Push telemetry in, or let Loggerhead pull it.
The app runs the root receiver on localhost. Docker, Kubernetes, another Mac, or your app's SDK pushes into it as a branch. Loggerhead can also scrape a URL on a schedule, so tools that only expose metrics still show up. Every source gets an ID, so you always know where a record came from.
- Docker hostotel/opentelemetry-collector-contribOTLP
- Kubernetesk8s receivers on a branchOTLP
- Another Macotel-cli or a branch collectorOTLP
- Your app's SDKOTLP exporter, straight to the rootOTLP
- Scrape a URLPrometheus /metrics, polled every 15 sPULL
- gRPC
- 127.0.0.1:14317
- HTTP
- 127.0.0.1:14318
- Auth
- none needed, loopback bind
Listens on127.0.0.1 · port picked for you
collector.id = docker-mac
- HIGHNoisy logs
Noisy logscheckout
checkout writes 412 DEBUG lines a minute for cart loads. That is 71% of your log volume.
- HIGHSensitive data
Sensitive dataauth
The user field in auth logs holds an email address in plain text.
- MEDHigh-cardinality label
High-cardinality labelgateway
http.route on gateway has 9,812 values. Use the route template, not the raw path.
- MEDMissing trace context
Missing trace contextpayments
payments errors carry no trace ID, so they cannot link to the request that failed.
Telemetry linting
Lint your telemetry before production sends you the bill.
Most apps log too much and measure the wrong things. Loggerhead reads what your app emits and points at the junk: noisy debug lines, labels with thousands of values, secrets in plain text, and errors that lost their trace. Fix each one with a click, here on your Mac. Then send only the telemetry that earns its keep.
- Cut the noiseDrop and sample the lines nobody reads. Keep the ones that explain a failure.
- Catch secrets earlyEmails, tokens, and card numbers get flagged before they reach anyone's logs.
- Keep traces wholeEvery error links to the request that caused it. No more orphan logs.
- Spend less laterA lean signal set is cheaper to ship, store, and search on any platform you move to.
Made for the person who runs the app
A development environment for how your code behaves.
Loggerhead is not a production observability platform, and does not want to be. It is the window you keep open next to your editor while you build, test, and stage.
Solo developers
One binary, one window, zero infra. See what your side project actually does before you ship it.
- Runs with your app, not next to a cluster
- Nothing to host, nothing to pay per GB
- Query a week of local traffic in milliseconds
Staging and preview
Point a staging cluster at your Mac over a tunnel and get a full picture of a release before it goes live.
- Branch collectors for Docker and Kubernetes
- Per-collector attribution on every record
- Alerts and improvement hints on real traffic
Agent-first workflows
Give Claude Code or Cursor the same view you have. The agent reads logs and traces over MCP, then acts on facts.
- MCP server included, one click to add
- Search, aggregate, and trace lookups as tools
- Local only, so the agent never sees prod
Honest scope: DuckDB on one Mac. Great for local and staging traffic. Keep your production platform for production.
Up in three steps
From download to your first insight in under two minutes.
Install the app
Download, open, and drag Loggerhead to Applications. It starts its own engine. There is nothing else to set up.
Choose what to watch
Inside Loggerhead, pick a source: an app on this Mac, Docker, Kubernetes, or a URL to scrape. Loggerhead picks a free port for you.
Connect your AI coding tool
Pick the tool you use and click once. It can then read what your app did and fix real problems.
Add Loggerhead to Claude CodeWorks with any tool that supports MCP.
Buy once, keep it
One licence. No seats, no ingest bill, no renewal.
Free
$0forever
Everything a solo developer needs to see one app on one Mac.
- Logs, metrics, and traces
- Root receiver and one branch collector
- MCP server for your coding agent
- Community support on GitHub
Pro
$79one-time · per Mac
For staging traffic, many collectors, and the alerting that catches a bad release.
- Everything in Free
- Unlimited branch collectors
- Telemetry linting with one-click fixes
- Alerts, native notifications, and menu bar status
- A year of updates, then keep the version you have