[{"data":1,"prerenderedAt":237},["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":231,"_id":232,"_source":233,"_file":234,"_stem":235,"_extension":236},"\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":225},"root",[14,22,28,33,40,45,80,86,91,96,128,134,139,144,203,208,214,219],{"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":25},"p",{},[26],{"type":21,"value":27},"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":23,"props":29,"children":30},{},[31],{"type":21,"value":32},"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":34,"props":35,"children":37},"h2",{"id":36},"what-counts-as-a-secret",[38],{"type":21,"value":39},"What Counts As A Secret",{"type":15,"tag":23,"props":41,"children":42},{},[43],{"type":21,"value":44},"Secrets include:",{"type":15,"tag":46,"props":47,"children":48},"ul",{},[49,55,60,65,70,75],{"type":15,"tag":50,"props":51,"children":52},"li",{},[53],{"type":21,"value":54},"API keys.",{"type":15,"tag":50,"props":56,"children":57},{},[58],{"type":21,"value":59},"Database passwords.",{"type":15,"tag":50,"props":61,"children":62},{},[63],{"type":21,"value":64},"OAuth client secrets.",{"type":15,"tag":50,"props":66,"children":67},{},[68],{"type":21,"value":69},"Cloud tokens.",{"type":15,"tag":50,"props":71,"children":72},{},[73],{"type":21,"value":74},"Webhook signing secrets.",{"type":15,"tag":50,"props":76,"children":77},{},[78],{"type":21,"value":79},"Private service credentials.",{"type":15,"tag":34,"props":81,"children":83},{"id":82},"how-users-should-use-secrets",[84],{"type":21,"value":85},"How Users Should Use Secrets",{"type":15,"tag":23,"props":87,"children":88},{},[89],{"type":21,"value":90},"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":23,"props":92,"children":93},{},[94],{"type":21,"value":95},"They should avoid:",{"type":15,"tag":46,"props":97,"children":98},{},[99,104,118,123],{"type":15,"tag":50,"props":100,"children":101},{},[102],{"type":21,"value":103},"Pasting secrets into prompts.",{"type":15,"tag":50,"props":105,"children":106},{},[107,109,116],{"type":21,"value":108},"Committing ",{"type":15,"tag":110,"props":111,"children":113},"code",{"className":112},[],[114],{"type":21,"value":115},".env",{"type":21,"value":117}," files.",{"type":15,"tag":50,"props":119,"children":120},{},[121],{"type":21,"value":122},"Saving production keys in screenshots.",{"type":15,"tag":50,"props":124,"children":125},{},[126],{"type":21,"value":127},"Sharing secrets through normal chat.",{"type":15,"tag":34,"props":129,"children":131},{"id":130},"environment-variables",[132],{"type":21,"value":133},"Environment Variables",{"type":15,"tag":23,"props":135,"children":136},{},[137],{"type":21,"value":138},"Environment variables let users provide configuration to commands without hardcoding values into source code.",{"type":15,"tag":23,"props":140,"children":141},{},[142],{"type":21,"value":143},"Example:",{"type":15,"tag":145,"props":146,"children":150},"pre",{"className":147,"code":148,"language":149,"meta":8,"style":8},"language-bash shiki shiki-themes github-dark","export CREDVAULT_API_KEY=\"...\"\nnpm run deploy\n","bash",[151],{"type":15,"tag":110,"props":152,"children":153},{"__ignoreMap":8},[154,183],{"type":15,"tag":155,"props":156,"children":159},"span",{"class":157,"line":158},"line",1,[160,166,172,177],{"type":15,"tag":155,"props":161,"children":163},{"style":162},"--shiki-default:#F97583",[164],{"type":21,"value":165},"export",{"type":15,"tag":155,"props":167,"children":169},{"style":168},"--shiki-default:#E1E4E8",[170],{"type":21,"value":171}," CREDVAULT_API_KEY",{"type":15,"tag":155,"props":173,"children":174},{"style":162},[175],{"type":21,"value":176},"=",{"type":15,"tag":155,"props":178,"children":180},{"style":179},"--shiki-default:#9ECBFF",[181],{"type":21,"value":182},"\"...\"\n",{"type":15,"tag":155,"props":184,"children":186},{"class":157,"line":185},2,[187,193,198],{"type":15,"tag":155,"props":188,"children":190},{"style":189},"--shiki-default:#B392F0",[191],{"type":21,"value":192},"npm",{"type":15,"tag":155,"props":194,"children":195},{"style":179},[196],{"type":21,"value":197}," run",{"type":15,"tag":155,"props":199,"children":200},{"style":179},[201],{"type":21,"value":202}," deploy\n",{"type":15,"tag":23,"props":204,"children":205},{},[206],{"type":21,"value":207},"In production usage, the value should be stored securely and injected when needed.",{"type":15,"tag":34,"props":209,"children":211},{"id":210},"ai-agent-safety",[212],{"type":21,"value":213},"AI Agent Safety",{"type":15,"tag":23,"props":215,"children":216},{},[217],{"type":21,"value":218},"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":220,"props":221,"children":222},"style",{},[223],{"type":21,"value":224},"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":185,"depth":185,"links":226},[227,228,229,230],{"id":36,"depth":185,"text":39},{"id":82,"depth":185,"text":85},{"id":130,"depth":185,"text":133},{"id":210,"depth":185,"text":213},"markdown","content:docs:features:pragma-secrets.md","content","docs\u002Ffeatures\u002Fpragma-secrets.md","docs\u002Ffeatures\u002Fpragma-secrets","md",1786114917878]