From hex-pack
Applies Hex SDK patterns for TypeScript (retry, polling) and Python (hextoolkit client, Airflow operator) to run data projects reliably.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin hex-packThis skill is limited to using the following tools:
Production patterns for Hex API: typed client, pipeline orchestration, retry logic, and Python integration.
Provides Hex reference architecture with TypeScript project layouts, API client patterns, orchestration via Airflow/Dagster/GitHub Actions, and integration setups for data pipelines.
Creates, debugs, and modifies TypeScript data integration workflows using versori-run SDK for ETL, API integrations, pipelines, database sync, webhooks, file processing, and real-time streaming.
Provides integration patterns for Hamilton dataflows with Airflow, Dagster, FastAPI, Streamlit, Jupyter notebooks, Flask, and more. Use for orchestration, APIs, dashboards, and experiment tracking.
Share bugs, ideas, or general feedback.
Production patterns for Hex API: typed client, pipeline orchestration, retry logic, and Python integration.
async function runWithRetry(client: HexClient, projectId: string, params: Record<string, any>, maxRetries = 2) {
for (let i = 0; i <= maxRetries; i++) {
try {
const { runId } = await client.runProject(projectId, params);
const result = await pollUntilComplete(client, projectId, runId);
return result;
} catch (err: any) {
if (i === maxRetries || !err.message.includes('429')) throw err;
await new Promise(r => setTimeout(r, 30000)); // Wait 30s on rate limit
}
}
}
# pip install hextoolkit
from hextoolkit import HexAPI
hex_api = HexAPI(token=os.environ['HEX_API_TOKEN'])
# List projects
projects = hex_api.list_projects()
# Run project
run = hex_api.run_project('project-id', input_params={'date': '2025-01-01'})
# Poll for completion
status = hex_api.get_run_status('project-id', run['runId'])
# Using the hex-inc/airflow-provider-hex package
from airflow_provider_hex.operators.hex import HexRunProjectOperator
run_task = HexRunProjectOperator(
task_id='run_hex_project',
project_id='your-project-id',
input_params={'date': '{{ ds }}'},
hex_conn_id='hex_default',
wait_for_completion=True,
timeout=600,
)
Apply patterns in hex-core-workflow-a.