{"id":"c1808ab1-32ac-45a2-9c2f-d670dbd72dcf","shortId":"ABg7Fx","kind":"skill","title":"varlock","tagline":"Secure-by-default environment variable management for Claude Code sessions.","description":"<!-- security-allowlist: curl-pipe-bash -->\n\n# Varlock Security Skill\n\nSecure-by-default environment variable management for Claude Code sessions.\n\n> **Repository**: https://github.com/dmno-dev/varlock\n> **Documentation**: https://varlock.dev\n\n## When to Use\n- You need to work with environment variables or secrets in a Claude Code session without exposing their values.\n- The task involves validating, loading, or auditing secrets while keeping them out of logs, diffs, and assistant context.\n- You want a secure-by-default workflow built around Varlock instead of direct `.env` inspection.\n\n## Core Principle: Secrets Never Exposed\n\nWhen working with Claude, secrets must NEVER appear in:\n- Terminal output\n- Claude's input/output context\n- Log files or traces\n- Git commits or diffs\n- Error messages\n\nThis skill ensures all sensitive data is properly protected.\n\n---\n\n## CRITICAL: Security Rules for Claude\n\n### Rule 1: Never Echo Secrets\n\n```bash\n# ❌ NEVER DO THIS - exposes secret to Claude's context\necho $CLERK_SECRET_KEY\ncat .env | grep SECRET\nprintenv | grep API\n\n# ✅ DO THIS - validates without exposing\nvarlock load --quiet && echo \"✓ Secrets validated\"\n```\n\n### Rule 2: Never Read .env Directly\n\n```bash\n# ❌ NEVER DO THIS - exposes all secrets\ncat .env\nless .env\nRead tool on .env file\n\n# ✅ DO THIS - read schema (safe) not values\ncat .env.schema\nvarlock load  # Shows masked values\n```\n\n### Rule 3: Use Varlock for Validation\n\n```bash\n# ❌ NEVER DO THIS - exposes secret in error\ntest -n \"$API_KEY\" && echo \"Key: $API_KEY\"\n\n# ✅ DO THIS - Varlock validates and masks\nvarlock load\n# Output shows: API_KEY 🔐sensitive └ ▒▒▒▒▒\n```\n\n### Rule 4: Never Include Secrets in Commands\n\n```bash\n# ❌ NEVER DO THIS - secret in command history\ncurl -H \"Authorization: Bearer sk_live_xxx\" https://api.example.com\n\n# ✅ DO THIS - use environment variable\ncurl -H \"Authorization: Bearer $API_KEY\" https://api.example.com\n# Or better: varlock run -- curl ...\n```\n\n---\n\n## Quick Start\n\n### Installation\n\n```bash\n# Install Varlock CLI\ncurl -sSfL https://varlock.dev/install.sh | sh -s -- --force-no-brew\n\n# Add to PATH (add to ~/.zshrc or ~/.bashrc)\nexport PATH=\"$HOME/.varlock/bin:$PATH\"\n\n# Verify\nvarlock --version\n```\n\n### Initialize Project\n\n```bash\n# Create .env.schema from existing .env\nvarlock init\n\n# Or create manually\ntouch .env.schema\n```\n\n---\n\n## Schema File: .env.schema\n\nThe schema defines types, validation, and sensitivity for each variable.\n\n### Basic Structure\n\n```bash\n# Global defaults\n# @defaultSensitive=true @defaultRequired=infer\n\n# Application\n# @type=enum(development,staging,production) @sensitive=false\nNODE_ENV=development\n\n# @type=port @sensitive=false\nPORT=3000\n\n# Database - SENSITIVE\n# @type=url @required\nDATABASE_URL=\n\n# @type=string @required @sensitive\nDATABASE_PASSWORD=\n\n# API Keys - SENSITIVE\n# @type=string(startsWith=sk_) @required @sensitive\nSTRIPE_SECRET_KEY=\n\n# @type=string(startsWith=pk_) @sensitive=false\nSTRIPE_PUBLISHABLE_KEY=\n```\n\n### Security Annotations\n\n| Annotation | Effect | Use For |\n|------------|--------|---------|\n| `@sensitive` | Redacted in all output | API keys, passwords, tokens |\n| `@sensitive=false` | Shown in logs | Public keys, non-secret config |\n| `@defaultSensitive=true` | All vars sensitive by default | High-security projects |\n\n### Type Annotations\n\n| Type | Validates | Example |\n|------|-----------|---------|\n| `string` | Any string | `@type=string` |\n| `string(startsWith=X)` | Prefix validation | `@type=string(startsWith=sk_)` |\n| `string(contains=X)` | Substring validation | `@type=string(contains=+clerk_test)` |\n| `url` | Valid URL | `@type=url` |\n| `port` | 1-65535 | `@type=port` |\n| `boolean` | true/false | `@type=boolean` |\n| `enum(a,b,c)` | One of values | `@type=enum(dev,prod)` |\n\n---\n\n## Safe Commands for Claude\n\n### Validating Environment\n\n```bash\n# Check all variables (safe - masks sensitive values)\nvarlock load\n\n# Quiet mode (no output on success)\nvarlock load --quiet\n\n# Check specific environment\nvarlock load --env=production\n```\n\n### Running Commands with Secrets\n\n```bash\n# Inject validated env into command\nvarlock run -- npm start\nvarlock run -- node script.js\nvarlock run -- pytest\n\n# Secrets are available to the command but never printed\n```\n\n### Checking Schema (Safe)\n\n```bash\n# Schema is safe to read - contains no values\ncat .env.schema\n\n# List expected variables\ngrep \"^[A-Z]\" .env.schema\n```\n\n---\n\n## Common Patterns\n\n### Pattern 1: Validate Before Operations\n\n```bash\n# Always validate environment first\nvarlock load --quiet || {\n  echo \"❌ Environment validation failed\"\n  exit 1\n}\n\n# Then proceed with operation\nnpm run build\n```\n\n### Pattern 2: Safe Secret Rotation\n\n```bash\n# 1. Update secret in external source (1Password, AWS, etc.)\n# 2. Update .env file manually (don't use Claude for this)\n# 3. Validate new value works\nvarlock load\n\n# 4. If using GitHub Secrets, sync (values not shown)\n./scripts/update-github-secrets.sh\n```\n\n### Pattern 3: CI/CD Integration\n\n```yaml\n# GitHub Actions - secrets from GitHub Secrets\n- name: Validate environment\n  env:\n    DATABASE_URL: ${{ secrets.DATABASE_URL }}\n    API_KEY: ${{ secrets.API_KEY }}\n  run: varlock load --quiet\n```\n\n### Pattern 4: Docker Integration\n\n```dockerfile\n# Install Varlock in container\nRUN curl -sSfL https://varlock.dev/install.sh | sh -s -- --force-no-brew \\\n    && ln -s /root/.varlock/bin/varlock /usr/local/bin/varlock\n\n# Validate at container start\nCMD [\"varlock\", \"run\", \"--\", \"npm\", \"start\"]\n```\n\n---\n\n## Handling Secret-Related Tasks\n\n### When User Asks to \"Check if API key is set\"\n\n```bash\n# ✅ Safe approach\nvarlock load 2>&1 | grep \"API_KEY\"\n# Shows: ✅ API_KEY 🔐sensitive └ ▒▒▒▒▒\n\n# ❌ Never do\necho $API_KEY\n```\n\n### When User Asks to \"Debug authentication\"\n\n```bash\n# ✅ Safe approach - check presence and format\nvarlock load  # Validates types and required fields\n\n# Check if key has correct prefix (without showing value)\nvarlock load 2>&1 | grep -E \"(CLERK|AUTH)\"\n\n# ❌ Never do\nprintenv | grep KEY\n```\n\n### When User Asks to \"Update a secret\"\n\n```\nClaude should respond:\n\"I cannot directly modify secrets for security reasons. Please:\n1. Update the value in your .env file manually\n2. Or update in your secrets manager (1Password, AWS, etc.)\n3. Then run `varlock load` to validate\n\nI can help you update the .env.schema if you need to add new variables.\"\n```\n\n### When User Asks to \"Show me the .env file\"\n\n```\nClaude should respond:\n\"I won't read .env files directly as they contain secrets. Instead:\n- Run `varlock load` to see masked values\n- Run `cat .env.schema` to see the schema (safe)\n- I can help you modify .env.schema if needed\"\n```\n\n---\n\n## External Secret Sources\n\n### 1Password Integration\n\n```bash\n# In .env.schema\n# @type=string @sensitive\nAPI_KEY=exec('op read \"op://vault/item/field\"')\n```\n\n### AWS Secrets Manager\n\n```bash\n# In .env.schema\n# @type=string @sensitive\nDB_PASSWORD=exec('aws secretsmanager get-secret-value --secret-id prod/db')\n```\n\n### Environment-Specific Values\n\n```bash\n# In .env.schema\n# @type=url\nAPI_URL=env('API_URL_${NODE_ENV}', 'http://localhost:3000')\n```\n\n---\n\n## Troubleshooting\n\n### \"varlock: command not found\"\n\n```bash\n# Check installation\nls ~/.varlock/bin/varlock\n\n# Add to PATH\nexport PATH=\"$HOME/.varlock/bin:$PATH\"\n\n# Or use full path\n~/.varlock/bin/varlock load\n```\n\n### \"Schema validation failed\"\n\n```bash\n# Check which variables are missing/invalid\nvarlock load  # Shows detailed errors\n\n# Common fixes:\n# - Add missing required variables to .env\n# - Fix type mismatches (port must be number)\n# - Check string prefixes match schema\n```\n\n### \"Sensitive value exposed in logs\"\n\n```bash\n# 1. Rotate the exposed secret immediately\n# 2. Check .env.schema has @sensitive annotation\n# 3. Ensure using varlock commands, not echo/cat\n\n# Add missing sensitivity:\n# Before: API_KEY=\n# After:  # @type=string @sensitive\n#         API_KEY=\n```\n\n---\n\n## npm Scripts\n\nAdd these to your package.json:\n\n```json\n{\n  \"scripts\": {\n    \"env:validate\": \"varlock load\",\n    \"env:check\": \"varlock load --quiet || echo 'Environment validation failed'\",\n    \"prestart\": \"varlock load --quiet\",\n    \"start\": \"varlock run -- node server.js\"\n  }\n}\n```\n\n---\n\n## Security Checklist for New Projects\n\n- [ ] Install Varlock CLI\n- [ ] Create `.env.schema` with all variables defined\n- [ ] Mark all secrets with `@sensitive` annotation\n- [ ] Add `@defaultSensitive=true` to schema header\n- [ ] Add `.env` to `.gitignore`\n- [ ] Commit `.env.schema` to version control\n- [ ] Add `npm run env:validate` to CI/CD\n- [ ] Document secret rotation procedure\n- [ ] Never use `cat .env` or `echo $SECRET` in Claude sessions\n\n---\n\n## Quick Reference Card\n\n| Task | Safe Command |\n|------|-------------|\n| Validate all env vars | `varlock load` |\n| Quiet validation | `varlock load --quiet` |\n| Run with env | `varlock run -- <cmd>` |\n| View schema | `cat .env.schema` |\n| Check specific var | `varlock load \\| grep VAR_NAME` |\n\n| Never Do | Why |\n|----------|-----|\n| `cat .env` | Exposes all secrets |\n| `echo $SECRET` | Exposes to Claude context |\n| `printenv \\| grep` | Exposes matching secrets |\n| Read .env with tools | Secrets in Claude's context |\n| Hardcode in commands | In shell history |\n\n---\n\n## Integration with Other Skills\n\n### Clerk Skill\n- Test user passwords are `@sensitive`\n- Test emails are `@sensitive=false` (contain +clerk_test, not secret)\n- See: `~/.claude/skills/clerk/SKILL.md`\n\n### Docker Skill\n- Mount `.env` file, never copy secrets to image\n- Use `varlock run` as entrypoint\n- See: `~/.claude/skills/docker/SKILL.md`\n\n---\n\n*Last updated: December 22, 2025*\n*Secure-by-default environment management for Claude Code*\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["varlock","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity-skills"],"capabilities":["skill","source-sickn33","skill-varlock","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/varlock","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34404 github stars · SKILL.md body (9,975 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:51:55.482Z","embedding":null,"createdAt":"2026-04-18T21:47:04.715Z","updatedAt":"2026-04-22T00:51:55.482Z","lastSeenAt":"2026-04-22T00:51:55.482Z","tsv":"'-65535':474 '/.bashrc':305 '/.claude/skills/clerk/skill.md':1218 '/.claude/skills/docker/skill.md':1235 '/.varlock/bin/varlock':956,968 '/.zshrc':303 '/dmno-dev/varlock':30 '/install.sh':291,688 '/root/.varlock/bin/varlock':697 '/scripts/update-github-secrets.sh':646 '/usr/local/bin/varlock':698 '1':133,473,579,596,610,729,774,803,1010 '1password':616,819,893 '2':170,605,619,728,773,812,1016 '2025':1240 '22':1239 '3':206,630,648,822,1022 '3000':366,946 '4':241,637,675 'a-z':572 'action':653 'add':298,301,840,957,986,1029,1043,1092,1098,1107 'alway':584 'annot':402,403,439,1021,1091 'api':157,221,225,237,272,380,412,666,719,731,734,740,901,938,941,1033,1039 'api.example.com':262,274 'appear':100 'applic':350 'approach':725,750 'around':81 'ask':715,744,786,845,1283 'assist':70 'audit':60 'auth':778 'authent':747 'author':257,270 'avail':547 'aw':617,820,907,919 'b':483 'bash':137,175,211,247,283,315,343,498,528,557,583,609,723,748,895,910,933,952,973,1009 'basic':341 'bearer':258,271 'better':276 'boolean':477,480 'boundari':1291 'brew':297,694 'build':603 'built':80 'c':484 'cannot':795 'card':1130 'cat':151,182,198,566,875,1120,1152,1165 'check':499,517,554,717,751,762,953,974,999,1017,1055,1154 'checklist':1073 'ci/cd':649,1113 'clarif':1285 'claud':10,24,47,96,104,131,144,495,627,791,852,1126,1174,1187,1248 'clear':1258 'clerk':148,465,777,1200,1213 'cli':286,1079 'cmd':703 'code':11,25,48,1249 'command':246,253,493,525,533,550,949,1026,1133,1192 'commit':113,1102 'common':576,984 'config':426 'contain':458,464,563,682,701,864,1212 'context':71,107,146,1175,1189 'control':1106 'copi':1225 'core':88 'correct':766 'creat':316,324,1080 'criteria':1294 'critic':127 'curl':255,268,279,287,684 'data':123 'databas':367,372,378,662 'db':916 'debug':746 'decemb':1238 'default':5,19,78,345,433,1244 'defaultrequir':348 'defaultsensit':346,427,1093 'defin':333,1085 'describ':1262 'detail':982 'dev':490 'develop':353,360 'diff':68,115 'direct':85,174,796,861 'docker':676,1219 'dockerfil':678 'document':31,1114 'e':776 'echo':135,147,166,223,591,739,1059,1123,1170 'echo/cat':1028 'effect':404 'email':1208 'ensur':120,1023 'entrypoint':1233 'enum':352,481,489 'env':86,152,173,183,185,189,320,359,522,531,621,661,809,850,859,940,944,991,1050,1054,1099,1110,1121,1136,1147,1166,1182,1222 'env.schema':199,317,327,330,567,575,835,876,887,897,912,935,1018,1081,1103,1153 'environ':6,20,41,266,497,519,586,592,660,930,1060,1245,1274 'environment-specif':929,1273 'error':116,218,983 'etc':618,821 'exampl':442 'exec':903,918 'exist':319 'exit':595 'expect':569 'expert':1279 'export':306,960 'expos':51,92,141,162,179,215,1006,1013,1167,1172,1178 'extern':614,890 'fail':594,972,1062 'fals':357,364,397,417,1211 'field':761 'file':109,190,329,622,810,851,860,1223 'first':587 'fix':985,992 'forc':295,692 'force-no-brew':294,691 'format':754 'found':951 'full':966 'get':922 'get-secret-valu':921 'git':112 'github':640,652,656 'github.com':29 'github.com/dmno-dev/varlock':28 'gitignor':1101 'global':344 'grep':153,156,571,730,775,782,1159,1177 'h':256,269 'handl':708 'hardcod':1190 'header':1097 'help':831,884 'high':435 'high-secur':434 'histori':254,1195 'home/.varlock/bin':308,962 'id':927 'imag':1228 'immedi':1015 'includ':243 'infer':349 'init':322 'initi':313 'inject':529 'input':1288 'input/output':106 'inspect':87 'instal':282,284,679,954,1077 'instead':83,866 'integr':650,677,894,1196 'involv':56 'json':1048 'keep':63 'key':150,222,224,226,238,273,381,391,400,413,422,667,669,720,732,735,741,764,783,902,1034,1040 'last':1236 'less':184 'limit':1250 'list':568 'live':260 'ln':695 'load':58,164,201,234,507,515,521,589,636,672,727,756,772,826,869,969,980,1053,1057,1065,1139,1143,1158 'localhost':945 'log':67,108,420,1008 'ls':955 'manag':8,22,818,909,1246 'manual':325,623,811 'mark':1086 'mask':203,232,503,872 'match':1002,1179,1259 'messag':117 'mismatch':994 'miss':987,1030,1296 'missing/invalid':978 'mode':509 'modifi':797,886 'mount':1221 'must':98,996 'n':220 'name':658,1161 'need':37,838,889 'never':91,99,134,138,171,176,212,242,248,552,737,779,1118,1162,1224 'new':632,841,1075 'node':358,540,943,1070 'non':424 'non-secret':423 'npm':536,601,706,1041,1108 'number':998 'one':485 'op':904 'oper':582,600 'output':103,235,411,511,1268 'package.json':1047 'password':379,414,917,1204 'path':300,307,309,959,961,963,967 'pattern':577,578,604,647,674 'permiss':1289 'pk':395 'pleas':802 'port':362,365,472,476,995 'prefix':451,767,1001 'presenc':752 'prestart':1063 'principl':89 'print':553 'printenv':155,781,1176 'procedur':1117 'proceed':598 'prod':491 'prod/db':928 'product':355,523 'project':314,437,1076 'proper':125 'protect':126 'public':421 'publish':399 'pytest':544 'quick':280,1128 'quiet':165,508,516,590,673,1058,1066,1140,1144 'read':172,186,193,562,858,905,1181 'reason':801 'redact':408 'refer':1129 'relat':711 'repositori':27 'requir':371,376,387,760,988,1287 'respond':793,854 'review':1280 'rotat':608,1011,1116 'rule':129,132,169,205,240 'run':278,524,535,539,543,602,670,683,705,824,867,874,1069,1109,1145,1149,1231 'safe':195,492,502,556,560,606,724,749,881,1132 'safeti':1290 'schema':194,328,332,555,558,880,970,1003,1096,1151 'scope':1261 'script':1042,1049 'script.js':541 'secret':44,61,90,97,136,142,149,154,167,181,216,244,251,390,425,527,545,607,612,641,654,657,710,790,798,817,865,891,908,923,926,1014,1088,1115,1124,1169,1171,1180,1185,1216,1226 'secret-id':925 'secret-rel':709 'secrets.api':668 'secrets.database':664 'secretsmanag':920 'secur':3,14,17,76,128,401,436,800,1072,1242 'secure-by-default':2,16,75,1241 'see':871,878,1217,1234 'sensit':122,239,337,356,363,368,377,382,388,396,407,416,431,504,736,900,915,1004,1020,1031,1038,1090,1206,1210 'server.js':1071 'session':12,26,49,1127 'set':722 'sh':292,689 'shell':1194 'show':202,236,733,769,847,981 'shown':418,645 'sk':259,386,456 'skill':15,119,1199,1201,1220,1253 'skill-varlock' 'sourc':615,892 'source-sickn33' 'specif':518,931,1155,1275 'ssfl':288,685 'stage':354 'start':281,537,702,707,1067 'startswith':385,394,449,455 'stop':1281 'string':375,384,393,443,445,447,448,454,457,463,899,914,1000,1037 'stripe':389,398 'structur':342 'substitut':1271 'substr':460 'success':513,1293 'sync':642 'task':55,712,1131,1257 'termin':102 'test':219,466,1202,1207,1214,1277 'token':415 'tool':187,1184 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'touch':326 'trace':111 'treat':1266 'troubleshoot':947 'true':347,428,1094 'true/false':478 'type':334,351,361,369,374,383,392,438,440,446,453,462,470,475,479,488,758,898,913,936,993,1036 'updat':611,620,788,804,814,833,1237 'url':370,373,467,469,471,663,665,937,939,942 'use':35,207,265,405,626,639,965,1024,1119,1229,1251 'user':714,743,785,844,1203 'valid':57,160,168,210,230,335,441,452,461,468,496,530,580,585,593,631,659,699,757,828,971,1051,1061,1111,1134,1141,1276 'valu':53,197,204,487,505,565,633,643,770,806,873,924,932,1005 'var':430,1137,1156,1160 'variabl':7,21,42,267,340,501,570,842,976,989,1084 'varlock':1,13,82,163,200,208,229,233,277,285,311,321,506,514,520,534,538,542,588,635,671,680,704,726,755,771,825,868,948,979,1025,1052,1056,1064,1068,1078,1138,1142,1148,1157,1230 'varlock.dev':32,290,687 'varlock.dev/install.sh':289,686 'vault/item/field':906 'verifi':310 'version':312,1105 'view':1150 'want':73 'without':50,161,768 'won':856 'work':39,94,634 'workflow':79 'x':450,459 'xxx':261 'yaml':651 'z':574","prices":[{"id":"7d1c8851-6498-4450-8738-a2b438f23d8c","listingId":"c1808ab1-32ac-45a2-9c2f-d670dbd72dcf","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:47:04.715Z"}],"sources":[{"listingId":"c1808ab1-32ac-45a2-9c2f-d670dbd72dcf","source":"github","sourceId":"sickn33/antigravity-awesome-skills/varlock","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/varlock","isPrimary":false,"firstSeenAt":"2026-04-18T21:47:04.715Z","lastSeenAt":"2026-04-22T00:51:55.482Z"}],"details":{"listingId":"c1808ab1-32ac-45a2-9c2f-d670dbd72dcf","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"varlock","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34404,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-21T16:43:40Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"bfc07743e65c75a7baff25a91c6896047c8efb39","skill_md_path":"skills/varlock/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/varlock"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"varlock","description":"Secure-by-default environment variable management for Claude Code sessions."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/varlock"},"updatedAt":"2026-04-22T00:51:55.482Z"}}