Blog
How to Stop Silent Terminal Errors in Development Teams
Team dashboards stay green while CLIs die on laptops. Capture fatal local exits in the terminal, then share a draft instead of a screenshot.
2026-10-23 · 3 min read · AethelLayer
What you see
Standup is "it failed on my machine." Nobody has the command. CI is green. The API status page is green. The error lived in one terminal scrollback and scrolled away.
Root cause
Local CLIs are outside the server APM. Each developer has a different shell history, a different Docker limit, and a different .env. The team shares Slack screenshots, which drop the exit code and the lines above the error. There is no shared object for "this exact argv died this way."
A shared local log
aethel run tees stdout and stderr, classifies fatal exits, and appends one JSON record:
ERR_DOCKER_OOMfor exit 137ERR_API_DROPOUTfor connection reset, refused, and timeoutERR_MISSING_CONFIGwhen the message says the key or env is missingCLI_EXIT_Nfor everything else that exits non-zero
Exit 0 is not stored as a failure. The record is on disk so the next person, or an MCP client in Cursor, can read it without asking the developer to reproduce from memory.
Wire the team
bashnpx --yes @aethellayer/sdk initAgree on one wrapper in the README. Developers run:
bashnpx --yes @aethellayer/sdk run -- npm testThe draft link is the handoff. The author sends it, so the issue has an owner and the body is reviewable before it hits the tracker.
Keep reading
Capture the failure before they leave
Install the probe. It drafts the GitHub issue. You still send it.
npx --yes @aethellayer/sdk init