Claude-code-plugins-plus-skills hex-webhooks-events
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/hex-pack/skills/hex-webhooks-events" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-hex-webhooks-events && rm -rf "$T"
manifest:
plugins/saas-packs/hex-pack/skills/hex-webhooks-events/SKILL.mdsource content
Hex Webhooks & Events
Overview
Hex doesn't provide push webhooks. For event-driven integrations, poll run status or build your own notification system around run completions.
Instructions
Run Status Polling with Callback
async function runWithCallback( client: HexClient, projectId: string, params: Record<string, any>, onComplete: (result: any) => void, onError: (error: Error) => void ) { try { const { runId } = await client.runProject(projectId, params); const poll = async () => { const status = await client.getRunStatus(projectId, runId); if (status.status === 'COMPLETED') { onComplete(status); return; } if (status.status === 'ERRORED' || status.status === 'KILLED') { onError(new Error(status.status)); return; } setTimeout(poll, 5000); }; poll(); } catch (err) { onError(err as Error); } }
Notify on Completion
runWithCallback(client, 'project-id', { date: '2025-01-01' }, (result) => { // Send Slack notification, email, etc. fetch(process.env.SLACK_WEBHOOK_URL!, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ text: `Hex project completed: ${result.runId}` }), }); }, (error) => console.error('Run failed:', error) );