Skip to main content
algolia-debug-bundle Collect Algolia debug evidence: index stats, API key ACLs, query logs,
and network diagnostics for support tickets.
Trigger: "algolia debug", "algolia support bundle", "collect algolia logs",
"algolia diagnostic", "algolia troubleshoot".
跳到安装 Skills Marketplace 发现并探索由社区构建的 Agent Skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/jeremylongshore/claude-code-plugins-plus-skills --skill algolia-debug-bundle命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
下载 Zip 下载中... jeremylongshore
jeremylongshore/claude-code-plugins-plus-skills
打开 GitHub 仓库 name algolia-debug-bundle description Collect Algolia debug evidence: index stats, API key ACLs, query logs,
and network diagnostics for support tickets.
Trigger: "algolia debug", "algolia support bundle", "collect algolia logs",
"algolia diagnostic", "algolia troubleshoot".
allowed-tools Read, Bash(curl:*), Bash(npm:*), Bash(tar:*), Bash(jq:*), Grep version 1.6.0 license MIT author Jeremy Longshore <jeremy@intentsolutions.io> tags ["saas","search","algolia"] compatibility Designed for Claude Code
Algolia Debug Bundle
Overview
Collect all necessary diagnostic information for Algolia support tickets or internal troubleshooting. Uses real Algolia API endpoints to gather index stats, key permissions, and query performance data.
Prerequisites
ALGOLIA_APP_ID and ALGOLIA_ADMIN_KEY environment variables set
curl and jq available
Permission to read API key ACLs and index settings
Instructions
Step 1: Create the Debug Bundle Script
#!/bin/bash
set -euo pipefail
APP_ID="${ALGOLIA_APP_ID:?Set ALGOLIA_APP_ID} "
API_KEY="${ALGOLIA_ADMIN_KEY:?Set ALGOLIA_ADMIN_KEY} "
BUNDLE_DIR="algolia-debug-$(date +%Y%m%d-%H%M%S) "
BASE_URL="https://${APP_ID} -dsn.algolia.net"
HEADERS=(-H "X-Algolia-Application-Id: ${APP_ID} " -H "X-Algolia-API-Key: ${API_KEY} " )
mkdir -p "$BUNDLE_DIR "
echo "=== Algolia Debug Bundle ===" | tee "$BUNDLE_DIR /summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ) " | tee -a "$BUNDLE_DIR /summary.txt"
echo "App ID: $APP_ID " | tee -a "$BUNDLE_DIR /summary.txt"
echo "--- Indices ---" >> "$BUNDLE_DIR /summary.txt"
curl -s "${BASE_URL} /1/indexes" "${HEADERS[@]} " \
| jq '.items[] | {name, entries, dataSize, lastBuildTimeS}' \
> "$BUNDLE_DIR /indices.json" 2>/dev/null
echo "Indices saved" >>
>>
curl -s \
| jq \
> 2>/dev/null
>>
>>
curl -s \
| jq \
> 2>/dev/null
>>
>>
host ;
RESULT=$(curl -s -o /dev/null -w 2>/dev/null || )
>>
>>
node --version >> 2>/dev/null || >>
npm list algoliasearch 2>/dev/null >> || >>
>>
curl -s https://status.algolia.com/api/v2/status.json \
| jq -r >> 2>/dev/null
tar -czf
-rf
Step 2: Programmatic Debug Data Collection
import { algoliasearch } from 'algoliasearch' ;
async function collectDebugInfo ( ) {
const client = algoliasearch (
process.env .ALGOLIA_APP_ID !,
process.env .ALGOLIA_ADMIN_KEY !
);
const debug : Record <string , any > = {};
const { items } = await client.listIndices ();
debug.indices = items.map (i => ({
name : i.name ,
entries : i.entries ,
dataSize : i.dataSize ,
lastBuildTimeS : i.lastBuildTimeS ,
}));
const indexName = 'products' ;
try {
debug.settings = await client.getSettings ({ indexName });
} catch (e) {
debug.settings = `Failed: ${e} ` ;
}
const { logs } = await client.getLogs ({
indexName,
: ,
: ,
});
debug. = logs. ( ({
: l. ,
: l. ,
: l. ,
: l. ,
}));
{
keyInfo = client. ({
: process. . !,
});
debug. = keyInfo. ;
} (e) {
debug. = ;
}
debug;
}
Sensitive Data Handling
ALWAYS REDACT before sharing:
Full API keys (only share last 4 chars)
User PII in query logs
Internal hostnames or IPs
Safe to include:
App ID (it's in every frontend bundle)
Error codes and status codes
Index names and record counts
SDK and Node.js versions
Processing times and latencies
Error Handling
Issue Cause Solution getLogs returns emptyLogs retention is 7 days (Grow) or 30 days (Premium) Run sooner after incident getApiKey 403Non-admin key can only read its own info Use Admin key curl returns 000 DNS or firewall blocking Check outbound HTTPS to *.algolia.net No jq available Not installed apt install jq or parse JSON differently
Resources
Next Steps
For rate limit issues, see algolia-rate-limits.
"$BUNDLE_DIR /summary.txt"
echo
"--- API Key ACL ---"
"$BUNDLE_DIR /summary.txt"
"${BASE_URL} /1/keys"
"${HEADERS[@]} "
'.keys[] | {description, acl, indexes, maxQueriesPerIPPerHour, validity}'
"$BUNDLE_DIR /api-keys-acl.json"
echo
"Key ACLs saved (keys redacted)"
"$BUNDLE_DIR /summary.txt"
echo
"--- Query Logs ---"
"$BUNDLE_DIR /summary.txt"
"${BASE_URL} /1/logs?length=100&type=all"
"${HEADERS[@]} "
'.logs[] | {timestamp, method, url, answer_code, processing_time_ms, query_nb_hits}'
"$BUNDLE_DIR /query-logs.json"
echo
"Last 100 log entries saved"
"$BUNDLE_DIR /summary.txt"
echo
"--- Network Diagnostics ---"
"$BUNDLE_DIR /summary.txt"
for
in
"${APP_ID} -dsn.algolia.net"
"${APP_ID} -1.algolianet.com"
"${APP_ID} -2.algolianet.com"
do
"%{http_code},%{time_total}"
"https://${host} /1/indexes"
"${HEADERS[@]} "
echo
"FAILED"
echo
" ${host} : ${RESULT} "
"$BUNDLE_DIR /summary.txt"
done
echo
"--- Environment ---"
"$BUNDLE_DIR /summary.txt"
"$BUNDLE_DIR /summary.txt"
echo
"node: not found"
"$BUNDLE_DIR /summary.txt"
"$BUNDLE_DIR /summary.txt"
echo
"algoliasearch: not installed"
"$BUNDLE_DIR /summary.txt"
echo
"--- Algolia Status ---"
"$BUNDLE_DIR /summary.txt"
'.status.description'
"$BUNDLE_DIR /summary.txt"
"${BUNDLE_DIR} .tar.gz"
"$BUNDLE_DIR "
rm
"$BUNDLE_DIR "
echo
""
echo
"Bundle created: ${BUNDLE_DIR} .tar.gz"
length
50
type
'error'
recentErrors
map
l =>
timestamp
timestamp
method
method
answerCode
answer_code
processingTimeMs
processing_time_ms
try
const
await
getApiKey
key
env
ALGOLIA_ADMIN_KEY
currentKeyAcl
acl
catch
currentKeyAcl
'Unable to read key ACL'
return