From hex-pack
Manages Hex project runs, schedules via API/UI/external cron, and admin API for users, groups, data connections.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin hex-packThis skill is limited to using the following tools:
Configure scheduled runs and manage workspace resources via the Hex Admin API. Scheduled runs execute projects on cron-based intervals. The Admin API manages users, groups, and data connections.
Triggers and polls Hex project runs via API using TypeScript, with helpers for parameters, timeouts, errors, and multi-step data pipelines. For external orchestration like Airflow or cron.
Implements durable multi-step workflows on Cloudflare Workers with retries, state persistence, sleeps, event waiting, and NonRetryableError handling. Use for long-running tasks.
Manages n8n workflows via REST API: lists/activates/deactivates workflows, checks/monitors executions, triggers manually, debugs issues. For n8n automation tasks.
Share bugs, ideas, or general feedback.
Configure scheduled runs and manage workspace resources via the Hex Admin API. Scheduled runs execute projects on cron-based intervals. The Admin API manages users, groups, and data connections.
const TOKEN = process.env.HEX_API_TOKEN!;
const BASE = 'https://app.hex.tech/api/v1';
async function getProjectRuns(projectId: string) {
const response = await fetch(`${BASE}/project/${projectId}/runs`, {
headers: { 'Authorization': `Bearer ${TOKEN}` },
});
const runs = await response.json();
for (const run of runs) {
console.log(`${run.runId}: ${run.status} (${run.startTime} → ${run.endTime || 'running'})`);
}
return runs;
}
Schedules are configured in the Hex UI. For API-based scheduling, use external cron:
// cron-trigger.ts — run via cron job or CI
import cron from 'node-cron';
// Daily at 6 AM UTC
cron.schedule('0 6 * * *', async () => {
console.log('Triggering daily report...');
await triggerRun({
projectId: 'daily-report-project-id',
inputParams: { date: new Date().toISOString().split('T')[0] },
updateCache: true,
});
});
// Weekly on Monday at 9 AM
cron.schedule('0 9 * * 1', async () => {
await triggerRun({ projectId: 'weekly-summary-project-id' });
});
// List workspace users
async function listUsers() {
const response = await fetch(`${BASE}/workspace/users`, {
headers: { 'Authorization': `Bearer ${TOKEN}` },
});
return response.json();
}
// List groups
async function listGroups() {
const response = await fetch(`${BASE}/workspace/groups`, {
headers: { 'Authorization': `Bearer ${TOKEN}` },
});
return response.json();
}
// List configured data connections
async function listConnections() {
const response = await fetch(`${BASE}/workspace/connections`, {
headers: { 'Authorization': `Bearer ${TOKEN}` },
});
return response.json();
}
| Method | Intervals | Plan Required |
|---|---|---|
| Hex UI | Hourly, daily, weekly, monthly | Team+ |
| Hex UI (cron) | Any cron expression | Team+ |
| API trigger + external cron | Any schedule | Team+ |
| Airflow/Dagster integration | Any schedule | Team+ |
For common errors, see hex-common-errors.