[{"data":1,"prerenderedAt":638},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fapi\u002Fproc\u002Frun":3},{"id":4,"title":5,"body":6,"description":631,"extension":632,"meta":633,"navigation":77,"path":634,"seo":635,"stem":636,"__hash__":637},"docs\u002Fdocs\u002Fv2\u002Fapi\u002Fproc\u002Frun.md","process.run",{"type":7,"value":8,"toc":626},"minimark",[9,13,22,144,149,310,314,326,338,346,350,357,613,622],[10,11,5],"h1",{"id":12},"processrun",[14,15,16,17,21],"p",{},"Runs a shell command, waits for it to complete, and returns the result. Never throws —\nfailures are indicated by ",[18,19,20],"code",{},"result.ok === false",".",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-ts shiki shiki-themes dark-plus","const result = await process.run(\"bun test\")\n\nif (!result.ok) {\n    throw new Error(`Tests failed:\\n${result.stderr}`)\n}\n","ts","",[18,30,31,72,79,99,138],{"__ignoreMap":28},[32,33,36,40,44,48,52,56,58,62,65,69],"span",{"class":34,"line":35},"line",1,[32,37,39],{"class":38},"scz_3","const",[32,41,43],{"class":42},"s9McN"," result",[32,45,47],{"class":46},"sTNBD"," = ",[32,49,51],{"class":50},"sYbnZ","await",[32,53,55],{"class":54},"s3F5K"," process",[32,57,21],{"class":46},[32,59,61],{"class":60},"sCudf","run",[32,63,64],{"class":46},"(",[32,66,68],{"class":67},"sKc5r","\"bun test\"",[32,70,71],{"class":46},")\n",[32,73,75],{"class":34,"line":74},2,[32,76,78],{"emptyLinePlaceholder":77},true,"\n",[32,80,82,85,88,91,93,96],{"class":34,"line":81},3,[32,83,84],{"class":50},"if",[32,86,87],{"class":46}," (!",[32,89,90],{"class":54},"result",[32,92,21],{"class":46},[32,94,95],{"class":54},"ok",[32,97,98],{"class":46},") {\n",[32,100,102,105,108,111,113,116,120,123,125,127,130,133,136],{"class":34,"line":101},4,[32,103,104],{"class":50},"    throw",[32,106,107],{"class":38}," new",[32,109,110],{"class":60}," Error",[32,112,64],{"class":46},[32,114,115],{"class":67},"`Tests failed:",[32,117,119],{"class":118},"svVle","\\n",[32,121,122],{"class":38},"${",[32,124,90],{"class":54},[32,126,21],{"class":46},[32,128,129],{"class":54},"stderr",[32,131,132],{"class":38},"}",[32,134,135],{"class":67},"`",[32,137,71],{"class":46},[32,139,141],{"class":34,"line":140},5,[32,142,143],{"class":46},"}\n",[145,146,148],"h2",{"id":147},"signature","Signature",[23,150,152],{"className":25,"code":151,"language":27,"meta":28,"style":28},"process.run(\n    command: string,\n    opts?: {\n        cwd?: string\n        env?: Record\u003Cstring, string>\n        input?: string\n    }\n): Promise\u003C{\n    ok: boolean\n    exitCode: number\n    stdout: string\n    stderr: string\n    err?: string   \u002F\u002F set when ok === false\n}>\n",[18,153,154,166,180,188,199,218,228,234,247,258,269,280,290,304],{"__ignoreMap":28},[32,155,156,159,161,163],{"class":34,"line":35},[32,157,158],{"class":54},"process",[32,160,21],{"class":46},[32,162,61],{"class":60},[32,164,165],{"class":46},"(\n",[32,167,168,171,174,177],{"class":34,"line":74},[32,169,170],{"class":54},"    command",[32,172,173],{"class":46},": ",[32,175,176],{"class":54},"string",[32,178,179],{"class":46},",\n",[32,181,182,185],{"class":34,"line":81},[32,183,184],{"class":54},"    opts",[32,186,187],{"class":46},"?: {\n",[32,189,190,193,196],{"class":34,"line":101},[32,191,192],{"class":46},"        cwd?",[32,194,195],{"class":54},":",[32,197,198],{"class":54}," string\n",[32,200,201,204,207,210,213,215],{"class":34,"line":140},[32,202,203],{"class":54},"        env",[32,205,206],{"class":46},"?: ",[32,208,209],{"class":54},"Record",[32,211,212],{"class":46},"\u003C",[32,214,176],{"class":54},[32,216,217],{"class":46},", string>\n",[32,219,221,224,226],{"class":34,"line":220},6,[32,222,223],{"class":46},"        input?",[32,225,195],{"class":54},[32,227,198],{"class":54},[32,229,231],{"class":34,"line":230},7,[32,232,233],{"class":46},"    }\n",[32,235,237,240,244],{"class":34,"line":236},8,[32,238,239],{"class":46},"): ",[32,241,243],{"class":242},"sNl3T","Promise",[32,245,246],{"class":46},"\u003C{\n",[32,248,250,253,255],{"class":34,"line":249},9,[32,251,252],{"class":54},"    ok",[32,254,173],{"class":46},[32,256,257],{"class":242},"boolean\n",[32,259,261,264,266],{"class":34,"line":260},10,[32,262,263],{"class":54},"    exitCode",[32,265,173],{"class":46},[32,267,268],{"class":242},"number\n",[32,270,272,275,277],{"class":34,"line":271},11,[32,273,274],{"class":54},"    stdout",[32,276,173],{"class":46},[32,278,279],{"class":242},"string\n",[32,281,283,286,288],{"class":34,"line":282},12,[32,284,285],{"class":54},"    stderr",[32,287,173],{"class":46},[32,289,279],{"class":242},[32,291,293,296,298,300],{"class":34,"line":292},13,[32,294,295],{"class":54},"    err",[32,297,206],{"class":46},[32,299,176],{"class":242},[32,301,303],{"class":302},"sOLPB","   \u002F\u002F set when ok === false\n",[32,305,307],{"class":34,"line":306},14,[32,308,309],{"class":46},"}>\n",[145,311,313],{"id":312},"options","Options",[14,315,316,322,323,21],{},[317,318,319],"strong",{},[18,320,321],{},"cwd"," — working directory for the command. Defaults to ",[18,324,325],{},"process.cwd()",[14,327,328,333,334,337],{},[317,329,330],{},[18,331,332],{},"env"," — additional environment variables merged over ",[18,335,336],{},"process.env",". The base\nenvironment is always inherited; this only adds or overrides keys.",[14,339,340,345],{},[317,341,342],{},[18,343,344],{},"input"," — string written to stdin before the process starts.",[145,347,349],{"id":348},"when-to-use-it","When to use it",[14,351,352,353,356],{},"Use ",[18,354,355],{},"process.run()"," when you need the complete output before continuing — running a test\nsuite, building an artifact, calling a CLI that returns structured output.",[23,358,360],{"className":25,"code":359,"language":27,"meta":28,"style":28},"\u002F\u002F Run tests and surface failures\nconst tests = await process.run(\"bun test --reporter=verbose\")\nif (!tests.ok) throw new Error(tests.stderr)\n\n\u002F\u002F Build and read the artifact\nconst build = await process.run(\"bun run build\", { cwd: workspace.root })\nif (!build.ok) throw new Error(`Build failed (exit ${build.exitCode}):\\n${build.stderr}`)\n\n\u002F\u002F Pass stdin\nconst result = await process.run(\"jq '.name'\", { input: JSON.stringify({ name: \"axon\" }) })\nconsole.log(result.stdout.trim()) \u002F\u002F \"axon\"\n",[18,361,362,367,391,424,428,433,472,528,532,537,583],{"__ignoreMap":28},[32,363,364],{"class":34,"line":35},[32,365,366],{"class":302},"\u002F\u002F Run tests and surface failures\n",[32,368,369,371,374,376,378,380,382,384,386,389],{"class":34,"line":74},[32,370,39],{"class":38},[32,372,373],{"class":42}," tests",[32,375,47],{"class":46},[32,377,51],{"class":50},[32,379,55],{"class":54},[32,381,21],{"class":46},[32,383,61],{"class":60},[32,385,64],{"class":46},[32,387,388],{"class":67},"\"bun test --reporter=verbose\"",[32,390,71],{"class":46},[32,392,393,395,397,400,402,404,407,410,412,414,416,418,420,422],{"class":34,"line":81},[32,394,84],{"class":50},[32,396,87],{"class":46},[32,398,399],{"class":54},"tests",[32,401,21],{"class":46},[32,403,95],{"class":54},[32,405,406],{"class":46},") ",[32,408,409],{"class":50},"throw",[32,411,107],{"class":38},[32,413,110],{"class":60},[32,415,64],{"class":46},[32,417,399],{"class":54},[32,419,21],{"class":46},[32,421,129],{"class":54},[32,423,71],{"class":46},[32,425,426],{"class":34,"line":101},[32,427,78],{"emptyLinePlaceholder":77},[32,429,430],{"class":34,"line":140},[32,431,432],{"class":302},"\u002F\u002F Build and read the artifact\n",[32,434,435,437,440,442,444,446,448,450,452,455,458,461,464,466,469],{"class":34,"line":220},[32,436,39],{"class":38},[32,438,439],{"class":42}," build",[32,441,47],{"class":46},[32,443,51],{"class":50},[32,445,55],{"class":54},[32,447,21],{"class":46},[32,449,61],{"class":60},[32,451,64],{"class":46},[32,453,454],{"class":67},"\"bun run build\"",[32,456,457],{"class":46},", { ",[32,459,460],{"class":54},"cwd:",[32,462,463],{"class":54}," workspace",[32,465,21],{"class":46},[32,467,468],{"class":54},"root",[32,470,471],{"class":46}," })\n",[32,473,474,476,478,481,483,485,487,489,491,493,495,498,500,502,504,507,509,512,514,516,518,520,522,524,526],{"class":34,"line":230},[32,475,84],{"class":50},[32,477,87],{"class":46},[32,479,480],{"class":54},"build",[32,482,21],{"class":46},[32,484,95],{"class":54},[32,486,406],{"class":46},[32,488,409],{"class":50},[32,490,107],{"class":38},[32,492,110],{"class":60},[32,494,64],{"class":46},[32,496,497],{"class":67},"`Build failed (exit ",[32,499,122],{"class":38},[32,501,480],{"class":54},[32,503,21],{"class":46},[32,505,506],{"class":54},"exitCode",[32,508,132],{"class":38},[32,510,511],{"class":67},"):",[32,513,119],{"class":118},[32,515,122],{"class":38},[32,517,480],{"class":54},[32,519,21],{"class":46},[32,521,129],{"class":54},[32,523,132],{"class":38},[32,525,135],{"class":67},[32,527,71],{"class":46},[32,529,530],{"class":34,"line":236},[32,531,78],{"emptyLinePlaceholder":77},[32,533,534],{"class":34,"line":249},[32,535,536],{"class":302},"\u002F\u002F Pass stdin\n",[32,538,539,541,543,545,547,549,551,553,555,558,560,563,566,568,571,574,577,580],{"class":34,"line":260},[32,540,39],{"class":38},[32,542,43],{"class":42},[32,544,47],{"class":46},[32,546,51],{"class":50},[32,548,55],{"class":54},[32,550,21],{"class":46},[32,552,61],{"class":60},[32,554,64],{"class":46},[32,556,557],{"class":67},"\"jq '.name'\"",[32,559,457],{"class":46},[32,561,562],{"class":54},"input:",[32,564,565],{"class":42}," JSON",[32,567,21],{"class":46},[32,569,570],{"class":60},"stringify",[32,572,573],{"class":46},"({ ",[32,575,576],{"class":54},"name:",[32,578,579],{"class":67}," \"axon\"",[32,581,582],{"class":46}," }) })\n",[32,584,585,588,590,593,595,597,599,602,604,607,610],{"class":34,"line":271},[32,586,587],{"class":54},"console",[32,589,21],{"class":46},[32,591,592],{"class":60},"log",[32,594,64],{"class":46},[32,596,90],{"class":54},[32,598,21],{"class":46},[32,600,601],{"class":54},"stdout",[32,603,21],{"class":46},[32,605,606],{"class":60},"trim",[32,608,609],{"class":46},"()) ",[32,611,612],{"class":302},"\u002F\u002F \"axon\"\n",[14,614,615,616,621],{},"For streaming output or long-running processes, use\n",[617,618,620],"a",{"href":619},"\u002Fdocs\u002Fv2\u002Fapi\u002Fproc\u002Fspawn","process.spawn"," instead.",[623,624,625],"style",{},"html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html pre.shiki code .s9McN, html code.shiki .s9McN{--shiki-default:#4FC1FF}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}html pre.shiki code .svVle, html code.shiki .svVle{--shiki-default:#D7BA7D}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);}html pre.shiki code .sNl3T, html code.shiki .sNl3T{--shiki-default:#4EC9B0}html pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}",{"title":28,"searchDepth":74,"depth":74,"links":627},[628,629,630],{"id":147,"depth":74,"text":148},{"id":312,"depth":74,"text":313},{"id":348,"depth":74,"text":349},"Runs a shell command, waits for it to complete, and returns the result. Never throws —\nfailures are indicated by result.ok === false.","md",{},"\u002Fdocs\u002Fv2\u002Fapi\u002Fproc\u002Frun",{"title":5,"description":631},"docs\u002Fv2\u002Fapi\u002Fproc\u002Frun","pHbJmE4Fhz_FTx3KmVZOV2jeTVI8KD1ONJXoyzV2-Nc",1785671808349]