[{"data":1,"prerenderedAt":924},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-quick-start":172,"-getting-started-quick-start-surround":919},[4,30,100,134],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":29},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,21,25],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":5,"path":19,"stem":20},"\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":22,"path":23,"stem":24},"Build from source","\u002Fgetting-started\u002Fbuild-from-source","1.getting-started\u002F4.build-from-source",{"title":26,"path":27,"stem":28},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F5.troubleshooting",false,{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":29},"Guide","i-lucide-book-open","\u002Fguide","2.guide",[36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96],{"title":37,"path":38,"stem":39},"Interface","\u002Fguide\u002Finterface","2.guide\u002F01.interface",{"title":41,"path":42,"stem":43},"Workspace","\u002Fguide\u002Fworkspace","2.guide\u002F02.workspace",{"title":45,"path":46,"stem":47},"Collections","\u002Fguide\u002Fcollections","2.guide\u002F03.collections",{"title":49,"path":50,"stem":51},"HTTP requests","\u002Fguide\u002Fhttp-requests","2.guide\u002F04.http-requests",{"title":53,"path":54,"stem":55},"Variables","\u002Fguide\u002Fvariables","2.guide\u002F05.variables",{"title":57,"path":58,"stem":59},"Authorization","\u002Fguide\u002Fauthorization","2.guide\u002F06.authorization",{"title":61,"path":62,"stem":63},"Scripts and tests","\u002Fguide\u002Fscripts-and-tests","2.guide\u002F07.scripts-and-tests",{"title":65,"path":66,"stem":67},"Collection runner","\u002Fguide\u002Fcollection-runner","2.guide\u002F08.collection-runner",{"title":69,"path":70,"stem":71},"Import and export","\u002Fguide\u002Fimport-export","2.guide\u002F09.import-export",{"title":73,"path":74,"stem":75},"Code snippets","\u002Fguide\u002Fcode-snippets","2.guide\u002F10.code-snippets",{"title":77,"path":78,"stem":79},"gRPC","\u002Fguide\u002Fgrpc","2.guide\u002F11.grpc",{"title":81,"path":82,"stem":83},"WebSocket","\u002Fguide\u002Fwebsocket","2.guide\u002F12.websocket",{"title":85,"path":86,"stem":87},"Cookies, proxy and certificates","\u002Fguide\u002Fcookies-proxy-certificates","2.guide\u002F13.cookies-proxy-certificates",{"title":89,"path":90,"stem":91},"Settings","\u002Fguide\u002Fsettings","2.guide\u002F14.settings",{"title":93,"path":94,"stem":95},"Keyboard shortcuts","\u002Fguide\u002Fkeyboard-shortcuts","2.guide\u002F15.keyboard-shortcuts",{"title":97,"path":98,"stem":99},"Privacy and security","\u002Fguide\u002Fprivacy-and-security","2.guide\u002F16.privacy-and-security",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":29},"Reference","i-lucide-square-terminal","\u002Freference","3.reference",[106,110,114,118,122,126,130],{"title":107,"path":108,"stem":109},"Command line","\u002Freference\u002Fcli","3.reference\u002F1.cli",{"title":111,"path":112,"stem":113},"Automation tools","\u002Freference\u002Fautomation-tools","3.reference\u002F2.automation-tools",{"title":115,"path":116,"stem":117},"Scripting API","\u002Freference\u002Fscripting-api","3.reference\u002F3.scripting-api",{"title":119,"path":120,"stem":121},"Dynamic variables","\u002Freference\u002Fdynamic-variables","3.reference\u002F4.dynamic-variables",{"title":123,"path":124,"stem":125},"UI control channel","\u002Freference\u002Fui-control-channel","3.reference\u002F5.ui-control-channel",{"title":127,"path":128,"stem":129},"Workspace format","\u002Freference\u002Fworkspace-format","3.reference\u002F6.workspace-format",{"title":131,"path":132,"stem":133},"Feature status","\u002Freference\u002Ffeature-status","3.reference\u002F7.feature-status",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":29},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","4.contributing",[140,144,148,152,156,160,164,168],{"title":141,"path":142,"stem":143},"Contributing overview","\u002Fcontributing\u002Foverview","4.contributing\u002F1.overview",{"title":145,"path":146,"stem":147},"Development","\u002Fcontributing\u002Fdevelopment","4.contributing\u002F2.development",{"title":149,"path":150,"stem":151},"Architecture","\u002Fcontributing\u002Farchitecture","4.contributing\u002F3.architecture",{"title":153,"path":154,"stem":155},"Known gaps","\u002Fcontributing\u002Fgaps","4.contributing\u002F4.gaps",{"title":157,"path":158,"stem":159},"Adding a feature","\u002Fcontributing\u002Fadding-a-feature","4.contributing\u002F5.adding-a-feature",{"title":161,"path":162,"stem":163},"Assets and clean-room","\u002Fcontributing\u002Fassets-and-clean-room","4.contributing\u002F6.assets-and-clean-room",{"title":165,"path":166,"stem":167},"Releasing","\u002Fcontributing\u002Freleasing","4.contributing\u002F7.releasing",{"title":169,"path":170,"stem":171},"Writing the documentation","\u002Fcontributing\u002Fdocumentation","4.contributing\u002F8.documentation",{"id":173,"title":5,"body":174,"description":912,"extension":913,"links":914,"meta":915,"navigation":916,"path":19,"seo":917,"stem":20,"__hash__":918},"docs\u002F1.getting-started\u002F3.quick-start.md",{"type":175,"value":176,"toc":898},"minimark",[177,181,199,210,864,869,894],[178,179,180],"p",{},"This tutorial takes about ten minutes. You need:",[182,183,184,192],"ul",{},[185,186,187,188,191],"li",{},"Postguy installed. See ",[189,190,15],"a",{"href":16},".",[185,193,194,195,191],{},"An internet connection, for the public test service ",[196,197,198],"code",{},"httpbin.org",[178,200,201,202,205,206,209],{},"In the shortcuts below, ",[196,203,204],{},"Cmd"," is the Command key on macOS and ",[196,207,208],{},"Ctrl"," elsewhere.",[211,212,213,218,221,244,247,263,267,285,292,318,343,349,353,364,374,377,381,384,460,464,470,474,477,519,525,533,537,548,579,590,666,682,686,699,702,740,766,770,773,784,817,820],"steps",{},[214,215,217],"h3",{"id":216},"launch-postguy-and-find-your-workspace","Launch Postguy and find your workspace",[178,219,220],{},"Start the app. It picks a workspace folder in this order:",[222,223,224,234],"ol",{},[185,225,226,229,230,233],{},[196,227,228],{},".\u002Fpostguy-workspace",", if that folder exists where you launched the app (and you passed no ",[196,231,232],{},"--workspace"," option).",[185,235,236,239,240,243],{},[196,237,238],{},"~\u002Fpostguy-workspace"," (",[196,241,242],{},"%USERPROFILE%\\postguy-workspace"," on Windows).",[178,245,246],{},"The folder is created on first use. It holds all your collections, environments and settings as plain files.",[178,248,249,250,254,255,258,259,262],{},"A new workspace opens on a welcome screen. It has three buttons: ",[251,252,253],"strong",{},"New HTTP request",", ",[251,256,257],{},"Import…"," and ",[251,260,261],{},"Settings…",". It also shows the hint \"Cmd\u002FCtrl+N new request · Cmd\u002FCtrl+I import · Cmd\u002FCtrl+K commands\". The status line at the bottom right reads \"Ready\".",[214,264,266],{"id":265},"create-a-collection-and-a-request","Create a collection and a request",[178,268,269,270,273,274,277,278,281,282,191],{},"Press ",[196,271,272],{},"Cmd\u002FCtrl+N",". In an empty workspace, this creates a collection named ",[251,275,276],{},"New Collection"," with a request named ",[251,279,280],{},"New Request",", and opens the request in a tab. The request is an HTTP ",[196,283,284],{},"GET",[178,286,287,288,291],{},"To create things by hand, use the ",[251,289,290],{},"+"," button at the top of the sidebar. Its menu offers:",[182,293,294,298,303,308,313],{},[185,295,296],{},[251,297,253],{},[185,299,300],{},[251,301,302],{},"New gRPC request",[185,304,305],{},[251,306,307],{},"New WebSocket request",[185,309,310],{},[251,311,312],{},"New collection",[185,314,315],{},[251,316,317],{},"New environment",[178,319,320,321,239,324,327,328,254,331,254,334,254,337,258,340,191],{},"Right-click a collection in the sidebar for ",[251,322,323],{},"Rename",[196,325,326],{},"F2","), ",[251,329,330],{},"Add request",[251,332,333],{},"Add folder",[251,335,336],{},"Run",[251,338,339],{},"Duplicate",[251,341,342],{},"Delete",[178,344,345,346,191],{},"Rename the collection to ",[196,347,348],{},"My API",[214,350,352],{"id":351},"send-a-request","Send a request",[178,354,355,356,359,360,363],{},"In the request tab, enter this URL and click ",[251,357,358],{},"Send"," (or press ",[196,361,362],{},"Cmd\u002FCtrl+Enter","):",[365,366,372],"pre",{"className":367,"code":369,"language":370,"meta":371},[368],"language-text","https:\u002F\u002Fhttpbin.org\u002Fget\n","text","",[196,373,369],{"__ignoreMap":371},[178,375,376],{},"The response appears below the request, with its status, time and size.",[214,378,380],{"id":379},"read-the-response","Read the response",[178,382,383],{},"The response viewer has four tabs:",[385,386,387,400],"table",{},[388,389,390],"thead",{},[391,392,393,397],"tr",{},[394,395,396],"th",{},"Tab",[394,398,399],{},"Shows",[401,402,403,426,436,446],"tbody",{},[391,404,405,411],{},[406,407,408],"td",{},[251,409,410],{},"Body",[406,412,413,414,254,417,254,420,258,423],{},"The body in four modes: ",[251,415,416],{},"Pretty",[251,418,419],{},"Raw",[251,421,422],{},"Preview",[251,424,425],{},"Hex",[391,427,428,433],{},[406,429,430],{},[251,431,432],{},"Cookies",[406,434,435],{},"Cookies set by the response (with a count)",[391,437,438,443],{},[406,439,440],{},[251,441,442],{},"Headers",[406,444,445],{},"Response headers (with a count)",[391,447,448,453],{},[406,449,450],{},[251,451,452],{},"Test Results",[406,454,455,456,459],{},"Passed and failed tests, shown as ",[196,457,458],{},"Test Results (passed\u002Ftotal)"," once any test has run",[214,461,463],{"id":462},"save-the-request","Save the request",[178,465,269,466,469],{},[196,467,468],{},"Cmd\u002FCtrl+S",". A request tab with unsaved edits shows a dirty marker. The collection runner and the CLI use the saved version, so save before you run.",[214,471,473],{"id":472},"add-an-environment","Add an environment",[178,475,476],{},"An environment holds variables you can reuse in any request.",[222,478,479,492,509,516],{},[185,480,481,482,484,485,487,488,491],{},"In the sidebar, open the ",[251,483,290],{}," menu and choose ",[251,486,317],{},". It opens as a tab named ",[251,489,490],{},"New Environment",". Edit the name at the top.",[185,493,494,495,258,498,501,502,505,506,191],{},"In the variables table (columns ",[251,496,497],{},"Variable",[251,499,500],{},"Value","), add a variable ",[196,503,504],{},"baseUrl"," with the value ",[196,507,508],{},"https:\u002F\u002Fhttpbin.org",[185,510,511,512,515],{},"In the selector at the right of the tab strip, which reads ",[251,513,514],{},"No environment",", choose your environment.",[185,517,518],{},"Change the request URL to use the variable, then send again:",[365,520,523],{"className":521,"code":522,"language":370,"meta":371},[368],"{{baseUrl}}\u002Fget\n",[196,524,522],{"__ignoreMap":371},[178,526,527,530,531,191],{},[196,528,529],{},"{{name}}"," is replaced when you send. For the lookup order and secret variables, see ",[189,532,53],{"href":54},[214,534,536],{"id":535},"add-a-test","Add a test",[178,538,539,540,543,544,547],{},"Open the ",[251,541,542],{},"Tests"," tab of the request. The ",[251,545,546],{},"Assertions"," table has one row per check, with the columns expression, operator and value. Add a row:",[385,549,550,562],{},[388,551,552],{},[391,553,554,557,560],{},[394,555,556],{},"Expression",[394,558,559],{},"Operator",[394,561,500],{},[401,563,564],{},[391,565,566,571,574],{},[406,567,568],{},[196,569,570],{},"res.status",[406,572,573],{},"equals",[406,575,576],{},[196,577,578],{},"200",[178,580,581,582,585,586,589],{},"Then open the ",[251,583,584],{},"Scripts"," tab and put this in the ",[251,587,588],{},"Post-response"," editor:",[365,591,595],{"className":592,"code":593,"language":594,"meta":371,"style":371},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pm.test(\"status 200\", () => pm.response.to.have.status(200))\n","js",[196,596,597],{"__ignoreMap":371},[598,599,602,606,609,613,616,619,623,625,628,631,635,638,640,643,645,648,650,653,655,658,660,663],"span",{"class":600,"line":601},"line",1,[598,603,605],{"class":604},"sTEyZ","pm",[598,607,191],{"class":608},"sMK4o",[598,610,612],{"class":611},"s2Zo4","test",[598,614,615],{"class":604},"(",[598,617,618],{"class":608},"\"",[598,620,622],{"class":621},"sfazB","status 200",[598,624,618],{"class":608},[598,626,627],{"class":608},",",[598,629,630],{"class":608}," ()",[598,632,634],{"class":633},"spNyl"," =>",[598,636,637],{"class":604}," pm",[598,639,191],{"class":608},[598,641,642],{"class":604},"response",[598,644,191],{"class":608},[598,646,647],{"class":604},"to",[598,649,191],{"class":608},[598,651,652],{"class":604},"have",[598,654,191],{"class":608},[598,656,657],{"class":611},"status",[598,659,615],{"class":604},[598,661,578],{"class":662},"sbssI",[598,664,665],{"class":604},"))\n",[178,667,668,669,671,672,675,676,679,680,191],{},"Send the request again and open ",[251,670,452],{},". Both checks are listed with a ",[196,673,674],{},"PASS"," or ",[196,677,678],{},"FAIL"," badge. Save the request. See ",[189,681,61],{"href":62},[214,683,685],{"id":684},"run-the-collection-in-the-runner","Run the collection in the Runner",[178,687,688,689,691,692,695,696,191],{},"Right-click the collection in the sidebar and choose ",[251,690,336],{},". Or press ",[196,693,694],{},"Cmd\u002FCtrl+K"," and choose ",[251,697,698],{},"Open collection runner",[178,700,701],{},"The Runner tab lets you set:",[182,703,704,709,714,720,725,730,735],{},[185,705,706],{},[251,707,708],{},"Collection",[185,710,711],{},[251,712,713],{},"Environment",[185,715,716,719],{},[251,717,718],{},"Requests",": which ones to include",[185,721,722],{},[251,723,724],{},"Iterations",[185,726,727],{},[251,728,729],{},"Delay",[185,731,732],{},[251,733,734],{},"Data file",[185,736,737],{},[251,738,739],{},"Stop on error",[178,741,742,743,746,747,254,750,254,753,675,756,759,760,763,764,191],{},"Select your environment and click ",[251,744,745],{},"Run My API",". Results appear on the right. Filter them by ",[251,748,749],{},"All",[251,751,752],{},"Passed",[251,754,755],{},"Failed",[251,757,758],{},"Skipped",". The ",[251,761,762],{},"Download report"," section offers CSV, Excel, PDF, HTML, JSON and JUnit. See ",[189,765,65],{"href":66},[214,767,769],{"id":768},"run-it-headlessly","Run it headlessly",[178,771,772],{},"The CLI runs the same engine without a window. Close the app first, because only one process can open a workspace at a time. Then run:",[365,774,778],{"className":775,"code":776,"language":777,"meta":371,"style":371},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","postguy-cli run --collection \"My API\" --workspace ~\u002Fpostguy-workspace --reporters cli,junit --out reports\n","sh",[196,779,780],{"__ignoreMap":371},[598,781,782],{"class":600,"line":601},[598,783,776],{},[182,785,786,792,801,808],{},[185,787,788,791],{},[196,789,790],{},"--collection"," takes a collection id or its exact name. If the name matches more than one collection, use an id.",[185,793,794,797,798,191],{},[196,795,796],{},"--environment"," takes an environment id or name the same way. Without it, the run uses the workspace's active environment, which is the one selected in the app. So selecting your environment before you close the app is enough. To be explicit, add ",[196,799,800],{},"--environment \"New Environment\"",[185,802,803,804,807],{},"The ",[196,805,806],{},"cli"," reporter prints a summary to the terminal.",[185,809,803,810,813,814,191],{},[196,811,812],{},"junit"," reporter writes ",[196,815,816],{},"reports\u002Fpostguy-run-\u003Crun id>.xml",[178,818,819],{},"Exit codes:",[385,821,822,832],{},[388,823,824],{},[391,825,826,829],{},[394,827,828],{},"Code",[394,830,831],{},"Meaning",[401,833,834,844,854],{},[391,835,836,841],{},[406,837,838],{},[196,839,840],{},"0",[406,842,843],{},"Everything passed",[391,845,846,851],{},[406,847,848],{},[196,849,850],{},"1",[406,852,853],{},"A request or test failed",[391,855,856,861],{},[406,857,858],{},[196,859,860],{},"2",[406,862,863],{},"Usage error, such as an unknown collection name",[865,866,868],"h2",{"id":867},"next-steps","Next steps",[870,871,872,878,882,886],"card-group",{},[873,874,877],"card",{"icon":875,"title":876,"to":38},"i-lucide-layout-dashboard","Interface tour","Sidebar, tabs, command palette and panels.",[873,879,881],{"icon":880,"title":53,"to":54},"i-lucide-braces","Environments, globals, secrets and dynamic values.",[873,883,885],{"icon":884,"title":69,"to":70},"i-lucide-arrow-left-right","Bring in Postman, OpenAPI, HAR, cURL and Bruno data.",[873,887,889,890,893],{"icon":102,"title":888,"to":108},"CLI reference","Every ",[196,891,892],{},"postguy-cli"," verb, flag and exit code.",[895,896,897],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":371,"searchDepth":899,"depth":899,"links":900},2,[901,903,904,905,906,907,908,909,910,911],{"id":216,"depth":902,"text":217},3,{"id":265,"depth":902,"text":266},{"id":351,"depth":902,"text":352},{"id":379,"depth":902,"text":380},{"id":462,"depth":902,"text":463},{"id":472,"depth":902,"text":473},{"id":535,"depth":902,"text":536},{"id":684,"depth":902,"text":685},{"id":768,"depth":902,"text":769},{"id":867,"depth":899,"text":868},"A guided tour from first launch to a headless collection run. Send a request, use an environment, add tests and run them.","md",null,{},true,{"title":5,"description":912},"mFKvhlHLVu1v5rPlYFy8NofMuAYTt8c-ewMSsfg5tsI",[920,922],{"title":15,"path":16,"stem":17,"description":921,"children":-1},"Download and install Postguy on macOS, Windows, Linux or FreeBSD. Verify checksums, choose a workspace and uninstall.",{"title":22,"path":23,"stem":24,"description":923,"children":-1},"Build the Postguy desktop app and the postguy-cli binary with Cargo on macOS, Windows, Linux and FreeBSD.",1793179612560]