v1.3.3

June 2026 Update

LogStitch is now available as a direct download outside the Mac App Store — a 14-day free trial that keeps working offline, a one-time perpetual license, and built-in automatic updates.

Direct download

  • Download LogStitch directly from logstitch.app with a 14-day free trial that keeps working offline after the first launch — no Mac App Store required

One-time license

  • Unlock with a one-time license — Personal ($49) covers up to 3 Macs, Commercial ($99) up to 5. Activate by pasting your key or clicking the link in your purchase email, and use Deactivate This Mac to free a seat when you move to a new machine

Automatic updates

  • The direct build keeps itself current — new releases install automatically, with a Check for Updates… menu item to check on demand
Permalink: #v1-3-3 Requires: macOS 26.1+ · Intel & Apple Silicon

v1.3.2

June 2026 Update

Sharper pattern detection — stack traces from JSON-logging functions are now recognized, and pattern sets stay consistent for Lambdas that appear under more than one AWS profile.

Pattern detection

  • Functions whose structured loggers emit the stack as a JSON array now have their stack traces extracted and grouped, instead of being reported as "no stack trace" despite carrying a valid trace
  • Running pattern detection on a Lambda that exists under multiple AWS profiles now resolves to one consistent function record, so you no longer see duplicate pattern sets split across profiles
Permalink: #v1-3-2 Requires: macOS 26.1+ · Intel & Apple Silicon

v1.3.1

June 2026 Update

LogStitch now tells the difference between errors that crashed your function and errors it handled and logged — surfaced across the function list, Overview, and details — plus a more reliable MCP connection that no longer stalls on long syncs, and a round of fixes.

Errors you can trust

  • The function list, Overview, and function details now split a function's errors into uncaught failures (the function crashed) and caught application errors (handled and logged). CloudWatch only ever reported the uncaught ones, so a function whose errors were all handled used to show a clean health dot while hundreds of real errors sat invisible — the health dot now keys on the uncaught rate, so "noisy but working" reads yellow and "actually down" reads red
  • A new Error Class filter (Uncaught / Caught / Unclassified) narrows the invocation list to exactly the kind of error you're chasing, and the selection is remembered in saved filter presets
  • Throttled invocations now appear as their own amber chip on each function row, separate from the error badge — infrastructure rejections are no longer mistaken for application errors

MCP

  • The MCP server moved to the stateless Streamable HTTP transport, so long-running sync_function calls no longer stall when the connection goes idle mid-fetch — results return on the same connection with keep-alive heartbeats while the work runs. Existing type: sse configs must re-copy the connection snippet as type: http
  • get_function_stats and get_errors now expose the same caught vs. uncaught breakdown, so Claude can reason about whether a function is failing or just chatty

Reliability

  • The error-level log filter no longer shows an empty list on the first click
  • Per-row tooltips are back
  • Operational-status filters now apply correctly
  • The Functions sidebar section now stays visible
Permalink: #v1-3-1 Requires: macOS 26.1+ · Intel & Apple Silicon

v1.3

June 2026 Update

CloudWatch is now the live source for the numbers you see first — Overview cards and function-list counts paint within ~500ms instead of waiting on local ingestion — plus staleness chips that tell you when local data has fallen behind, and freshness metadata on the MCP tools.

Live metrics from CloudWatch

  • The Overview tab now paints from CloudWatch within ~500ms instead of waiting for the local invocation table to fill — Duration Trend, Error Rate, Projected Cost, Invocation Volume, and Cold Starts all draw from CloudWatch first, with local data filling in only what CloudWatch can't derive
  • Function-list rows now show live invocation counts, error counts, and a health dot from CloudWatch over the last 7 days, replacing the all-time local aggregates that went stale the moment background sync paused — the most errors and most data sort orders use the live numbers too

Know when your data is stale

  • A staleness chip now appears on the Overview tab and every drilldown — Duration, Cold Starts, Memory, Cost, Error Rate, and Invocation Volume — whenever the local data behind a card lags the window you're viewing; tap it to sync the last 7 days and it clears itself when the fetch finishes
  • Selecting a function from the list now auto-syncs it when its data is stale, so the cards have usually caught up by the time you land on the Overview tab — a per-function cooldown keeps rapid clicks from burning CloudWatch quota

MCP

  • list_functions now reports live 7-day invocation and error counts plus health from CloudWatch, merged with your local data, and tags each function with its data_source (cloudwatch_live, local_sqlite, or hybrid) — pass skip_live to bypass the AWS call
  • list_functions and get_function_stats now include freshness metadata — how much local history actually backs the numbers — so Claude can reason about how complete an answer is
Permalink: #v1-3 Requires: macOS 26.1+ · Intel & Apple Silicon

v1.2

June 2026 Update

Syncs that survive navigation — on-demand fetches now run independently of the screen that started them and stream new invocations into the list live — plus a cluster of background-sync reliability fixes.

Syncs that survive navigation

  • On-demand log syncs now run independently of the screen that started them — navigate away from the Invocations tab or switch to another function and the fetch keeps running, then picks up exactly where it left off when you come back
  • Newly synced invocations appear in the list as each page lands — whether from an on-demand or background sync — without resetting your scroll position or dropping the invocation you had selected; counts and sparklines tick up live
  • Cancelling a sync now keeps every page already fetched instead of discarding the whole run, so the next sync resumes from where you stopped rather than re-fetching from scratch

