Guides a user through collecting the credentials needed to deploy their own copy of Open Harness, deploying this repo on Vercel, and completing first-run setup. Use for requests about deploying, self-hosting, configuring credentials, or getting started with a fork of this app.
npx skills add https://github.com/vercel-labs/open-agents --skill deploy-open-harness
You are helping a user deploy their own copy of Open Harness.
Base your guidance on the current codebase, not on older Harness-era setup assumptions.
Before giving deployment advice, read these files if you have not already:
README.mdapps/web/.env.exampleapps/web/lib/db/client.tsapps/web/lib/jwe/encrypt.tsapps/web/lib/crypto.tsapps/web/app/api/auth/signin/vercel/route.tsapps/web/app/api/auth/vercel/callback/route.tsapps/web/app/api/github/app/install/route.tsapps/web/app/api/github/app/callback/route.tsapps/web/lib/github/app-auth.tsapps/web/lib/redis.tsapps/web/lib/sandbox/config.tsIf the code and the docs disagree, trust the code and say so.
Do not rely on scripts/setup.sh.
Help the user:
Start by determining which path the user wants:
A working hosted app where the user can deploy it, sign in with Vercel, and use the product without GitHub repo access.
Everything in the minimal deploy, plus GitHub account linking, GitHub App installation, private repo access, pushes, and PR creation.
If the user is unsure, recommend minimal deploy first, then layer on GitHub.
Use this checklist when guiding the user.
POSTGRES_URLJWE_SECRETENCRYPTION_KEYNEXT_PUBLIC_VERCEL_APP_CLIENT_IDVERCEL_APP_CLIENT_SECRETNEXT_PUBLIC_GITHUB_CLIENT_IDGITHUB_CLIENT_SECRETGITHUB_APP_IDGITHUB_APP_PRIVATE_KEYNEXT_PUBLIC_GITHUB_APP_SLUGGITHUB_WEBHOOK_SECRETREDIS_URL or KV_URLVERCEL_PROJECT_PRODUCTION_URLNEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URLVERCEL_SANDBOX_BASE_SNAPSHOT_IDELEVENLABS_API_KEYTell the user to create a Postgres database and copy the connection string into POSTGRES_URL.
Explain that this is required for session encryption.
Recommended generation command:
openssl rand -base64 32 | tr '+/' '-_' | tr -d '=\n'
Explain that provider tokens are encrypted at rest and the value must be a 64-character hex string.
Recommended generation command:
openssl rand -hex 32
Tell the user to create a Vercel OAuth app and set:
https://YOUR_DOMAIN/api/auth/vercel/callbackhttp://localhost:3000/api/auth/vercel/callbackStore the credentials as:
NEXT_PUBLIC_VERCEL_APP_CLIENT_IDVERCEL_APP_CLIENT_SECRETTell the user they do not need a separate GitHub OAuth app. Open Harness uses the GitHub App's user authorization flow.
Tell the user to create a GitHub App and set:
https://YOUR_DOMAINhttps://YOUR_DOMAIN/api/github/app/callbackhttps://YOUR_DOMAIN/api/github/app/callbackhttp://localhost:3000, callback/setup http://localhost:3000/api/github/app/callbackAlso tell them to:
NEXT_PUBLIC_GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRETStore the values as:
NEXT_PUBLIC_GITHUB_CLIENT_IDGITHUB_CLIENT_SECRETGITHUB_APP_IDGITHUB_APP_PRIVATE_KEYNEXT_PUBLIC_GITHUB_APP_SLUGGITHUB_WEBHOOK_SECRETMention that GITHUB_APP_PRIVATE_KEY can be stored either as PEM contents with escaped newlines or as a base64-encoded PEM.
Explain that Redis is optional. It improves resumable streams, stop signaling, and caching, but it is not required for the first deploy.
Guide the user through this sequence:
POSTGRES_URLJWE_SECRETENCRYPTION_KEYNEXT_PUBLIC_VERCEL_APP_CLIENT_ID and VERCEL_APP_CLIENT_SECRET.If the user already has a custom domain ready, it is fine to use that domain from the start instead of the default vercel.app production URL.
For a minimal deploy, walk the user through:
For the full deploy, also verify:
If something fails, identify the missing credential or callback mismatch instead of giving generic advice.
When helping a user, prefer this structure:
Be concise. Keep the user moving toward the next unblocker.
Assess Kubernetes workloads and cluster configuration for AKS Automatic compatibility. Identifies incompatibilities, generates fixes, and guides migration from AKS Standard to AKS Automatic. WHEN: migrate to AKS Automatic, check AKS Automatic readiness, validate manifests for Automatic, assess cluster for Automatic compatibility, fix deployment for Automatic compatibility, identify AKS Automatic migration blockers, is my cluster ready for AKS Automatic.
Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.
Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).
Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent/create), project creation (use project/create).
Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).
This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.
Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
Take vercel-labs/deploy-open-harness from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.