Hot-outreach fetch-deployment-logs
Fetch and analyze deployment logs for the current Repl. Use when the user's published/deployed app isn't working, the live site is down or showing errors, or they ask to check production logs. Covers requests like "my app isn't loading", "my site is broken after publishing", "why isn't my deployed app working", or "check what's happening in production".
install
source · Clone the upstream repo
git clone https://github.com/ItsJupiter000/hot-outreach
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ItsJupiter000/hot-outreach "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.local/skills/fetch-deployment-logs" ~/.claude/skills/itsjupiter000-hot-outreach-fetch-deployment-logs && rm -rf "$T"
manifest:
.local/skills/fetch-deployment-logs/SKILL.mdsource content
Deployment Logs Skill
Fetch and analyze deployment logs to debug issues and monitor your deployed application.
When to Use
Use this skill when the user:
- Reports that their deployed application is not working correctly
- Wants to see what errors are occurring in production
- Needs to debug a deployment failure or runtime issue
- Asks to check deployment or server logs
- Wants to monitor application behavior after deployment
How to Use
In the JavaScript notebook, call the
fetchDeploymentLogs function:
const result = await fetchDeploymentLogs({ afterTimestamp: (Date.now() - 3600 * 1000), // Last hour message: "ERROR" }); if (result.found) { console.log(result.logs); } else { console.log("No deployment logs found."); }
Parameters
(float, optional): Only include logs after this Unix timestamp (milliseconds)afterTimestamp
(float, optional): Only include logs before this Unix timestamp (milliseconds)beforeTimestamp
(str, optional): RE2 regular expression to filter logs by message contentmessage
(dict, optional): Context configuration for regex matches with:messageContext
(int, required): Number of lines before/after each match (0-100)lines
(int, required): Max matches to fetch context for (1-10)limit
Return Value
Returns a dictionary with:
: String containing the formatted deployment logs (empty string if none found)logs
: Boolean indicating whether any logs were foundfound
: Optional message when no logs are foundmessage
Best Practices
- Start broad, then filter: First fetch logs without filters to understand what's available, then use
regex to narrow downmessage - Use timestamps for recent issues: If the user reports a recent issue, use
to focus on recent logsafterTimestamp - Filter by log level: Use message regex like
or"ERROR"
to find problematic entries"WARN" - Look for patterns: Search for specific error messages, stack traces, or module names
- Use context for debugging: When investigating specific errors, use
to see surrounding log lines (similar tomessageContext
)grep -C
Examples
Fetch All Recent Logs
const result = await fetchDeploymentLogs(); console.log(result.logs);
Fetch Logs from Last Hour
const oneHourAgo = Date.now() - 3600 * 1000; // Convert to milliseconds const result = await fetchDeploymentLogs({ afterTimestamp: oneHourAgo }); if (result.found) { console.log(result.logs); }
Find Error Logs
const result = await fetchDeploymentLogs({ message: "ERROR" }); if (result.found) { console.log(result.logs); } else { console.log("No error logs found"); }
Find Database-Related Errors
const result = await fetchDeploymentLogs({ message: "(?i)(database|postgres|mysql|mongo|connection.*refused)" }); console.log(result.logs);
Find Startup Failures
const result = await fetchDeploymentLogs({ message: "(?i)(failed|crash|exception|traceback)" }); console.log(result.logs);
Find Errors with Context Lines
// Get 10 lines of context before/after each error (up to 3 matches) const result = await fetchDeploymentLogs({ message: "ERROR", messageContext: { lines: 10, limit: 3 } }); if (result.found) { console.log(result.logs); }
Combined Time and Pattern Filter
// Get logs from the last 30 minutes containing errors const thirtyMinAgo = Date.now() - 1800 * 1000; const result = await fetchDeploymentLogs({ afterTimestamp: thirtyMinAgo, message: "(?i)(error|exception|failed)" }); if (result.found) { console.log(result.logs); } else { console.log("No matching logs in the last 30 minutes"); }
Common Log Patterns to Search For
- Any errors:
"ERROR" - Warnings and errors:
"(WARN|ERROR)" - Database issues:
"(?i)database|postgres|mysql|connection" - Network errors:
"(?i)timeout|refused|unreachable" - Authentication:
"(?i)auth|token|unauthorized|forbidden" - Memory issues:
"(?i)memory|heap|oom|killed" - Import/module errors:
"(?i)import|module|cannot find"
Troubleshooting Tips
- No logs returned: The deployment may not have run recently, or there may be no logs matching your filter
- Too many logs: Use the
parameter to filter, or narrow the time rangemessage - Looking for specific errors: Use case-insensitive regex with
prefix(?i)