[{"data":1,"prerenderedAt":254},["ShallowReactive",2],{"doc-features\u002Fpragma-secrets":3,"content-query-Z021vXJu2c":4},null,{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"body":11,"_type":248,"_id":249,"_source":250,"_file":251,"_stem":252,"_extension":253},"\u002Fdocs\u002Ffeatures\u002Fpragma-secrets","features",false,"","Pragma Secrets","Store and use API keys, environment variables, and external secrets safely inside Pragma.",{"type":12,"children":13,"toc":242},"root",[14,22,39,45,50,57,62,97,103,108,113,145,151,156,161,220,225,231,236],{"type":15,"tag":16,"props":17,"children":19},"element","h1",{"id":18},"pragma-secrets",[20],{"type":21,"value":9},"text",{"type":15,"tag":23,"props":24,"children":29},"div",{"className":25,"ariaHidden":28},[26,27],"docs-page-hero","docs-page-hero--clay","true",[30,32],{"type":21,"value":31},"\n  ",{"type":15,"tag":33,"props":34,"children":38},"img",{"src":35,"alt":8,"width":36,"height":37},"\u002Fimages\u002Fdocs-illustrations\u002Fpragma-secrets.svg",128,72,[],{"type":15,"tag":40,"props":41,"children":42},"p",{},[43],{"type":21,"value":44},"Pragma includes support for environment variables and external secrets so users do not need to paste sensitive values into plain text files or chat messages.",{"type":15,"tag":40,"props":46,"children":47},{},[48],{"type":21,"value":49},"Users should treat this area as the safe place for API keys, tokens, and environment values needed by terminal commands, workflows, and AI-assisted development.",{"type":15,"tag":51,"props":52,"children":54},"h2",{"id":53},"what-counts-as-a-secret",[55],{"type":21,"value":56},"What Counts As A Secret",{"type":15,"tag":40,"props":58,"children":59},{},[60],{"type":21,"value":61},"Secrets include:",{"type":15,"tag":63,"props":64,"children":65},"ul",{},[66,72,77,82,87,92],{"type":15,"tag":67,"props":68,"children":69},"li",{},[70],{"type":21,"value":71},"API keys.",{"type":15,"tag":67,"props":73,"children":74},{},[75],{"type":21,"value":76},"Database passwords.",{"type":15,"tag":67,"props":78,"children":79},{},[80],{"type":21,"value":81},"OAuth client secrets.",{"type":15,"tag":67,"props":83,"children":84},{},[85],{"type":21,"value":86},"Cloud tokens.",{"type":15,"tag":67,"props":88,"children":89},{},[90],{"type":21,"value":91},"Webhook signing secrets.",{"type":15,"tag":67,"props":93,"children":94},{},[95],{"type":21,"value":96},"Private service credentials.",{"type":15,"tag":51,"props":98,"children":100},{"id":99},"how-users-should-use-secrets",[101],{"type":21,"value":102},"How Users Should Use Secrets",{"type":15,"tag":40,"props":104,"children":105},{},[106],{"type":21,"value":107},"Users should store secrets in the secrets manager or approved environment variable flow, then reference them from terminal sessions, workflows, or agent tasks.",{"type":15,"tag":40,"props":109,"children":110},{},[111],{"type":21,"value":112},"They should avoid:",{"type":15,"tag":63,"props":114,"children":115},{},[116,121,135,140],{"type":15,"tag":67,"props":117,"children":118},{},[119],{"type":21,"value":120},"Pasting secrets into prompts.",{"type":15,"tag":67,"props":122,"children":123},{},[124,126,133],{"type":21,"value":125},"Committing ",{"type":15,"tag":127,"props":128,"children":130},"code",{"className":129},[],[131],{"type":21,"value":132},".env",{"type":21,"value":134}," files.",{"type":15,"tag":67,"props":136,"children":137},{},[138],{"type":21,"value":139},"Saving production keys in screenshots.",{"type":15,"tag":67,"props":141,"children":142},{},[143],{"type":21,"value":144},"Sharing secrets through normal chat.",{"type":15,"tag":51,"props":146,"children":148},{"id":147},"environment-variables",[149],{"type":21,"value":150},"Environment Variables",{"type":15,"tag":40,"props":152,"children":153},{},[154],{"type":21,"value":155},"Environment variables let users provide configuration to commands without hardcoding values into source code.",{"type":15,"tag":40,"props":157,"children":158},{},[159],{"type":21,"value":160},"Example:",{"type":15,"tag":162,"props":163,"children":167},"pre",{"className":164,"code":165,"language":166,"meta":8,"style":8},"language-bash shiki shiki-themes github-dark","export CREDVAULT_API_KEY=\"...\"\nnpm run deploy\n","bash",[168],{"type":15,"tag":127,"props":169,"children":170},{"__ignoreMap":8},[171,200],{"type":15,"tag":172,"props":173,"children":176},"span",{"class":174,"line":175},"line",1,[177,183,189,194],{"type":15,"tag":172,"props":178,"children":180},{"style":179},"--shiki-default:#F97583",[181],{"type":21,"value":182},"export",{"type":15,"tag":172,"props":184,"children":186},{"style":185},"--shiki-default:#E1E4E8",[187],{"type":21,"value":188}," CREDVAULT_API_KEY",{"type":15,"tag":172,"props":190,"children":191},{"style":179},[192],{"type":21,"value":193},"=",{"type":15,"tag":172,"props":195,"children":197},{"style":196},"--shiki-default:#9ECBFF",[198],{"type":21,"value":199},"\"...\"\n",{"type":15,"tag":172,"props":201,"children":203},{"class":174,"line":202},2,[204,210,215],{"type":15,"tag":172,"props":205,"children":207},{"style":206},"--shiki-default:#B392F0",[208],{"type":21,"value":209},"npm",{"type":15,"tag":172,"props":211,"children":212},{"style":196},[213],{"type":21,"value":214}," run",{"type":15,"tag":172,"props":216,"children":217},{"style":196},[218],{"type":21,"value":219}," deploy\n",{"type":15,"tag":40,"props":221,"children":222},{},[223],{"type":21,"value":224},"In production usage, the value should be stored securely and injected when needed.",{"type":15,"tag":51,"props":226,"children":228},{"id":227},"ai-agent-safety",[229],{"type":21,"value":230},"AI Agent Safety",{"type":15,"tag":40,"props":232,"children":233},{},[234],{"type":21,"value":235},"The AI agent should not expose secrets in answers, diffs, logs, or generated files. Secret redaction and careful command approval are important for sensitive data.",{"type":15,"tag":237,"props":238,"children":239},"style",{},[240],{"type":21,"value":241},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":8,"searchDepth":202,"depth":202,"links":243},[244,245,246,247],{"id":53,"depth":202,"text":56},{"id":99,"depth":202,"text":102},{"id":147,"depth":202,"text":150},{"id":227,"depth":202,"text":230},"markdown","content:docs:features:pragma-secrets.md","content","docs\u002Ffeatures\u002Fpragma-secrets.md","docs\u002Ffeatures\u002Fpragma-secrets","md",1794695987706]