[{"data":1,"prerenderedAt":1208},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fcli":89,"\u002Fgetting-started\u002Fcli-surround":1203},[4,40,63,76],{"title":5,"path":6,"stem":7,"children":8,"icon":39},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11,15,19,23,27,31,35],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Quick Start: Service Provider","\u002Fgetting-started\u002Fquickstart-sp","1.getting-started\u002F2.quickstart-sp",{"title":16,"path":17,"stem":18},"Quick Start: Identity Provider","\u002Fgetting-started\u002Fquickstart-idp","1.getting-started\u002F3.quickstart-idp",{"title":20,"path":21,"stem":22},"Quick Start: Agent","\u002Fgetting-started\u002Fquickstart-agent","1.getting-started\u002F4.quickstart-agent",{"title":24,"path":25,"stem":26},"Quick Start","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F5.installation",{"title":28,"path":29,"stem":30},"How It Works","\u002Fgetting-started\u002Fhow-it-works","1.getting-started\u002F6.how-it-works",{"title":32,"path":33,"stem":34},"For Service Providers","\u002Fgetting-started\u002Ffor-service-providers","1.getting-started\u002F7.for-service-providers",{"title":36,"path":37,"stem":38},"CLI (apes & ape-shell)","\u002Fgetting-started\u002Fcli","1.getting-started\u002F8.cli",false,{"title":41,"path":42,"stem":43,"children":44,"icon":39},"Ecosystem","\u002Fecosystem","2.ecosystem\u002F1.index",[45,47,51,55,59],{"title":46,"path":42,"stem":43},"Overview",{"title":48,"path":49,"stem":50},"OpenApe Auth","\u002Fecosystem\u002Fauth","2.ecosystem\u002F2.auth",{"title":52,"path":53,"stem":54},"OpenApe Grants","\u002Fecosystem\u002Fgrants","2.ecosystem\u002F3.grants",{"title":56,"path":57,"stem":58},"nuxt-auth-sp","\u002Fecosystem\u002Fnuxt-auth-sp","2.ecosystem\u002F4.nuxt-auth-sp",{"title":60,"path":61,"stem":62},"escapes","\u002Fecosystem\u002Fescapes","2.ecosystem\u002F5.escapes",{"title":64,"icon":39,"path":65,"stem":66,"children":67,"page":39},"Security","\u002Fsecurity","3.security",[68,72],{"title":69,"path":70,"stem":71},"Compliance","\u002Fsecurity\u002Fcompliance","3.security\u002F1.compliance",{"title":73,"path":74,"stem":75},"Threat Model","\u002Fsecurity\u002Fthreat-model","3.security\u002F2.threat-model",{"title":77,"icon":39,"path":78,"stem":79,"children":80,"page":39},"Guides","\u002Fguides","4.guides",[81,85],{"title":82,"path":83,"stem":84},"Capabilities & Grants","\u002Fguides\u002Fcapabilities","4.guides\u002F1.capabilities",{"title":86,"path":87,"stem":88},"Delegation","\u002Fguides\u002Fdelegation","4.guides\u002F2.delegation",{"id":90,"title":36,"body":91,"description":1197,"extension":1198,"links":1199,"meta":1200,"navigation":208,"path":37,"seo":1201,"stem":38,"__hash__":1202},"docs\u002F1.getting-started\u002F8.cli.md",{"type":92,"value":93,"toc":1171},"minimark",[94,99,108,115,120,155,158,177,180,252,255,259,264,279,286,290,293,336,339,346,349,377,403,414,418,443,449,453,465,468,476,480,487,538,545,549,730,734,737,779,783,786,827,831,838,878,910,914,918,982,986,1078,1082,1138,1142,1167],[95,96,98],"h1",{"id":97},"apes-cli","apes CLI",[100,101,102,103,107],"p",{},"The ",[104,105,106],"code",{},"apes"," CLI is your command-line gateway to an OpenApe IdP. It handles authentication, grant requests, delegations, and grant-secured command execution.",[100,109,110,111,114],{},"Ships alongside ",[104,112,113],{},"ape-shell",", a drop-in shell replacement that routes every command through a DDISA grant — useful for sandboxing AI coding agents.",[116,117,119],"h2",{"id":118},"installation","Installation",[121,122,127],"pre",{"className":123,"code":124,"language":125,"meta":126,"style":126},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add -g @openape\u002Fapes\n# or: npm install -g @openape\u002Fapes\n","bash","",[104,128,129,148],{"__ignoreMap":126},[130,131,134,138,142,145],"span",{"class":132,"line":133},"line",1,[130,135,137],{"class":136},"sBMFI","pnpm",[130,139,141],{"class":140},"sfazB"," add",[130,143,144],{"class":140}," -g",[130,146,147],{"class":140}," @openape\u002Fapes\n",[130,149,151],{"class":132,"line":150},2,[130,152,154],{"class":153},"sHwdD","# or: npm install -g @openape\u002Fapes\n",[100,156,157],{},"After installation, verify:",[121,159,161],{"className":123,"code":160,"language":125,"meta":126,"style":126},"apes --help\nape-shell --version\n",[104,162,163,170],{"__ignoreMap":126},[130,164,165,167],{"class":132,"line":133},[130,166,106],{"class":136},[130,168,169],{"class":140}," --help\n",[130,171,172,174],{"class":132,"line":150},[130,173,113],{"class":136},[130,175,176],{"class":140}," --version\n",[116,178,24],{"id":179},"quick-start",[121,181,183],{"className":123,"code":182,"language":125,"meta":126,"style":126},"# Login (opens browser for PKCE flow)\napes login --idp https:\u002F\u002Fid.example.com\n\n# Verify identity\napes whoami\n\n# Run a command through a grant\napes run -- git status\n",[104,184,185,190,203,210,216,224,229,235],{"__ignoreMap":126},[130,186,187],{"class":132,"line":133},[130,188,189],{"class":153},"# Login (opens browser for PKCE flow)\n",[130,191,192,194,197,200],{"class":132,"line":150},[130,193,106],{"class":136},[130,195,196],{"class":140}," login",[130,198,199],{"class":140}," --idp",[130,201,202],{"class":140}," https:\u002F\u002Fid.example.com\n",[130,204,206],{"class":132,"line":205},3,[130,207,209],{"emptyLinePlaceholder":208},true,"\n",[130,211,213],{"class":132,"line":212},4,[130,214,215],{"class":153},"# Verify identity\n",[130,217,219,221],{"class":132,"line":218},5,[130,220,106],{"class":136},[130,222,223],{"class":140}," whoami\n",[130,225,227],{"class":132,"line":226},6,[130,228,209],{"emptyLinePlaceholder":208},[130,230,232],{"class":132,"line":231},7,[130,233,234],{"class":153},"# Run a command through a grant\n",[130,236,238,240,243,246,249],{"class":132,"line":237},8,[130,239,106],{"class":136},[130,241,242],{"class":140}," run",[130,244,245],{"class":140}," --",[130,247,248],{"class":140}," git",[130,250,251],{"class":140}," status\n",[100,253,254],{},"The first run creates a grant request. After a human approves it in the browser, the command executes.",[116,256,258],{"id":257},"authentication-modes","Authentication Modes",[260,261,263],"h3",{"id":262},"human-pkce-browser-login","Human (PKCE Browser Login)",[121,265,267],{"className":123,"code":266,"language":125,"meta":126,"style":126},"apes login --idp https:\u002F\u002Fid.example.com\n",[104,268,269],{"__ignoreMap":126},[130,270,271,273,275,277],{"class":132,"line":133},[130,272,106],{"class":136},[130,274,196],{"class":140},[130,276,199],{"class":140},[130,278,202],{"class":140},[100,280,281,282,285],{},"Opens a browser for WebAuthn\u002Fpasskey login. The token is stored at ",[104,283,284],{},"~\u002F.config\u002Fapes\u002Fauth.json",".",[260,287,289],{"id":288},"agent-ed25519-key","Agent (Ed25519 Key)",[100,291,292],{},"For automated systems:",[121,294,296],{"className":123,"code":295,"language":125,"meta":126,"style":126},"apes login \\\n  --idp https:\u002F\u002Fid.example.com \\\n  --email agent@example.com \\\n  --key ~\u002F.ssh\u002Fid_ed25519\n",[104,297,298,308,318,328],{"__ignoreMap":126},[130,299,300,302,304],{"class":132,"line":133},[130,301,106],{"class":136},[130,303,196],{"class":140},[130,305,307],{"class":306},"sTEyZ"," \\\n",[130,309,310,313,316],{"class":132,"line":150},[130,311,312],{"class":140},"  --idp",[130,314,315],{"class":140}," https:\u002F\u002Fid.example.com",[130,317,307],{"class":306},[130,319,320,323,326],{"class":132,"line":205},[130,321,322],{"class":140},"  --email",[130,324,325],{"class":140}," agent@example.com",[130,327,307],{"class":306},[130,329,330,333],{"class":132,"line":212},[130,331,332],{"class":140},"  --key",[130,334,335],{"class":140}," ~\u002F.ssh\u002Fid_ed25519\n",[100,337,338],{},"Uses a challenge-response flow to authenticate via a pre-enrolled SSH key.",[116,340,342,343],{"id":341},"grant-secured-execution-apes-run","Grant-Secured Execution: ",[104,344,345],{},"apes run",[100,347,348],{},"Every command the agent wants to run goes through a grant:",[121,350,352],{"className":123,"code":351,"language":125,"meta":126,"style":126},"apes run -- docker build -t myimage .\n",[104,353,354],{"__ignoreMap":126},[130,355,356,358,360,362,365,368,371,374],{"class":132,"line":133},[130,357,106],{"class":136},[130,359,242],{"class":140},[130,361,245],{"class":140},[130,363,364],{"class":140}," docker",[130,366,367],{"class":140}," build",[130,369,370],{"class":140}," -t",[130,372,373],{"class":140}," myimage",[130,375,376],{"class":140}," .\n",[378,379,380,388,391,394,397,400],"ol",{},[381,382,383,384,387],"li",{},"Apes loads the ",[104,385,386],{},"docker"," shapes adapter",[381,389,390],{},"Resolves the command into a structured authorization request",[381,392,393],{},"Creates a grant with the IdP",[381,395,396],{},"Waits for human approval",[381,398,399],{},"Fetches the signed grant JWT",[381,401,402],{},"Executes the command",[100,404,405,406,409,410,413],{},"Existing ",[104,407,408],{},"timed"," or ",[104,411,412],{},"always"," grants are reused automatically — no repeated approval for matching commands.",[260,415,417],{"id":416},"privilege-escalation","Privilege Escalation",[121,419,421],{"className":123,"code":420,"language":125,"meta":126,"style":126},"apes run --as root -- apt-get upgrade\n",[104,422,423],{"__ignoreMap":126},[130,424,425,427,429,432,435,437,440],{"class":132,"line":133},[130,426,106],{"class":136},[130,428,242],{"class":140},[130,430,431],{"class":140}," --as",[130,433,434],{"class":140}," root",[130,436,245],{"class":140},[130,438,439],{"class":140}," apt-get",[130,441,442],{"class":140}," upgrade\n",[100,444,445,446,448],{},"This routes through the ",[104,447,60],{}," binary (separate Rust binary) which validates the grant JWT and executes the command with elevated privileges.",[116,450,452],{"id":451},"ape-shell-grant-secured-shell-wrapper","ape-shell: Grant-Secured Shell Wrapper",[100,454,455,457,458,461,462,464],{},[104,456,113],{}," is a drop-in replacement for ",[104,459,460],{},"bash -c"," that routes every command through ",[104,463,345],{},". Use it to sandbox AI coding agents (OpenClaw, Claude Code, etc.) so they can only execute pre-approved commands.",[260,466,28],{"id":467},"how-it-works",[121,469,474],{"className":470,"code":472,"language":473},[471],"language-text","AI Agent runs: $SHELL -c \"git status\"\n                 ↓\n       $SHELL = \u002Fusr\u002Flocal\u002Fbin\u002Fape-shell\n                 ↓\n       ape-shell -c \"git status\"\n                 ↓\n       apes run --shell -- bash -c \"git status\"\n                 ↓\n       1. Find existing ape-shell session grant?\n          ✓ Yes → execute immediately\n          ✗ No  → request grant → wait for approval → execute\n","text",[104,475,472],{"__ignoreMap":126},[260,477,479],{"id":478},"setup-for-an-ai-agent-session","Setup for an AI Agent Session",[100,481,482,483,486],{},"Most agent runtimes resolve the shell via the ",[104,484,485],{},"SHELL"," environment variable:",[121,488,490],{"className":123,"code":489,"language":125,"meta":126,"style":126},"# Start your agent with SHELL pointing at ape-shell\nSHELL=$(which ape-shell) openclaw\n# or\nSHELL=$(which ape-shell) claude\n",[104,491,492,497,518,523],{"__ignoreMap":126},[130,493,494],{"class":132,"line":133},[130,495,496],{"class":153},"# Start your agent with SHELL pointing at ape-shell\n",[130,498,499,501,505,509,512,515],{"class":132,"line":150},[130,500,485],{"class":306},[130,502,504],{"class":503},"sMK4o","=$(",[130,506,508],{"class":507},"s2Zo4","which",[130,510,511],{"class":140}," ape-shell",[130,513,514],{"class":503},")",[130,516,517],{"class":136}," openclaw\n",[130,519,520],{"class":132,"line":205},[130,521,522],{"class":153},"# or\n",[130,524,525,527,529,531,533,535],{"class":132,"line":212},[130,526,485],{"class":306},[130,528,504],{"class":503},[130,530,508],{"class":507},[130,532,511],{"class":140},[130,534,514],{"class":503},[130,536,537],{"class":136}," claude\n",[100,539,540,541,544],{},"The first command the agent runs triggers a session grant request. The human approves it once (e.g. ",[104,542,543],{},"grant_type: timed, duration: 8h",") and all subsequent commands reuse the same grant without interaction.",[260,546,548],{"id":547},"example-session","Example Session",[121,550,552],{"className":123,"code":551,"language":125,"meta":126,"style":126},"# Human: login once\n$ apes login\n\n# Start the agent with ape-shell\n$ SHELL=$(which ape-shell) openclaw\n\n# Agent runs first command\n> run: git status\nℹ Requesting ape-shell session grant on my-host\nℹ Grant requested: grant_abc123\nℹ Waiting for approval...\n\n# Human approves in browser → command executes\nOn branch main\n\n# Agent runs more commands — no more approvals needed\n> run: git log --oneline -5\nabc123 Latest commit\ndef456 Previous commit\n",[104,553,554,559,570,574,579,597,601,606,614,637,651,665,670,676,688,693,699,707,719],{"__ignoreMap":126},[130,555,556],{"class":132,"line":133},[130,557,558],{"class":153},"# Human: login once\n",[130,560,561,564,567],{"class":132,"line":150},[130,562,563],{"class":136},"$",[130,565,566],{"class":140}," apes",[130,568,569],{"class":140}," login\n",[130,571,572],{"class":132,"line":205},[130,573,209],{"emptyLinePlaceholder":208},[130,575,576],{"class":132,"line":212},[130,577,578],{"class":153},"# Start the agent with ape-shell\n",[130,580,581,583,586,589,591,593,595],{"class":132,"line":218},[130,582,563],{"class":136},[130,584,585],{"class":140}," SHELL=",[130,587,588],{"class":503},"$(",[130,590,508],{"class":507},[130,592,511],{"class":140},[130,594,514],{"class":503},[130,596,517],{"class":140},[130,598,599],{"class":132,"line":226},[130,600,209],{"emptyLinePlaceholder":208},[130,602,603],{"class":132,"line":231},[130,604,605],{"class":153},"# Agent runs first command\n",[130,607,608,611],{"class":132,"line":237},[130,609,610],{"class":503},">",[130,612,613],{"class":306}," run: git status\n",[130,615,617,620,623,625,628,631,634],{"class":132,"line":616},9,[130,618,619],{"class":136},"ℹ",[130,621,622],{"class":140}," Requesting",[130,624,511],{"class":140},[130,626,627],{"class":140}," session",[130,629,630],{"class":140}," grant",[130,632,633],{"class":140}," on",[130,635,636],{"class":140}," my-host\n",[130,638,640,642,645,648],{"class":132,"line":639},10,[130,641,619],{"class":136},[130,643,644],{"class":140}," Grant",[130,646,647],{"class":140}," requested:",[130,649,650],{"class":140}," grant_abc123\n",[130,652,654,656,659,662],{"class":132,"line":653},11,[130,655,619],{"class":136},[130,657,658],{"class":140}," Waiting",[130,660,661],{"class":140}," for",[130,663,664],{"class":140}," approval...\n",[130,666,668],{"class":132,"line":667},12,[130,669,209],{"emptyLinePlaceholder":208},[130,671,673],{"class":132,"line":672},13,[130,674,675],{"class":153},"# Human approves in browser → command executes\n",[130,677,679,682,685],{"class":132,"line":678},14,[130,680,681],{"class":136},"On",[130,683,684],{"class":140}," branch",[130,686,687],{"class":140}," main\n",[130,689,691],{"class":132,"line":690},15,[130,692,209],{"emptyLinePlaceholder":208},[130,694,696],{"class":132,"line":695},16,[130,697,698],{"class":153},"# Agent runs more commands — no more approvals needed\n",[130,700,702,704],{"class":132,"line":701},17,[130,703,610],{"class":503},[130,705,706],{"class":306}," run: git log --oneline -5\n",[130,708,710,713,716],{"class":132,"line":709},18,[130,711,712],{"class":136},"abc123",[130,714,715],{"class":140}," Latest",[130,717,718],{"class":140}," commit\n",[130,720,722,725,728],{"class":132,"line":721},19,[130,723,724],{"class":136},"def456",[130,726,727],{"class":140}," Previous",[130,729,718],{"class":140},[260,731,733],{"id":732},"revoking-access","Revoking Access",[100,735,736],{},"At any time, revoke the session grant to immediately stop the agent from executing any further commands:",[121,738,740],{"className":123,"code":739,"language":125,"meta":126,"style":126},"apes grants list --audience ape-shell\napes grants revoke \u003Cgrant-id>\n",[104,741,742,758],{"__ignoreMap":126},[130,743,744,746,749,752,755],{"class":132,"line":133},[130,745,106],{"class":136},[130,747,748],{"class":140}," grants",[130,750,751],{"class":140}," list",[130,753,754],{"class":140}," --audience",[130,756,757],{"class":140}," ape-shell\n",[130,759,760,762,764,767,770,773,776],{"class":132,"line":150},[130,761,106],{"class":136},[130,763,748],{"class":140},[130,765,766],{"class":140}," revoke",[130,768,769],{"class":503}," \u003C",[130,771,772],{"class":140},"grant-i",[130,774,775],{"class":306},"d",[130,777,778],{"class":503},">\n",[116,780,782],{"id":781},"mcp-server-mode","MCP Server Mode",[100,784,785],{},"Expose all apes commands as Model Context Protocol tools so AI clients (Claude Desktop, Cursor, etc.) can request and use grants directly:",[121,787,789],{"className":123,"code":788,"language":125,"meta":126,"style":126},"apes mcp --transport stdio\n# or via HTTP\u002FSSE\napes mcp --transport sse --port 3001\n",[104,790,791,804,809],{"__ignoreMap":126},[130,792,793,795,798,801],{"class":132,"line":133},[130,794,106],{"class":136},[130,796,797],{"class":140}," mcp",[130,799,800],{"class":140}," --transport",[130,802,803],{"class":140}," stdio\n",[130,805,806],{"class":132,"line":150},[130,807,808],{"class":153},"# or via HTTP\u002FSSE\n",[130,810,811,813,815,817,820,823],{"class":132,"line":205},[130,812,106],{"class":136},[130,814,797],{"class":140},[130,816,800],{"class":140},[130,818,819],{"class":140}," sse",[130,821,822],{"class":140}," --port",[130,824,826],{"class":825},"sbssI"," 3001\n",[116,828,830],{"id":829},"configuration","Configuration",[100,832,833,834,837],{},"Stored in ",[104,835,836],{},"~\u002F.config\u002Fapes\u002F",":",[839,840,841,854],"table",{},[842,843,844],"thead",{},[845,846,847,851],"tr",{},[848,849,850],"th",{},"File",[848,852,853],{},"Contents",[855,856,857,868],"tbody",{},[845,858,859,865],{},[860,861,862],"td",{},[104,863,864],{},"auth.json",[860,866,867],{},"Access token, refresh token, IdP URL, email",[845,869,870,875],{},[860,871,872],{},[104,873,874],{},"config.toml",[860,876,877],{},"Defaults (idp, agent key path, approval type)",[121,879,881],{"className":123,"code":880,"language":125,"meta":126,"style":126},"apes config get defaults.idp\napes config set defaults.idp https:\u002F\u002Fid.example.com\n",[104,882,883,896],{"__ignoreMap":126},[130,884,885,887,890,893],{"class":132,"line":133},[130,886,106],{"class":136},[130,888,889],{"class":140}," config",[130,891,892],{"class":140}," get",[130,894,895],{"class":140}," defaults.idp\n",[130,897,898,900,902,905,908],{"class":132,"line":150},[130,899,106],{"class":136},[130,901,889],{"class":140},[130,903,904],{"class":140}," set",[130,906,907],{"class":140}," defaults.idp",[130,909,202],{"class":140},[116,911,913],{"id":912},"command-reference","Command Reference",[260,915,917],{"id":916},"authentication","Authentication",[839,919,920,930],{},[842,921,922],{},[845,923,924,927],{},[848,925,926],{},"Command",[848,928,929],{},"Description",[855,931,932,942,952,962,972],{},[845,933,934,939],{},[860,935,936],{},[104,937,938],{},"apes login",[860,940,941],{},"PKCE browser login or agent key login",[845,943,944,949],{},[860,945,946],{},[104,947,948],{},"apes logout",[860,950,951],{},"Clear stored auth",[845,953,954,959],{},[860,955,956],{},[104,957,958],{},"apes whoami",[860,960,961],{},"Show current identity",[845,963,964,969],{},[860,965,966],{},[104,967,968],{},"apes enroll",[860,970,971],{},"Enroll an agent at the IdP",[845,973,974,979],{},[860,975,976],{},[104,977,978],{},"apes register-user",[860,980,981],{},"Register a new human user",[260,983,985],{"id":984},"grants","Grants",[839,987,988,996],{},[842,989,990],{},[845,991,992,994],{},[848,993,926],{},[848,995,929],{},[855,997,998,1008,1018,1028,1038,1048,1058,1068],{},[845,999,1000,1005],{},[860,1001,1002],{},[104,1003,1004],{},"apes grants list",[860,1006,1007],{},"List your grants",[845,1009,1010,1015],{},[860,1011,1012],{},[104,1013,1014],{},"apes grants inbox",[860,1016,1017],{},"Show pending approval requests",[845,1019,1020,1025],{},[860,1021,1022],{},[104,1023,1024],{},"apes grants request",[860,1026,1027],{},"Request a new grant",[845,1029,1030,1035],{},[860,1031,1032],{},[104,1033,1034],{},"apes grants approve \u003Cid>",[860,1036,1037],{},"Approve a grant",[845,1039,1040,1045],{},[860,1041,1042],{},[104,1043,1044],{},"apes grants deny \u003Cid>",[860,1046,1047],{},"Deny a grant",[845,1049,1050,1055],{},[860,1051,1052],{},[104,1053,1054],{},"apes grants revoke \u003Cid>",[860,1056,1057],{},"Revoke an active grant",[845,1059,1060,1065],{},[860,1061,1062],{},[104,1063,1064],{},"apes grants token \u003Cid>",[860,1066,1067],{},"Get the JWT for an approved grant",[845,1069,1070,1075],{},[860,1071,1072],{},[104,1073,1074],{},"apes grants delegate",[860,1076,1077],{},"Create a delegation grant",[260,1079,1081],{"id":1080},"execution","Execution",[839,1083,1084,1092],{},[842,1085,1086],{},[845,1087,1088,1090],{},[848,1089,926],{},[848,1091,929],{},[855,1093,1094,1104,1116,1128],{},[845,1095,1096,1101],{},[860,1097,1098],{},[104,1099,1100],{},"apes run -- \u003Ccmd>",[860,1102,1103],{},"Run via a shapes adapter grant",[845,1105,1106,1111],{},[860,1107,1108],{},[104,1109,1110],{},"apes run --shell -- bash -c \u003Ccmd>",[860,1112,1113,1114,514],{},"Shell mode (used by ",[104,1115,113],{},[845,1117,1118,1123],{},[860,1119,1120],{},[104,1121,1122],{},"apes run --as root -- \u003Ccmd>",[860,1124,1125,1126],{},"Elevate via ",[104,1127,60],{},[845,1129,1130,1135],{},[860,1131,1132],{},[104,1133,1134],{},"apes explain -- \u003Ccmd>",[860,1136,1137],{},"Explain what grant a command would need",[116,1139,1141],{"id":1140},"see-also","See Also",[1143,1144,1145,1152,1161],"ul",{},[381,1146,1147,1151],{},[1148,1149,1150],"a",{"href":21},"Quickstart: Agent"," — set up an agent identity",[381,1153,1154,1160],{},[1148,1155,1159],{"href":1156,"rel":1157},"https:\u002F\u002Fgithub.com\u002Fopenape-ai\u002Fprotocol",[1158],"nofollow","DDISA Protocol"," — underlying protocol spec",[381,1162,1163,1166],{},[104,1164,1165],{},"apes mcp"," — exposes grant ops as MCP tools for AI clients",[1168,1169,1170],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":126,"searchDepth":133,"depth":150,"links":1172},[1173,1174,1175,1179,1183,1189,1190,1191,1196],{"id":118,"depth":150,"text":119},{"id":179,"depth":150,"text":24},{"id":257,"depth":150,"text":258,"children":1176},[1177,1178],{"id":262,"depth":205,"text":263},{"id":288,"depth":205,"text":289},{"id":341,"depth":150,"text":1180,"children":1181},"Grant-Secured Execution: apes run",[1182],{"id":416,"depth":205,"text":417},{"id":451,"depth":150,"text":452,"children":1184},[1185,1186,1187,1188],{"id":467,"depth":205,"text":28},{"id":478,"depth":205,"text":479},{"id":547,"depth":205,"text":548},{"id":732,"depth":205,"text":733},{"id":781,"depth":150,"text":782},{"id":829,"depth":150,"text":830},{"id":912,"depth":150,"text":913,"children":1192},[1193,1194,1195],{"id":916,"depth":205,"text":917},{"id":984,"depth":205,"text":985},{"id":1080,"depth":205,"text":1081},{"id":1140,"depth":150,"text":1141},"Install and use the apes command-line interface and the ape-shell wrapper.","md",null,{},{"title":36,"description":1197},"lHRSw-bm4XQdQXca05kFwYCfvQDIQZIKWmhDCTrbL0o",[1204,1206],{"title":32,"path":33,"stem":34,"description":1205,"children":-1},"Add authentication to your Nuxt app in 3 steps.",{"title":46,"path":42,"stem":43,"description":1207,"children":-1},"The OpenApe package ecosystem.",1776885317056]