From lindy-pack
Comprehensive debugging toolkit for Lindy AI agents. Use when investigating complex issues, collecting diagnostics, or preparing support tickets. Trigger with phrases like "lindy debug", "lindy diagnostics", "lindy support bundle", "investigate lindy issue".
How this skill is triggered — by the user, by Claude, or both
Slash command
/lindy-pack:lindy-debug-bundleThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive debugging toolkit for collecting diagnostics and resolving issues.
Comprehensive debugging toolkit for collecting diagnostics and resolving issues.
#!/bin/bash
echo "=== Lindy Debug Bundle ==="
echo "Date: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "Node: $(node -v)"
echo "npm: $(npm -v)"
echo ""
echo "=== SDK Version ==="
npm list @lindy-ai/sdk 2>/dev/null || echo "SDK not found"
echo ""
echo "=== Environment ==="
echo "LINDY_API_KEY: ${LINDY_API_KEY:+[SET]}"
echo "LINDY_ENVIRONMENT: ${LINDY_ENVIRONMENT:-[NOT SET]}"
echo ""
echo "=== API Connectivity ==="
curl -s -o /dev/null -w "Status: %{http_code}\nTime: %{time_total}s\n" \
-H "Authorization: Bearer $LINDY_API_KEY" \
https://api.lindy.ai/v1/users/me
echo ""
// debug/collect-agent-state.ts
import { Lindy } from '@lindy-ai/sdk';
async function collectAgentState(agentId: string) {
const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY });
const bundle = {
timestamp: new Date().toISOString(),
agent: await lindy.agents.get(agentId),
runs: await lindy.runs.list({ agentId, limit: 10 }),
automations: await lindy.automations.list({ agentId }),
};
return bundle;
}
// Export for support
const state = await collectAgentState(process.argv[2]);
console.log(JSON.stringify(state, null, 2));
async function analyzeRuns(agentId: string) {
const lindy = new Lindy({ apiKey: process.env.LINDY_API_KEY });
const runs = await lindy.runs.list({ agentId, limit: 50 });
const analysis = {
total: runs.length,
successful: runs.filter(r => r.status === 'completed').length,
failed: runs.filter(r => r.status === 'failed').length,
avgDuration: runs.reduce((a, r) => a + r.duration, 0) / runs.length,
recentErrors: runs
.filter(r => r.status === 'failed')
.slice(0, 5)
.map(r => ({ id: r.id, error: r.error })),
};
return analysis;
}
async function generateSupportBundle(agentId: string) {
const bundle = {
generated: new Date().toISOString(),
environment: {
node: process.version,
platform: process.platform,
sdk: require('@lindy-ai/sdk/package.json').version,
},
agent: await collectAgentState(agentId),
analysis: await analyzeRuns(agentId),
};
const filename = `lindy-debug-${Date.now()}.json`;
fs.writeFileSync(filename, JSON.stringify(bundle, null, 2));
console.log(`Bundle saved to: ${filename}`);
return filename;
}
| Issue | Diagnostic | Resolution |
|---|---|---|
| Auth fails | Check API key | Regenerate key |
| Timeout | Check network | Verify firewall |
| Agent missing | Check environment | Verify agent ID |
# One-liner health check
curl -s -H "Authorization: Bearer $LINDY_API_KEY" \
https://api.lindy.ai/v1/users/me | jq '.email'
#!/bin/bash
# save as lindy-debug.sh
echo "Collecting Lindy debug info..."
npx ts-node debug/collect-agent-state.ts $1 > debug-bundle.json
echo "Bundle saved to debug-bundle.json"
Proceed to lindy-rate-limits for rate limit management.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
9plugins reuse this skill
First indexed Jul 10, 2026
Showing the 6 earliest of 9 plugins
npx claudepluginhub jamon8888/claude-code-plugins-plus --plugin lindy-pack