Morphism Vercel Clerk Env Setup Commands
Morphism Vercel Clerk Env Setup Commands
Source: morphism-vercel-clerk-env-setup-commands.md (ingested 2026-03-28)
Here is the filled command sheet with what we have, what is pending, and what is blocked:
Vercel — Clerk (all 3 environments)
BLOCKED — Clerk verification code never received/entered. Once you complete that step and get the new keys, run:
# CLERK_SECRET_KEY
for env in production preview development; do
vercel env rm CLERK_SECRET_KEY $env --yes --scope alawein
printf '%s' 'PENDING_CLERK_SK_LIVE_VALUE' | vercel env add CLERK_SECRET_KEY $env --scope alawein
done
# NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
for env in production preview development; do
vercel env rm NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY $env --yes --scope alawein
printf '%s' 'PENDING_CLERK_PK_LIVE_VALUE' | vercel env add NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY $env --scope alawein
done
Status: Replace both placeholders once you paste the Clerk verification code and the new keys are generated.
Vercel — Sentry (all 3 environments)
READY — Token is confirmed. Run this now:
for env in production preview development; do
vercel env rm SENTRY_AUTH_TOKEN $env --yes --scope alawein
printf '%s' 'sntryu_b397959c2a0eca0bb6b8143a5eb3c837bfc5c6dd6c4fa086374c4' | vercel env add SENTRY_AUTH_TOKEN $env --scope alawein
done
GitHub Secrets — npm + Sentry
npm: PARTIALLY READY — Using existing token ending in ...Dp3B unless you want a new granular token generated. Replace the placeholder below with the full token value you already have:
printf '%s' 'YOUR_EXISTING_NPM_TOKEN_ENDING_Dp3B' | gh secret set NPM_TOKEN --repo morphism-systems/morphism
Sentry: READY — Run this now:
printf '%s' 'sntryu_b397959c2a0eca0bb6b8143a5eb3c837bfc5c6dd6c4fa086374c4' | gh secret set SENTRY_AUTH_TOKEN --repo morphism-systems/morphism
Local .env.local — Cloudflare + Pinecone
Pinecone: READY — Key is confirmed. Run this now:
printf '\nPINECONE_API_KEY=pcsk_15HHt_EhF5RYWSQFVnjzVNj4eJjwWv6QAakYxVSeQcZqpyH9CYS1Cooqf2Do9qaVC1gzq' >> .env.local
Cloudflare: BLOCKED — Login not completed. Once you confirm access, run:
printf '\nCLOUDFLARE_API_TOKEN=PENDING_CF_TOKEN' >> .env.local
Verify after running
# Confirm Vercel vars are set
vercel env ls --scope alawein
# Confirm GitHub secrets
gh secret list --repo morphism-systems/morphism
# Confirm local
grep -E 'CLOUDFLARE|PINECONE' .env.local
Summary of what is still missing before this is fully done:
| Item | Status | Blocker | |---|---|---| | Clerk SK + PK | BLOCKED | Need verification code sent to contact@meshal.ai | | npm token | PENDING | Paste your full existing token ending Dp3B | | Cloudflare token | BLOCKED | Need you to confirm login to Cloudflare | | Vercel storage cleanup | PENDING | Need your confirmation on which stores to delete | | Linear setup | BLOCKED | Need you to confirm login to Linear | | Snyk morphism-systems org | BLOCKED | Need GitHub org OAuth policy updated at github.com/organizations/morphism-systems/settings/oauth_application_policy |
Vercel — Clerk (all 3 environments)
CLERK_SECRET_KEY
for env in production preview development; do vercel env rm CLERK_SECRET_KEY $env --yes --scope alawein printf '%s' 'YOUR_SK_LIVE_VALUE' | vercel env add CLERK_SECRET_KEY $env --scope alawein done
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
for env in production preview development; do vercel env rm NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY $env --yes --scope alawein printf '%s' 'YOUR_PK_LIVE_VALUE' | vercel env add NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY $env --scope alawein done
Vercel — Sentry (all 3 environments)
for env in production preview development; do vercel env rm SENTRY_AUTH_TOKEN $env --yes --scope alawein printf '%s' 'sntryu_b397959c2a0eca0bb6b8143a5eb3c837bfc5c6dd6c4fa086374c4' | vercel env add SENTRY_AUTH_TOKEN $env --scope alawein done
GitHub Secrets — npm + Sentry
printf '%s' 'YOUR_NPM_TOKEN' | gh secret set NPM_TOKEN --repo morphism-systems/morphism printf '%s' 'sntryu_b397959c2a0eca0bb6b8143a5eb3c837bfc5c6dd6c4fa086374c4' | gh secret set SENTRY_AUTH_TOKEN --repo morphism-systems/morphism
Local .env.local — Cloudflare + Pinecone
Append to .env.local (run once each after generating new values)
printf '\nCLOUDFLARE_API_TOKEN=YOUR_CF_TOKEN' >> .env.local printf '\nPINECONE_API_KEY=pcsk_15HHt_EhF5RYWSQFVnjzVNj4eJjwWv6QAakYxVSeQcZqpyH9CYS1Cooqf2Do9qaVC1gzq' >> .env.local
Or open .env.local and set: CLOUDFLARE_API_TOKEN=YOUR_CF_TOKEN PINECONE_API_KEY=pcsk_15HHt_EhF5RYWSQFVnjzVNj4eJjwWv6QAakYxVSeQcZqpyH9CYS1Cooqf2Do9qaVC1gzq
Verify after running
Confirm Vercel vars are set
vercel env ls --scope alawein
Confirm GitHub secrets
gh secret list --repo morphism-systems/morphism
Confirm local
grep -E 'CLOUDFLARE|PINECONE' .env.local
Missing values you still need to provide (paste as SERVICE: value)
CLERK_SECRET_KEY: YOUR_SK_LIVE_VALUE
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: YOUR_PK_LIVE_VALUE
NPM_TOKEN: YOUR_NPM_TOKEN
CLOUDFLARE_API_TOKEN: YOUR_CF_TOKEN
clerk public key pk_live_Y2xlcmsubW9ycGhpc20uc3lzdGVtcyQ
clerk secret key sk_live_tP5w6uUfoJfmiez7sHatKtn9vNheANF8GOmhEKflgX
npm tokeneeeeeeeeeeeeeeeeeeeeeeeeeeeee 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
cloju fare
Summary of what's fully ready to run right now:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY → pk_live_Y2xlcmsubW9ycGhpc20uc3lzdGVtcyQ ✅ SENTRY_AUTH_TOKEN (Vercel + GitHub) → sntryu_b397959c2a0eca0bb6b8143a5eb3c837bfc5c6dd6c4fa086374c4 ✅ NPM_TOKEN (GitHub) → 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 ✅ PINECONE_API_KEY (.env.local) → pcsk_15HHt_EhF5...gzq ✅ Just send me the Clerk secret key and confirm your Cloudflare token approach and the block is fully cleared.
Clerk
pk_live_Y2xlcmsubW9ycGhpc20uc3lzdGVtcyQ
morphism-rotated-2026-03 sk_live_tP5w6uUfoJfmiez7sHatKtn9vNheANF8GOmhEKflgX
npm
morphism-rotated-2026-03 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
- Sentry — ✅ New token morphism-ci created with scope org:read (org:ci):
SENTRY_AUTH_TOKEN: sntryu_b397959c2a0eca0bb6b8143a5eb3c837bfc5c6dd6c4fa086374c4
- Pinecone — ✅ New key morphism-prod created and old default key deleted:
PINECONE_API_KEY: pcsk_15HHt_EhF5RYWSQFVnjzVNj4eJjwWv6QAakYxVSeQcZqpyH9CYS1Cooqf2Do9qaVC1gzq
Linear
morphism-rotated-2026-03 lin_api_oCGjJnxtSQMB3qMkHYiN1Jf1AzhCq4qYzjN8zEEs
cloudfare
bG6vWkTTBhAuXfasQH63SE74cMTgTsRpkfkZekWj