[{"data":1,"prerenderedAt":1169},["ShallowReactive",2],{"docs-nav":3,"docs:\u002Fdocs\u002Fterminal-ui":139},[4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136],{"path":5,"title":6},"\u002Fdocs\u002Faccess-gating","Protect a local route",{"path":8,"title":9},"\u002Fdocs\u002Farchitecture\u002Fsecurity-and-trust","Security and trust",{"path":11,"title":12},"\u002Fdocs\u002Fconcepts\u002Fbuilds-and-deployments","Build and deploy",{"path":14,"title":15},"\u002Fdocs\u002Fconcepts\u002Fconfiguration-ownership","Where configuration belongs",{"path":17,"title":18},"\u002Fdocs\u002Fconcepts\u002Fenvironments-and-secrets","Environment values and secrets",{"path":20,"title":21},"\u002Fdocs\u002Fconcepts\u002Fmental-model","How projects fit together",{"path":23,"title":24},"\u002Fdocs\u002Fconcepts\u002Fplans-and-apply","Plans and apply",{"path":26,"title":27},"\u002Fdocs\u002Fconcepts\u002Ftargets-and-runtimes","Choose a target and runtime",{"path":29,"title":30},"\u002Fdocs\u002Fcontribute\u002Freleases","Publish a release",{"path":32,"title":33},"\u002Fdocs\u002Fdevelopment-mounts","Development mounts",{"path":35,"title":36},"\u002Fdocs\u002Fgetting-started","Getting started",{"path":38,"title":39},"\u002Fdocs\u002Fhelp\u002Ffaq","FAQ",{"path":41,"title":42},"\u002Fdocs\u002Fhelp\u002Ftroubleshooting","Troubleshooting",{"path":44,"title":45},"\u002Fdocs\u002Fhow-to\u002Fdeploy-production","Prepare a deployment environment",{"path":47,"title":48},"\u002Fdocs\u002Fhow-to\u002Fswarm-cluster","Run on a multi-node Swarm",{"path":50,"title":51},"\u002Fdocs","mm documentation",{"path":53,"title":54},"\u002Fdocs\u002Fjobs-and-schedules","Jobs and schedules",{"path":56,"title":57},"\u002Fdocs\u002Flocal-dashboard","Local dashboard",{"path":59,"title":60},"\u002Fdocs\u002Flocal-https","Local HTTPS",{"path":62,"title":63},"\u002Fdocs\u002Flocal-services","Local services",{"path":65,"title":66},"\u002Fdocs\u002Fmcp","Let an AI agent work on your project",{"path":68,"title":69},"\u002Fdocs\u002Fmulti-project-hosts","Run multiple projects on one host",{"path":71,"title":72},"\u002Fdocs\u002Fonboarding","Set up a project",{"path":74,"title":75},"\u002Fdocs\u002Fopenbao","Use OpenBao",{"path":77,"title":78},"\u002Fdocs\u002Fproject\u002Fcontributing","Contributing",{"path":80,"title":81},"\u002Fdocs\u002Fproject\u002Flicense","License",{"path":83,"title":84},"\u002Fdocs\u002Fproject\u002Fsecurity","Security",{"path":86,"title":87},"\u002Fdocs\u002Freference\u002Fcapability-matrix","Supported features and platforms",{"path":89,"title":90},"\u002Fdocs\u002Freference\u002Fcli","CLI command reference",{"path":92,"title":93},"\u002Fdocs\u002Freference\u002Fconfiguration","Configuration",{"path":95,"title":96},"\u002Fdocs\u002Freference\u002Fenvironment-variables","Environment variables",{"path":98,"title":99},"\u002Fdocs\u002Freference\u002Ferrors-and-exit-codes","Errors and exit codes",{"path":101,"title":102},"\u002Fdocs\u002Freference\u002Fknown-issues","Known limitations",{"path":104,"title":105},"\u002Fdocs\u002Fremote-access","Manage remote access",{"path":107,"title":108},"\u002Fdocs\u002Fremote-daemon","Set up a remote host",{"path":110,"title":111},"\u002Fdocs\u002Fruntime-observability","Status, logs, and commands",{"path":113,"title":114},"\u002Fdocs\u002Fsecret-delivery","Pass secrets to your app",{"path":116,"title":117},"\u002Fdocs\u002Fsecret-providers","Choose a secret store",{"path":119,"title":120},"\u002Fdocs\u002Fstart\u002Finstall","Install mm",{"path":122,"title":123},"\u002Fdocs\u002Fterminal-ui","Terminal UI",{"path":125,"title":126},"\u002Fdocs\u002Ftutorials\u002Fdotnet-web-api",".NET web API example",{"path":128,"title":129},"\u002Fdocs\u002Ftutorials\u002Ffirst-local-app","First local app",{"path":131,"title":132},"\u002Fdocs\u002Ftutorials\u002Flaravel-rust","Laravel and Rust example",{"path":134,"title":135},"\u002Fdocs\u002Ftutorials\u002Fnode-fullstack","Node full stack example",{"path":137,"title":138},"\u002Fdocs\u002Fvault","Use HashiCorp Vault",{"id":140,"title":123,"body":141,"description":1162,"extension":1163,"meta":1164,"navigation":1165,"path":122,"seo":1166,"stem":1167,"__hash__":1168},"docs\u002Fdocs\u002Fterminal-ui.md",{"type":142,"value":143,"toc":1145},"minimark",[144,153,184,195,198,203,214,217,369,384,388,394,401,408,419,428,432,441,447,453,531,536,541,547,648,659,662,667,673,676,684,707,710,719,723,726,767,777,799,802,844,848,861,923,929,933,945,952,958,1008,1027,1036,1040,1048,1052,1058,1070,1138,1141],[145,146,147,148,152],"p",{},"Run ",[149,150,151],"code",{},"mm"," with no arguments in an interactive terminal, from anywhere inside a\nproject:",[154,155,160],"pre",{"className":156,"code":157,"language":158,"meta":159,"style":159},"language-sh shiki shiki-themes mm","mm\nmm --environment staging\n","sh","",[149,161,162,171],{"__ignoreMap":159},[163,164,167],"span",{"class":165,"line":166},"line",1,[163,168,170],{"class":169},"svrjQ","mm\n",[163,172,174,176,180],{"class":165,"line":173},2,[163,175,151],{"class":169},[163,177,179],{"class":178},"sbRf1"," --environment",[163,181,183],{"class":182},"sv8ni"," staging\n",[145,185,186,187,190,191,194],{},"The terminal UI opens on the default environment, or on the one you name. It\nrefreshes on its own: every 3 seconds for a local environment and every 10\nseconds for a remote one. Press ",[149,188,189],{},"?"," in any view for its keys and ",[149,192,193],{},"q"," to quit.",[145,196,197],{},"Use explicit subcommands in scripts; the terminal UI needs an interactive\nterminal.",[199,200,202],"h2",{"id":201},"find-your-way-around","Find your way around",[145,204,205,206,209,210,213],{},"The header shows the project, the environment, and where that environment\nruns: ",[149,207,208],{},"local",", or ",[149,211,212],{},"remote"," and the target's name. A remote environment gets a\nsolid label so it is hard to miss.",[145,215,216],{},"Views are listed in the sidebar and numbered. Press the number to open one.",[218,219,220,236],"table",{},[221,222,223],"thead",{},[224,225,226,230,233],"tr",{},[227,228,229],"th",{},"Key",[227,231,232],{},"View",[227,234,235],{},"What it is for",[237,238,239,253,266,279,292,305,317,330,343,356],"tbody",{},[224,240,241,247,250],{},[242,243,244],"td",{},[149,245,246],{},"1",[242,248,249],{},"Overview",[242,251,252],{},"Health at a glance and what needs attention",[224,254,255,260,263],{},[242,256,257],{},[149,258,259],{},"2",[242,261,262],{},"Environments",[242,264,265],{},"Every environment, where it runs, and switching",[224,267,268,273,276],{},[242,269,270],{},[149,271,272],{},"3",[242,274,275],{},"Services",[242,277,278],{},"Services and containers, with their actions",[224,280,281,286,289],{},[242,282,283],{},[149,284,285],{},"4",[242,287,288],{},"Ingress",[242,290,291],{},"Routes and why a service has none",[224,293,294,299,302],{},[242,295,296],{},[149,297,298],{},"5",[242,300,301],{},"Variables",[242,303,304],{},"What each service reads and where the value comes from",[224,306,307,312,315],{},[242,308,309],{},[149,310,311],{},"6",[242,313,314],{},"Mounts",[242,316,33],{},[224,318,319,324,327],{},[242,320,321],{},[149,322,323],{},"7",[242,325,326],{},"Diagnostics",[242,328,329],{},"Every finding, with its fix",[224,331,332,337,340],{},[242,333,334],{},[149,335,336],{},"8",[242,338,339],{},"TLS",[242,341,342],{},"The local certificate authority",[224,344,345,350,353],{},[242,346,347],{},[149,348,349],{},"9",[242,351,352],{},"Access",[242,354,355],{},"Who you are on the host, and the team",[224,357,358,363,366],{},[242,359,360],{},[149,361,362],{},"0",[242,364,365],{},"Gates",[242,367,368],{},"Access policies and their users",[145,370,371,372,375,376,379,380,383],{},"Providers, Jobs, and Guided have no number: reach them with ",[149,373,374],{},"tab",", or with ",[149,377,378],{},"[","\nand ",[149,381,382],{},"]",", which jump between sidebar groups.",[199,385,387],{"id":386},"see-and-switch-environments","See and switch environments",[145,389,390,391,393],{},"Press ",[149,392,259],{},".",[145,395,396],{},[397,398],"img",{"alt":399,"src":400},"The Environments view lists four environments with where each runs, its services, and its deployed commit",".\u002Fimages\u002Ftui\u002Fenvironments.png",[145,402,403,404,407],{},"Each row is one environment from the project configuration: where it runs, its\nruntime, how many services are running, the deployed commit, and when it was\nlast checked. The current environment is live. The others are checked when you\nopen the view; press ",[149,405,406],{},"r"," to check them again. Checking a remote environment\nopens one SSH connection to its host, so the view does not poll them.",[145,409,410,411,414,415,418],{},"Select an environment and press ",[149,412,413],{},"enter"," to switch to it. Every other view then\nshows that environment. If the host cannot be reached, the terminal UI says why\nand stays where it was. ",[149,416,417],{},"esc"," cancels a switch in progress.",[145,420,421,422,425,426,393],{},"An environment marked ",[149,423,424],{},"not set up"," names a target this machine does not know.\nRegister the target, or use the repository's target definition, then press ",[149,427,406],{},[199,429,431],{"id":430},"act-on-a-service-or-a-container","Act on a service or a container",[145,433,390,434,436,437,440],{},[149,435,272],{},". Services with more than one container list them underneath; ",[149,438,439],{},"space","\nfolds and unfolds the selected service.",[145,442,443,444,446],{},"Select a service or one of its containers and press ",[149,445,413],{}," for its actions,\nor use the action's key directly.",[145,448,449],{},[397,450],{"alt":451,"src":452},"The action menu for a service offers logs, run a command, restart, and variables",".\u002Fimages\u002Ftui\u002Fservice-menu.png",[218,454,455,470],{},[221,456,457],{},[224,458,459,461,464,467],{},[227,460,229],{},[227,462,463],{},"Action",[227,465,466],{},"On a service",[227,468,469],{},"On a container",[237,471,472,488,503,516],{},[224,473,474,479,482,485],{},[242,475,476],{},[149,477,478],{},"l",[242,480,481],{},"Logs",[242,483,484],{},"Every container",[242,486,487],{},"That container",[224,489,490,495,498,501],{},[242,491,492],{},[149,493,494],{},"x",[242,496,497],{},"Run a command",[242,499,500],{},"Its first running container",[242,502,487],{},[224,504,505,509,512,514],{},[242,506,507],{},[149,508,406],{},[242,510,511],{},"Restart",[242,513,484],{},[242,515,487],{},[224,517,518,523,525,528],{},[242,519,520],{},[149,521,522],{},"v",[242,524,301],{},[242,526,527],{},"The service's variables",[242,529,530],{},"The same",[532,533,535],"h3",{"id":534},"follow-logs","Follow logs",[145,537,538,540],{},[149,539,478],{}," opens the last 200 lines and follows new ones.",[145,542,543],{},[397,544],{"alt":545,"src":546},"The log view follows a service and marks warnings and errors",".\u002Fimages\u002Ftui\u002Flogs.png",[218,548,549,558],{},[221,550,551],{},[224,552,553,555],{},[227,554,229],{},[227,556,557],{},"Effect",[237,559,560,581,590,600,610,620,630,639],{},[224,561,562,578],{},[242,563,564,567,568,571,572,567,575],{},[149,565,566],{},"j"," ",[149,569,570],{},"k",", arrows, ",[149,573,574],{},"pgup",[149,576,577],{},"pgdn",[242,579,580],{},"Scroll. Scrolling up pauses; new lines are counted",[224,582,583,587],{},[242,584,585],{},[149,586,439],{},[242,588,589],{},"Pause, or return to the newest line",[224,591,592,597],{},[242,593,594],{},[149,595,596],{},"\u002F",[242,598,599],{},"Show only lines that contain the text you type",[224,601,602,607],{},[242,603,604],{},[149,605,606],{},"w",[242,608,609],{},"Wrap long lines, or cut them at the edge",[224,611,612,617],{},[242,613,614],{},[149,615,616],{},"t",[242,618,619],{},"Show the time of each line",[224,621,622,627],{},[242,623,624],{},[149,625,626],{},"c",[242,628,629],{},"Clear the lines shown so far",[224,631,632,636],{},[242,633,634],{},[149,635,406],{},[242,637,638],{},"Connect again after the stream ended",[224,640,641,645],{},[242,642,643],{},[149,644,417],{},[242,646,647],{},"Close",[145,649,650,651,658],{},"Lines from standard error have a bar in the margin. Lines that mention an\nerror or a warning are tinted. Configured secret values are redacted, as in\n",[652,653,655],"a",{"href":654},".\u002Fruntime-observability#read-logs",[149,656,657],{},"mm service logs",". The view keeps the\nnewest 5,000 lines.",[532,660,497],{"id":661},"run-a-command",[145,663,664,666],{},[149,665,494],{}," asks for a command and runs it in one container.",[145,668,669],{},[397,670],{"alt":671,"src":672},"The output of a command, with its exit code",".\u002Fimages\u002Ftui\u002Frun.png",[145,674,675],{},"The arguments are passed exactly as typed: no shell runs and there is no TTY.\nQuotes group words. For pipes, redirects, or variables, start a shell\nyourself:",[154,677,682],{"className":678,"code":680,"language":681,"meta":159},[679],"language-text","sh -c 'ls \u002Fapp | wc -l'\n","text",[149,683,680],{"__ignoreMap":159},[145,685,686,687,690,691,693,694,696,697,699,700,706],{},"The up and down arrows recall earlier commands. A command may run for 30\nseconds, the same limit as ",[149,688,689],{},"mm service exec","; ",[149,692,417],{}," stops it sooner. When it ends, ",[149,695,413],{}," asks for another and ",[149,698,406],{}," runs\nthe same one again. Commands that need input, such as a shell or a database\nconsole, need ",[652,701,703],{"href":702},".\u002Fruntime-observability#run-a-command",[149,704,705],{},"mm service shell","\ninstead.",[532,708,511],{"id":709},"restart",[145,711,712,714,715,718],{},[149,713,406],{}," asks first, then restarts the containers. The image, configuration, and\nvolumes stay as deployed; to pick up a changed variable or image, press ",[149,716,717],{},"u"," to\ndeploy instead. On Docker Swarm, restart replaces the service's tasks in the\norder its update policy sets, and a single container cannot be restarted.",[199,720,722],{"id":721},"change-the-configuration","Change the configuration",[145,724,725],{},"Environments, jobs, schedules, configuration values, and the team can be\nchanged without leaving the terminal UI. The keys are the same in every view\nthat supports them:",[218,727,728,736],{},[221,729,730],{},[224,731,732,734],{},[227,733,229],{},[227,735,557],{},[237,737,738,747,757],{},[224,739,740,744],{},[242,741,742],{},[149,743,652],{},[242,745,746],{},"Add",[224,748,749,754],{},[242,750,751],{},[149,752,753],{},"e",[242,755,756],{},"Edit the selected item",[224,758,759,764],{},[242,760,761],{},[149,762,763],{},"D",[242,765,766],{},"Remove the selected item",[145,768,769,770,776],{},"Each change follows the same three steps as\n",[652,771,773],{"href":772},".\u002Fconcepts\u002Fplans-and-apply",[149,774,775],{},"mm config",":",[778,779,780,787,794],"ol",{},[781,782,783,784,786],"li",{},"Fill in a short form. ",[149,785,374],{}," moves between fields and the arrow keys change\na choice. An edit keeps every key the form does not show.",[781,788,789,790,793],{},"Review the exact diff of the configuration file. Nothing is written before\nthis point; ",[149,791,792],{},"b"," goes back to the form.",[781,795,796,798],{},[149,797,413],{}," writes the file. If your review is out of date because the file\nchanged meanwhile, mm refuses and asks you to review again.",[145,800,801],{},"A change is a change to files in your checkout. On a remote environment it\ntakes effect when you commit, push, and deploy; the terminal UI lists those\nsteps after it saves.",[218,803,804,813],{},[221,805,806],{},[224,807,808,810],{},[227,809,232],{},[227,811,812],{},"What you can change",[237,814,815,822,829,837],{},[224,816,817,819],{},[242,818,262],{},[242,820,821],{},"Add, edit (target, runtime, deploy branches), and remove",[224,823,824,826],{},[242,825,301],{},[242,827,828],{},"Set or remove a key's value for the current environment",[224,830,831,834],{},[242,832,833],{},"Jobs",[242,835,836],{},"Add, edit, and remove jobs and schedules",[224,838,839,841],{},[242,840,352],{},[242,842,843],{},"Add a teammate, change their level, remove them",[532,845,847],{"id":846},"change-a-variable","Change a variable",[145,849,390,850,209,852,854,855,857,858,860],{},[149,851,298],{},[149,853,522],{}," on a service to see only its variables. ",[149,856,596],{}," searches and ",[149,859,145],{},"\nshows only the variables with a problem.",[218,862,863,875],{},[221,864,865],{},[224,866,867,869,872],{},[227,868,229],{},[227,870,871],{},"On a local environment",[227,873,874],{},"On a remote environment",[237,876,877,889,901,912],{},[224,878,879,883,886],{},[242,880,881],{},[149,882,413],{},[242,884,885],{},"Set a value for this workspace only (a local override), or enter a secret without showing it",[242,887,888],{},"Set the value in the configuration",[224,890,891,895,898],{},[242,892,893],{},[149,894,494],{},[242,896,897],{},"Remove the local override",[242,899,900],{},"Not available",[224,902,903,907,910],{},[242,904,905],{},[149,906,626],{},[242,908,909],{},"Set the value in the configuration, for everyone",[242,911,530],{},[224,913,914,918,921],{},[242,915,916],{},[149,917,763],{},[242,919,920],{},"Remove the value from the configuration",[242,922,530],{},[145,924,925,926,928],{},"After a local change, press ",[149,927,717],{}," to start the stack again with the new value.",[199,930,932],{"id":931},"add-a-teammate","Add a teammate",[145,934,935,936,939,940,944],{},"Access to remote environments is declared in the repository's ",[149,937,938],{},"users:"," key:\nwho each person is, their public keys, and their level per environment. See\n",[652,941,943],{"href":942},".\u002Fremote-access","manage remote access"," for the levels.",[145,946,390,947,949,950,393],{},[149,948,349],{}," for the Access view, then ",[149,951,652],{},[145,953,954],{},[397,955],{"alt":956,"src":957},"The form to add a teammate asks for a name, a public key, and a level per remote environment",".\u002Fimages\u002Ftui\u002Fteammate-form.png",[778,959,960,975,978,985,997],{},[781,961,962,963,966,967,970,971,974],{},"Ask your teammate to run ",[149,964,965],{},"mm key create"," and then ",[149,968,969],{},"mm key show",", and to\nsend you the line that starts with ",[149,972,973],{},"ssh-ed25519",". It is a public key; the\nprivate half never leaves their machine.",[781,976,977],{},"Enter their name and paste the key.",[781,979,980,981,984],{},"Choose a level for each remote environment with the arrow keys. ",[149,982,983],{},"none","\nleaves them out of that environment.",[781,986,390,987,989,990,993],{},[149,988,413],{}," and review the diff.",[991,992],"br",{},[397,994],{"alt":995,"src":996},"The review shows the lines added to the users file",".\u002Fimages\u002Ftui\u002Fteammate-review.png",[781,998,390,999,1001,1002,1004],{},[149,1000,413],{}," again to write the file. The terminal UI then lists what is\nleft to do.",[991,1003],{},[397,1005],{"alt":1006,"src":1007},"After saving, the terminal UI lists the commit, merge, and deploy steps",".\u002Fimages\u002Ftui\u002Fteammate-done.png",[145,1009,1010,1011,1014,1015,1018,1019,1022,1023,1026],{},"The change gives nobody access by itself. It takes effect when it is merged\nand each environment is deployed, or when an admin runs ",[149,1012,1013],{},"mm team sync"," there.\nWho may merge it is up to your repository: move the users into their own file\nwith ",[149,1016,1017],{},"mm config split users"," and list ",[149,1020,1021],{},".config\u002Fmm\u002Fusers.yaml"," in ",[149,1024,1025],{},"CODEOWNERS","\nto give access its own reviewers.",[145,1028,1029,1030,1032,1033,1035],{},"To change someone's level, select them and press ",[149,1031,753],{},". To remove them, press\n",[149,1034,763],{},"; they keep access to an environment until it is deployed again.",[532,1037,1039],{"id":1038},"request-access-for-yourself","Request access for yourself",[145,1041,1042,1043,966,1045,1047],{},"On a new machine, press ",[149,1044,349],{},[149,1046,566],{},". The terminal UI creates this\ndevice's key if it has none, proposes your entry with the levels you ask for,\nand shows the same review. Commit the change on a branch and open a pull\nrequest; a code owner grants the access by merging it.",[199,1049,1051],{"id":1050},"work-on-a-remote-environment","Work on a remote environment",[145,1053,1054],{},[397,1055],{"alt":1056,"src":1057},"The Services view of a remote environment shows the target, who you are on the host, and the deployed commit",".\u002Fimages\u002Ftui\u002Fremote-services.png",[145,1059,1060,1061,1065,1066,1069],{},"On a remote environment the terminal UI talks to the host's\n",[652,1062,1064],{"href":1063},".\u002Fremote-daemon","remote daemon"," with your device key, and the host decides\nwhat you may do. The Services view shows the target, who the host says you\nare, your ",[652,1067,1068],{"href":942},"access",", and the deployed commit.",[218,1071,1072,1080],{},[221,1073,1074],{},[224,1075,1076,1078],{},[227,1077,463],{},[227,1079,874],{},[237,1081,1082,1094,1105,1114,1121,1129],{},[224,1083,1084,1087],{},[242,1085,1086],{},"Status, logs",[242,1088,1089,1090,1093],{},"Available with ",[149,1091,1092],{},"view"," access",[224,1095,1096,1098],{},[242,1097,497],{},[242,1099,1100,1101,1104],{},"Available when the host grants you ",[149,1102,1103],{},"exec"," for the service",[224,1106,1107,1111],{},[242,1108,1109],{},[149,1110,717],{},[242,1112,1113],{},"Reviews and applies a deploy of your current commit",[224,1115,1116,1118],{},[242,1117,511],{},[242,1119,1120],{},"Not available yet. Deploy again to replace the containers",[224,1122,1123,1126],{},[242,1124,1125],{},"Stop",[242,1127,1128],{},"Not available. Stop the stack on the host",[224,1130,1131,1133],{},[242,1132,301],{},[242,1134,1135,1137],{},[149,1136,413],{}," sets the value in the configuration. Local overrides do not reach a host, so commit and deploy to apply it",[145,1139,1140],{},"Variables are shown from your checkout. When your checkout differs from the\ndeployed commit, the view says so instead of showing values the host does not\nuse.",[1142,1143,1144],"style",{},"html pre.shiki code .svrjQ, html code.shiki .svrjQ{--shiki-default:var(--mm-code-function)}html pre.shiki code .sbRf1, html code.shiki .sbRf1{--shiki-default:var(--mm-code-option)}html pre.shiki code .sv8ni, html code.shiki .sv8ni{--shiki-default:var(--mm-code-string)}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":159,"searchDepth":173,"depth":173,"links":1146},[1147,1148,1149,1155,1158,1161],{"id":201,"depth":173,"text":202},{"id":386,"depth":173,"text":387},{"id":430,"depth":173,"text":431,"children":1150},[1151,1153,1154],{"id":534,"depth":1152,"text":535},3,{"id":661,"depth":1152,"text":497},{"id":709,"depth":1152,"text":511},{"id":721,"depth":173,"text":722,"children":1156},[1157],{"id":846,"depth":1152,"text":847},{"id":931,"depth":173,"text":932,"children":1159},[1160],{"id":1038,"depth":1152,"text":1039},{"id":1050,"depth":173,"text":1051},"Switch environments, follow logs, run commands, restart services, and add teammates from the terminal.","md",{},true,{"title":123,"description":1162},"docs\u002Fterminal-ui","yGxDB2Cki2iUgo4FdNaD0PQ4dsWIP9OMkJQyHtm3ImM",1794512546197]