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
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
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
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
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
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
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.