Reliability

  • Background and on-demand syncs no longer fetch the same function at the same time — background defers to an in-flight on-demand sync and resumes on a later cycle
  • Fixed background sync silently stalling on actively-running functions — showing "0 events" cycle after cycle — when AWS's reported stream timestamps lagged behind freshly ingested events
  • Background sync now honors your configured interval after a catch-up finishes, instead of immediately re-firing a redundant cycle
  • A sync that fails mid-flight (e.g. a dropped connection) now clears its spinner and surfaces the error, instead of spinning forever and blocking every later sync with "already in progress"

MCP

  • The Claude Integration settings now list every available MCP tool, so you can see what Claude Code can do before enabling the local server
Permalink: #v1-2 Requires: macOS 26.1+ · Intel & Apple Silicon

v1.1

June 2026 Update

Async-retry awareness, smarter correlation, and faster drill-downs from charts into the invocations that drive them.

Async retries are now first-class

  • Lambda async invocations (EventBridge, SNS, S3, etc.) retry failed attempts and reuse the same request ID — previously each retry quietly overwrote the earlier one and its logs, so a failure followed by a successful retry looked like a plain success
  • Every attempt is now persisted as a distinct invocation, with its own status, duration, and full log lines
  • A compact retry marker on every multi-attempt invocation in the list, mirroring the cold-start indicator
  • Click the Attempt N/M badge in the detail view to jump between sibling attempts, with status and duration shown per attempt
  • MCP get_invocation_logs returns every attempt's logs, with cumulative size budgeting so high-retry requests never blow the response

Smarter correlation across profiles

  • The same execution synced under two LogStitch profiles no longer appears "correlated" with a duplicate of itself — correlated views collapse rows by logical identity (function, region, request ID, timestamp)
  • Two new filters in the Invocations popover: Correlation (All / Correlated / Standalone) and Attempts (All / Multiple / Single)
  • The correlated-invocations popover now anchors correctly to its button and no longer clips the "View in Timeline" action

Faster drill-downs from charts

  • View Invocations shortcut on the Error Rate and Cold Starts cards (and their full-size views) opens the Invocations list pre-filtered to exactly the rows the chart represents, in the same time window
  • Opening a larger graph from an Overview card carries the Overview tab's selected window with it, instead of resetting to each report's default
  • Opening a report from the Invocations tab's Analytics Reports popover scopes it to the time range you're already looking at

Reliability

  • Patterns tab no longer falsely marks every pattern as Resolved after a large sync backlog — the incremental refresh now drains the full backlog before classifying lifecycle
  • Inline guidance on the SSO profile screens explaining the IPv4-only access portal URL vs. the Dual-stack URL, so the first sign-in doesn't fail on a confusing OIDC error
Permalink: #v1-1 Requires: macOS 26.1+ · Intel & Apple Silicon

v1.0

May 2026 Initial release

The first public release of LogStitch — a native macOS app that reads CloudWatch logs, groups them into AWS Lambda invocations by request ID, and runs entirely on your machine.

Stitching engine

  • Groups CloudWatch log lines into AWS Lambda invocations by request ID
  • Cold-start detection, init duration, and billed duration surfaced inline on every invocation
  • Auto-parses JSON log lines into a navigable, collapsible tree

Cross-account & cross-region

  • Unlimited AWS profiles via the standard ~/.aws/config, including SSO and IAM role assumption
  • Correlates a single request across functions, accounts, and regions
  • No additional CloudWatch cross-account observability setup required

Pattern & anomaly detection

  • Auto-clusters similar error messages into named patterns (e.g. Unhandled exception · 500 · userId={userId})
  • Tracks pattern frequency, first-seen, last-seen, and runtime impact
  • Z-score anomaly scoring on duration, error rate, cold-start rate, and projected cost

Cost & performance analytics

  • Per-function memory, duration p50/p95/p99, error rate, and cost trends
  • Cost projection and memory-tuning suggestions
  • 24h, 7d, and 30d windows — re-query for free after the initial fetch (no per-scan CloudWatch charges)

MCP server for Claude & AI tools

  • Local Model Context Protocol server bound to 127.0.0.1 only (configurable port, default 47821) — never exposed to the network
  • Works with Claude Code and any MCP-aware client that can reach a local server. Claude Desktop is not supported because its custom connectors route through Anthropic's servers.
  • 20+ tools: search_logs, get_invocation_logs, get_patterns_summary, get_cost_projection, get_correlated_invocations, run_pattern_detection, and more
  • Your AWS credentials never leave the macOS Keychain — the AI talks to LogStitch, not to AWS

Issue-tracker integrations

  • Link error patterns to Jira issues and GitHub issues/PRs
  • OAuth handled by auth.logstitch.app so no client secrets ship inside the app binary

Local-first privacy

  • All logs cached in a local SQLite database on your machine
  • No LogStitch cloud, no telemetry, no account required
  • Works offline after the initial fetch

Platform

  • Native macOS app built on AppKit
  • Universal binary — runs on Intel and Apple Silicon Macs, macOS 26.1 or later
  • Distributed via the Mac App Store
  • Free 14-day trial. $49 Personal for personal projects, $99 Business for commercial use at work. One-time purchase.
Permalink: #v1-0 Requires: macOS 26.1+ · Intel & Apple Silicon

Get LogStitch.

Free 14-day trial. No card, no account, no telemetry. Bring your AWS profiles and see your invocations stitched in under a minute.