[{"data":1,"prerenderedAt":1068},["ShallowReactive",2],{"/blog/gitlab-duo-cli-generally-available":3,"navigation-en-us":293,"banner-en-us":716,"footer-en-us":724,"blog-post-authors-en-us-Ozer Dondurmacioglu":969,"blog-related-posts-en-us-gitlab-duo-cli-generally-available":985,"blog-promotions-en-us":1006,"next-steps-en-us":1058},{"id":4,"title":5,"authors":6,"body":8,"category":273,"date":274,"description":275,"extension":276,"externalUrl":277,"featured":278,"heroImage":279,"meta":280,"navigation":281,"path":282,"seo":283,"slug":285,"stem":286,"tags":287,"template":291,"updatedDate":277,"__hash__":292},"blogPosts/en-us/blog/gitlab-duo-cli-generally-available.md","Bring GitLab Duo Agent Platform to your terminal",[7],"Ozer Dondurmacioglu",{"type":9,"value":10,"toc":267},"minimark",[11,15,18,40,43,48,51,54,58,96,101,110,114,118,139,161,164,203,226,230,243,263],[12,13,14],"p",{},"Most of the work for software delivery doesn’t happen only in the editor. Pipelines fail. Tests break. Vulnerabilities show up. And a lot of that work starts and ends at the command line.",[12,16,17],{},"Agentic AI in the terminal that only understands code can’t help with any of that. A standalone assistant doesn’t know your agents across the entire software lifecycle, your permissions across many projects in your organization, or a specific project context you’ve already set up in GitLab.",[12,19,20,21,27,28,33,34,39],{},"That’s what changes in ",[22,23,26],"a",{"href":24,"rel":25},"https://docs.gitlab.com/releases/19/gitlab-19-2-released/",[],"GitLab 19.2",". ",[22,29,32],{"href":30,"rel":31},"https://docs.gitlab.com/user/gitlab_duo_cli/",[],"GitLab Duo CLI"," is generally available, and it brings ",[22,35,38],{"href":36,"rel":37},"https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/",[],"GitLab Duo Agentic Chat"," straight into your terminal. Unlike tools bolted on from the outside, it already knows your project, your pipelines, and your agent setup. You can use it interactively when you’re exploring and building, or headless when you want it running in a job or script.",[12,41,42],{},"As a result, developers stay in the shell where the failure showed up, and their work continues across the terminal, the UI, and your editor. Platform teams govern rollout like everything else on GitLab, and agentic help finally covers more of the delivery lifecycle than “write this function.”",[44,45,47],"h2",{"id":46},"why-agentic-ai-in-the-terminal-stopped-at-code","Why agentic AI in the terminal stopped at code",[12,49,50],{},"Agentic tools matured first where demos look best: editing files. The lifecycle after the commit is messier and more operational. When the failure is a pipeline, a dependency, or a CI config, context lives in GitLab — not in a coding agent’s training set or local context.",[12,52,53],{},"Teams that tried to bridge that gap with generic CLI assistants paid another cost: no shared admin control, no MCP/setup diagnostics aligned with the platform, and no single identity model with the rest of the agentic software lifecycle. Agentic work in the terminal stayed stuck on coding, instead of helping across the rest of delivery.",[44,55,57],{"id":56},"what-teams-get-when-duo-cli-is-generally-available","What teams get when Duo CLI is generally available",[59,60,61,69,75,81],"ul",{},[62,63,64,68],"li",{},[65,66,67],"strong",{},"Stay in the terminal for the work that already lives there."," Dig into how the codebase fits together, build and refactor, chase down pipeline failures, tidy up CI/CD, and knock out multi-step tasks — without jumping to the browser for every answer.",[62,70,71,74],{},[65,72,73],{},"Pick up where you left off, on any surface."," Sessions are shared across the GitLab Duo CLI, the GitLab UI, and editor extensions. Start in the browser. Continue in your shell. Same conversation.",[62,76,77,80],{},[65,78,79],{},"Plan first, then build."," Interactive mode works like Agentic Chat: Plan mode looks around without changing anything, build mode makes the changes. Need it unattended? Headless mode drops into CI jobs and scripts.",[62,82,83,86,87,91,92,95],{},[65,84,85],{},"Turn it on when you’re ready."," Duo CLI works on GitLab.com, GitLab Self-Managed, and GitLab Dedicated. On Self-Managed and Dedicated, admins can switch instance access on or off. Anywhere you use it, developers can run ",[88,89,90],"code",{},"/doctor"," to check their setup and ",[88,93,94],{},"/mcp"," to see their MCP configuration.",[12,97,98],{},[65,99,100],{},"See GitLab Duo CLI in action:",[102,103],"iframe",{"src":104,"frameBorder":105,"allow":106,"referrerPolicy":107,"style":108,"title":109},"https://player.vimeo.com/video/1210314517?badge=0&autopause=0&player_id=0&app_id=58479","0","autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share","strict-origin-when-cross-origin","position:absolute;top:0;left:0;width:100%;height:100%;","Demo - Duo CLI goes GA with 19.2",[111,112],"script",{"src":113},"https://player.vimeo.com/api/player.js",[44,115,117],{"id":116},"how-duo-cli-works","How Duo CLI works",[12,119,120,121,126,127,130,131,134,135,138],{},"The easiest path is through the ",[22,122,125],{"href":123,"rel":124},"https://docs.gitlab.com/cli/duo/cli/",[],"GitLab CLI",": Run ",[88,128,129],{},"glab duo cli"," and ",[88,132,133],{},"glab"," handles authentication for you. You can also install and run ",[88,136,137],{},"duo"," as a standalone tool with a personal access token. Both setups support the same modes and capabilities.",[59,140,141,147],{},[62,142,143,146],{},[65,144,145],{},"Interactive mode"," — chat in the terminal, and approve tools before anything runs. Explore the codebase, plan a fix, then switch to build mode when you’re ready to make changes.",[62,148,149,152,153,156,157,160],{},[65,150,151],{},"Headless mode"," — non-interactive execution for runners, scripts, and automation. Use ",[88,154,155],{},"glab duo cli run --goal"," or ",[88,158,159],{},"duo run --goal",".",[12,162,163],{},"For instance, when a pipeline fails, ask from the same shell:",[165,166,171],"pre",{"className":167,"code":168,"language":169,"meta":170,"style":170},"language-shell shiki shiki-themes github-light","$ glab duo cli\n> The pipelines in MR 23 are failing. Please help me fix them.\n","shell","",[88,172,173,192],{"__ignoreMap":170},[174,175,178,182,186,189],"span",{"class":176,"line":177},"line",1,[174,179,181],{"class":180},"s7eDp","$",[174,183,185],{"class":184},"sYBdl"," glab",[174,187,188],{"class":184}," duo",[174,190,191],{"class":184}," cli\n",[174,193,195,199],{"class":176,"line":194},2,[174,196,198],{"class":197},"sD7c4",">",[174,200,202],{"class":201},"sgsFI"," The pipelines in MR 23 are failing. Please help me fix them.\n",[12,204,205,206,209,210,209,213,220,221,160],{},"Duo CLI looks at what’s going on, figures out what went wrong, and proposes changes you can review before applying. It follows your custom instructions (",[88,207,208],{},"chat-rules.md",", ",[88,211,212],{},"AGENTS.md",[22,214,217],{"href":215,"rel":216},"http://SKILL.md",[],[88,218,219],{},"SKILL.md",") as you scale, and you can extend its interactive sessions with ",[22,222,225],{"href":223,"rel":224},"https://docs.gitlab.com/user/gitlab_duo_cli/#custom-slash-commands",[],"custom slash commands",[44,227,229],{"id":228},"start-using-duo-cli-today","Start using Duo CLI today",[12,231,232,233,237,238,160],{},"Head over to the ",[22,234,236],{"href":30,"rel":235},[],"GitLab Duo CLI documentation"," to install and authenticate — and if you already use the GitLab CLI, start with ",[22,239,241],{"href":123,"rel":240},[],[88,242,129],{},[12,244,245,246,251,252,257,258,160],{},"New to GitLab? ",[22,247,250],{"href":248,"rel":249},"https://about.gitlab.com/gitlab-duo-agent-platform/",[],"Start a free trial of GitLab Duo Agent Platform",". Already on Premium or Ultimate? ",[22,253,256],{"href":254,"rel":255},"https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/",[],"Turn on Duo Agent Platform"," and use the ",[22,259,262],{"href":260,"rel":261},"https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits/",[],"GitLab Credits included with your subscription",[264,265,266],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}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":170,"searchDepth":194,"depth":194,"links":268},[269,270,271,272],{"id":46,"depth":194,"text":47},{"id":56,"depth":194,"text":57},{"id":116,"depth":194,"text":117},{"id":228,"depth":194,"text":229},"ai","2026-07-16","Duo CLI is now generally available with GitLab 19.2 – stay in the shell for code, pipelines, and multi-step work.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1783980535/t3gez0gpayfndrhncunf.png",{},true,"/en-us/blog/gitlab-duo-cli-generally-available",{"config":284,"title":5,"description":275},{"noIndex":278},"gitlab-duo-cli-generally-available","en-us/blog/gitlab-duo-cli-generally-available",[288,289,290],"AI","product","features","BlogPost","RANP-TsBn0_wzEK9BpaCuSIgJj0ASx4rh_VWDMFLTvU",{"logo":294,"freeTrial":299,"sales":304,"login":309,"items":314,"search":636,"minimal":667,"duo":686,"switchNav":695,"pricingDeployment":706},{"config":295},{"href":296,"dataGaName":297,"dataGaLocation":298},"/","gitlab logo","header",{"text":300,"config":301},"Get free trial",{"href":302,"dataGaName":303,"dataGaLocation":298},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":305,"config":306},"Request a demo",{"href":307,"dataGaName":308,"dataGaLocation":298},"/sales/?contact-topic=request-demo","sales",{"text":310,"config":311},"Sign in",{"href":312,"dataGaName":313,"dataGaLocation":298},"https://gitlab.com/users/sign_in/","sign in",[315,344,444,449,558,614],{"text":316,"config":317,"menu":319},"Platform",{"dataNavLevelOne":318},"platform",{"type":320,"columns":321},"cards",[322,328,336],{"title":316,"description":323,"link":324},"The intelligent orchestration platform for DevSecOps",{"text":325,"config":326},"Explore our Platform",{"href":327,"dataGaName":318,"dataGaLocation":298},"/platform/",{"title":329,"description":330,"link":331},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":332,"config":333},"Meet GitLab Duo",{"href":334,"dataGaName":335,"dataGaLocation":298},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":337,"description":338,"link":339},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":340,"config":341},"Learn more",{"href":342,"dataGaName":343,"dataGaLocation":298},"/why-gitlab/","why gitlab",{"text":345,"left":281,"config":346,"menu":348},"Product",{"dataNavLevelOne":347},"solutions",{"type":349,"link":350,"columns":354,"feature":423},"lists",{"text":351,"config":352},"View all Solutions",{"href":353,"dataGaName":347,"dataGaLocation":298},"/solutions/",[355,379,402],{"title":356,"description":357,"link":358,"items":363},"Automation","CI/CD and automation to accelerate deployment",{"config":359},{"icon":360,"href":361,"dataGaName":362,"dataGaLocation":298},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[364,368,371,375],{"text":365,"config":366},"CI/CD",{"href":367,"dataGaLocation":298,"dataGaName":365},"/solutions/continuous-integration/",{"text":329,"config":369},{"href":334,"dataGaLocation":298,"dataGaName":370},"gitlab duo agent platform - product menu",{"text":372,"config":373},"Source Code Management",{"href":374,"dataGaLocation":298,"dataGaName":372},"/solutions/source-code-management/",{"text":376,"config":377},"Automated Software Delivery",{"href":361,"dataGaLocation":298,"dataGaName":378},"Automated software delivery",{"title":380,"description":381,"link":382,"items":387},"Security","Deliver code faster without compromising security",{"config":383},{"href":384,"dataGaName":385,"dataGaLocation":298,"icon":386},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[388,392,397],{"text":389,"config":390},"Application Security Testing",{"href":384,"dataGaName":391,"dataGaLocation":298},"Application security testing",{"text":393,"config":394},"Software Supply Chain Security",{"href":395,"dataGaLocation":298,"dataGaName":396},"/solutions/supply-chain/","Software supply chain security",{"text":398,"config":399},"Software Compliance",{"href":400,"dataGaName":401,"dataGaLocation":298},"/solutions/software-compliance/","software compliance",{"title":403,"link":404,"items":409},"Measurement",{"config":405},{"icon":406,"href":407,"dataGaName":408,"dataGaLocation":298},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[410,414,418],{"text":411,"config":412},"Visibility & Measurement",{"href":407,"dataGaLocation":298,"dataGaName":413},"Visibility and Measurement",{"text":415,"config":416},"Value Stream Management",{"href":417,"dataGaLocation":298,"dataGaName":415},"/solutions/value-stream-management/",{"text":419,"config":420},"Analytics & Insights",{"href":421,"dataGaLocation":298,"dataGaName":422},"/solutions/analytics-and-insights/","Analytics and insights",{"title":424,"type":349,"items":425},"GitLab for",[426,432,438],{"text":427,"config":428},"Enterprise",{"icon":429,"href":430,"dataGaLocation":298,"dataGaName":431},"Building","/enterprise/","enterprise",{"text":433,"config":434},"Small Business",{"icon":435,"href":436,"dataGaLocation":298,"dataGaName":437},"Work","/small-business/","small business",{"text":439,"config":440},"Public Sector",{"icon":441,"href":442,"dataGaLocation":298,"dataGaName":443},"Organization","/solutions/public-sector/","public sector",{"text":445,"config":446},"Pricing",{"href":447,"dataGaName":448,"dataGaLocation":298,"dataNavLevelOne":448},"/pricing/","pricing",{"text":450,"config":451,"menu":453},"Resources",{"dataNavLevelOne":452},"resources",{"type":349,"link":454,"columns":458,"feature":547},{"text":455,"config":456},"View all resources",{"href":457,"dataGaName":452,"dataGaLocation":298},"/resources/",[459,492,514],{"title":460,"items":461},"Getting started",[462,467,472,477,482,487],{"text":463,"config":464},"Install",{"href":465,"dataGaName":466,"dataGaLocation":298},"/install/","install",{"text":468,"config":469},"Quick start guides",{"href":470,"dataGaName":471,"dataGaLocation":298},"/get-started/","quick setup checklists",{"text":473,"config":474},"Learn",{"href":475,"dataGaLocation":298,"dataGaName":476},"https://university.gitlab.com/","learn",{"text":478,"config":479},"Product documentation",{"href":480,"dataGaName":481,"dataGaLocation":298},"https://docs.gitlab.com/","product documentation",{"text":483,"config":484},"Best practice videos",{"href":485,"dataGaName":486,"dataGaLocation":298},"/getting-started-videos/","best practice videos",{"text":488,"config":489},"Integrations",{"href":490,"dataGaName":491,"dataGaLocation":298},"/integrations/","integrations",{"title":493,"items":494},"Discover",[495,500,505,509],{"text":496,"config":497},"Customer success stories",{"href":498,"dataGaName":499,"dataGaLocation":298},"/customers/","customer success stories",{"text":501,"config":502},"Blog",{"href":503,"dataGaName":504,"dataGaLocation":298},"/blog/","blog",{"text":506,"config":507},"The Source",{"href":508,"dataGaName":504,"dataGaLocation":298},"/the-source/",{"text":510,"config":511},"Remote",{"href":512,"dataGaName":513,"dataGaLocation":298},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":515,"items":516},"Connect",[517,522,527,532,537,542],{"text":518,"config":519},"GitLab Services",{"href":520,"dataGaName":521,"dataGaLocation":298},"/services/","services",{"text":523,"config":524},"Contribute",{"href":525,"dataGaName":526,"dataGaLocation":298},"https://contributors.gitlab.com","contribute",{"text":528,"config":529},"Community",{"href":530,"dataGaName":531,"dataGaLocation":298},"/community/","community",{"text":533,"config":534},"Forum",{"href":535,"dataGaName":536,"dataGaLocation":298},"https://forum.gitlab.com/","forum",{"text":538,"config":539},"Events",{"href":540,"dataGaName":541,"dataGaLocation":298},"/events/","events",{"text":543,"config":544},"Partners",{"href":545,"dataGaName":546,"dataGaLocation":298},"/partners/","partners",{"config":548,"title":551,"text":552,"link":553},{"background":549,"textColor":550},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":554,"config":555},"Read the latest",{"href":556,"dataGaName":557,"dataGaLocation":298},"/whats-new/","whats new",{"text":559,"config":560,"menu":562},"Company",{"dataNavLevelOne":561},"company",{"type":349,"columns":563},[564],{"items":565},[566,571,577,579,584,589,594,599,604,609],{"text":567,"config":568},"About",{"href":569,"dataGaName":570,"dataGaLocation":298},"/company/","about",{"text":572,"config":573,"footerGa":576},"Jobs",{"href":574,"dataGaName":575,"dataGaLocation":298},"/jobs/","jobs",{"dataGaName":575},{"text":538,"config":578},{"href":540,"dataGaName":541,"dataGaLocation":298},{"text":580,"config":581},"Leadership",{"href":582,"dataGaName":583,"dataGaLocation":298},"/company/team/e-group/","leadership",{"text":585,"config":586},"Handbook",{"href":587,"dataGaName":588,"dataGaLocation":298},"https://handbook.gitlab.com/","handbook",{"text":590,"config":591},"Investor relations",{"href":592,"dataGaName":593,"dataGaLocation":298},"https://ir.gitlab.com/","investor relations",{"text":595,"config":596},"Trust Center",{"href":597,"dataGaName":598,"dataGaLocation":298},"/security/","trust center",{"text":600,"config":601},"AI Transparency Center",{"href":602,"dataGaName":603,"dataGaLocation":298},"/ai-transparency-center/","ai transparency center",{"text":605,"config":606},"Newsletter",{"href":607,"dataGaName":608,"dataGaLocation":298},"/company/contact/#contact-forms","newsletter",{"text":610,"config":611},"Press",{"href":612,"dataGaName":613,"dataGaLocation":298},"/press/","press",{"text":615,"config":616,"menu":617},"Contact us",{"dataNavLevelOne":561},{"type":349,"columns":618},[619],{"items":620},[621,626,631],{"text":622,"config":623},"Talk to sales",{"href":624,"dataGaName":625,"dataGaLocation":298},"/sales/","talk to sales",{"text":627,"config":628},"Support portal",{"href":629,"dataGaName":630,"dataGaLocation":298},"https://support.gitlab.com","support portal",{"text":632,"config":633},"Customer portal",{"href":634,"dataGaName":635,"dataGaLocation":298},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":637,"login":638,"suggestions":645},"Close",{"text":639,"link":640},"To search repositories and projects, login to",{"text":641,"config":642},"gitlab.com",{"href":312,"dataGaName":643,"dataGaLocation":644},"search login","search",{"text":646,"default":647},"Suggestions",[648,650,654,656,660,664],{"text":329,"config":649},{"href":334,"dataGaName":329,"dataGaLocation":644},{"text":651,"config":652},"Code Suggestions (AI)",{"href":653,"dataGaName":651,"dataGaLocation":644},"/solutions/code-suggestions/",{"text":365,"config":655},{"href":367,"dataGaName":365,"dataGaLocation":644},{"text":657,"config":658},"GitLab on AWS",{"href":659,"dataGaName":657,"dataGaLocation":644},"/partners/technology-partners/aws/",{"text":661,"config":662},"GitLab on Google Cloud",{"href":663,"dataGaName":661,"dataGaLocation":644},"/partners/technology-partners/google-cloud-platform/",{"text":665,"config":666},"Why GitLab?",{"href":342,"dataGaName":665,"dataGaLocation":644},{"freeTrial":668,"mobileIcon":673,"desktopIcon":678,"secondaryButton":681},{"text":669,"config":670},"Start free trial",{"href":671,"dataGaName":303,"dataGaLocation":672},"https://gitlab.com/-/trials/new/","nav",{"altText":674,"config":675},"Gitlab Icon",{"src":676,"dataGaName":677,"dataGaLocation":672},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":674,"config":679},{"src":680,"dataGaName":677,"dataGaLocation":672},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":682,"config":683},"Get Started",{"href":684,"dataGaName":685,"dataGaLocation":672},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":687,"mobileIcon":691,"desktopIcon":693},{"text":688,"config":689},"Learn more about GitLab Duo",{"href":334,"dataGaName":690,"dataGaLocation":672},"gitlab duo",{"altText":674,"config":692},{"src":676,"dataGaName":677,"dataGaLocation":672},{"altText":674,"config":694},{"src":680,"dataGaName":677,"dataGaLocation":672},{"button":696,"mobileIcon":701,"desktopIcon":703},{"text":697,"config":698},"/switch",{"href":699,"dataGaName":700,"dataGaLocation":672},"#contact","switch",{"altText":674,"config":702},{"src":676,"dataGaName":677,"dataGaLocation":672},{"altText":674,"config":704},{"src":705,"dataGaName":677,"dataGaLocation":672},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":707,"mobileIcon":712,"desktopIcon":714},{"text":708,"config":709},"Back to pricing",{"href":447,"dataGaName":710,"dataGaLocation":672,"icon":711},"back to pricing","GoBack",{"altText":674,"config":713},{"src":676,"dataGaName":677,"dataGaLocation":672},{"altText":674,"config":715},{"src":680,"dataGaName":677,"dataGaLocation":672},{"title":717,"button":718,"config":722},"GitLab Orbit is here: The context layer for AI agents.",{"text":340,"config":719},{"href":720,"dataGaName":721,"dataGaLocation":298},"/gitlab-orbit/","orbit",{"layout":723,"disabled":278},"release",{"data":725},{"text":726,"source":727,"edit":733,"contribute":738,"config":743,"items":748,"minimal":958},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":728,"config":729},"View page source",{"href":730,"dataGaName":731,"dataGaLocation":732},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":734,"config":735},"Edit this page",{"href":736,"dataGaName":737,"dataGaLocation":732},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":739,"config":740},"Please contribute",{"href":741,"dataGaName":742,"dataGaLocation":732},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":744,"facebook":745,"youtube":746,"linkedin":747},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[749,796,850,894,926],{"title":445,"links":750,"subMenu":765},[751,755,760],{"text":752,"config":753},"View plans",{"href":447,"dataGaName":754,"dataGaLocation":732},"view plans",{"text":756,"config":757},"Why Premium?",{"href":758,"dataGaName":759,"dataGaLocation":732},"/pricing/premium/","why premium",{"text":761,"config":762},"Why Ultimate?",{"href":763,"dataGaName":764,"dataGaLocation":732},"/pricing/ultimate/","why ultimate",[766],{"title":767,"links":768},"Contact Us",[769,772,774,776,781,786,791],{"text":770,"config":771},"Contact sales",{"href":624,"dataGaName":308,"dataGaLocation":732},{"text":627,"config":773},{"href":629,"dataGaName":630,"dataGaLocation":732},{"text":632,"config":775},{"href":634,"dataGaName":635,"dataGaLocation":732},{"text":777,"config":778},"Status",{"href":779,"dataGaName":780,"dataGaLocation":732},"https://status.gitlab.com/","status",{"text":782,"config":783},"Terms of use",{"href":784,"dataGaName":785,"dataGaLocation":732},"/terms/","terms of use",{"text":787,"config":788},"Privacy statement",{"href":789,"dataGaName":790,"dataGaLocation":732},"/privacy/","privacy statement",{"text":792,"config":793},"Cookie preferences",{"dataGaName":794,"dataGaLocation":732,"id":795,"isOneTrustButton":281},"cookie preferences","ot-sdk-btn",{"title":345,"links":797,"subMenu":806},[798,802],{"text":799,"config":800},"DevSecOps platform",{"href":327,"dataGaName":801,"dataGaLocation":732},"devsecops platform",{"text":803,"config":804},"AI-Assisted Development",{"href":334,"dataGaName":805,"dataGaLocation":732},"ai-assisted development",[807],{"title":808,"links":809},"Topics",[810,815,820,825,830,835,840,845],{"text":811,"config":812},"CICD",{"href":813,"dataGaName":814,"dataGaLocation":732},"/topics/ci-cd/","cicd",{"text":816,"config":817},"GitOps",{"href":818,"dataGaName":819,"dataGaLocation":732},"/topics/gitops/","gitops",{"text":821,"config":822},"DevOps",{"href":823,"dataGaName":824,"dataGaLocation":732},"/topics/devops/","devops",{"text":826,"config":827},"Version Control",{"href":828,"dataGaName":829,"dataGaLocation":732},"/topics/version-control/","version control",{"text":831,"config":832},"DevSecOps",{"href":833,"dataGaName":834,"dataGaLocation":732},"/topics/devsecops/","devsecops",{"text":836,"config":837},"Cloud Native",{"href":838,"dataGaName":839,"dataGaLocation":732},"/topics/cloud-native/","cloud native",{"text":841,"config":842},"AI for Coding",{"href":843,"dataGaName":844,"dataGaLocation":732},"/topics/devops/ai-for-coding/","ai for coding",{"text":846,"config":847},"Agentic AI",{"href":848,"dataGaName":849,"dataGaLocation":732},"/topics/agentic-ai/","agentic ai",{"title":851,"links":852},"Solutions",[853,855,857,862,866,869,873,876,878,881,884,889],{"text":389,"config":854},{"href":384,"dataGaName":389,"dataGaLocation":732},{"text":378,"config":856},{"href":361,"dataGaName":362,"dataGaLocation":732},{"text":858,"config":859},"Agile development",{"href":860,"dataGaName":861,"dataGaLocation":732},"/solutions/agile-delivery/","agile delivery",{"text":863,"config":864},"SCM",{"href":374,"dataGaName":865,"dataGaLocation":732},"source code management",{"text":811,"config":867},{"href":367,"dataGaName":868,"dataGaLocation":732},"continuous integration & delivery",{"text":870,"config":871},"Value stream management",{"href":417,"dataGaName":872,"dataGaLocation":732},"value stream management",{"text":816,"config":874},{"href":875,"dataGaName":819,"dataGaLocation":732},"/solutions/gitops/",{"text":427,"config":877},{"href":430,"dataGaName":431,"dataGaLocation":732},{"text":879,"config":880},"Small business",{"href":436,"dataGaName":437,"dataGaLocation":732},{"text":882,"config":883},"Public sector",{"href":442,"dataGaName":443,"dataGaLocation":732},{"text":885,"config":886},"Education",{"href":887,"dataGaName":888,"dataGaLocation":732},"/solutions/education/","education",{"text":890,"config":891},"Financial services",{"href":892,"dataGaName":893,"dataGaLocation":732},"/solutions/finance/","financial services",{"title":450,"links":895},[896,898,900,902,905,907,910,912,914,916,918,920,922,924],{"text":463,"config":897},{"href":465,"dataGaName":466,"dataGaLocation":732},{"text":468,"config":899},{"href":470,"dataGaName":471,"dataGaLocation":732},{"text":473,"config":901},{"href":475,"dataGaName":476,"dataGaLocation":732},{"text":478,"config":903},{"href":480,"dataGaName":904,"dataGaLocation":732},"docs",{"text":501,"config":906},{"href":503,"dataGaName":504,"dataGaLocation":732},{"text":908,"config":909},"What's new",{"href":556,"dataGaName":557,"dataGaLocation":732},{"text":496,"config":911},{"href":498,"dataGaName":499,"dataGaLocation":732},{"text":510,"config":913},{"href":512,"dataGaName":513,"dataGaLocation":732},{"text":518,"config":915},{"href":520,"dataGaName":521,"dataGaLocation":732},{"text":523,"config":917},{"href":525,"dataGaName":526,"dataGaLocation":732},{"text":528,"config":919},{"href":530,"dataGaName":531,"dataGaLocation":732},{"text":533,"config":921},{"href":535,"dataGaName":536,"dataGaLocation":732},{"text":538,"config":923},{"href":540,"dataGaName":541,"dataGaLocation":732},{"text":543,"config":925},{"href":545,"dataGaName":546,"dataGaLocation":732},{"title":559,"links":927},[928,930,932,934,936,938,942,947,949,951,953],{"text":567,"config":929},{"href":569,"dataGaName":561,"dataGaLocation":732},{"text":572,"config":931},{"href":574,"dataGaName":575,"dataGaLocation":732},{"text":580,"config":933},{"href":582,"dataGaName":583,"dataGaLocation":732},{"text":585,"config":935},{"href":587,"dataGaName":588,"dataGaLocation":732},{"text":590,"config":937},{"href":592,"dataGaName":593,"dataGaLocation":732},{"text":939,"config":940},"Sustainability",{"href":941,"dataGaName":939,"dataGaLocation":732},"/sustainability/",{"text":943,"config":944},"Diversity, inclusion and belonging (DIB)",{"href":945,"dataGaName":946,"dataGaLocation":732},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":595,"config":948},{"href":597,"dataGaName":598,"dataGaLocation":732},{"text":605,"config":950},{"href":607,"dataGaName":608,"dataGaLocation":732},{"text":610,"config":952},{"href":612,"dataGaName":613,"dataGaLocation":732},{"text":954,"config":955},"Modern Slavery Transparency Statement",{"href":956,"dataGaName":957,"dataGaLocation":732},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":959},[960,963,966],{"text":961,"config":962},"Terms",{"href":784,"dataGaName":785,"dataGaLocation":732},{"text":964,"config":965},"Cookies",{"dataGaName":794,"dataGaLocation":732,"id":795,"isOneTrustButton":281},{"text":967,"config":968},"Privacy",{"href":789,"dataGaName":790,"dataGaLocation":732},[970],{"id":971,"title":7,"body":277,"config":972,"content":974,"description":277,"extension":979,"meta":980,"navigation":281,"path":981,"seo":982,"stem":983,"__hash__":984},"blogAuthors/en-us/blog/authors/ozer-dondurmacioglu.yml",{"template":973},"BlogAuthor",{"name":7,"config":975},{"headshot":976,"socialProof":977},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1784210286/n8ji1r6znabeygwdjgfo.jpg",{"gitlabHandle":978},"ozerdo","yml",{},"/en-us/blog/authors/ozer-dondurmacioglu",{},"en-us/blog/authors/ozer-dondurmacioglu","B6W_Lw7jpk4DE9NOHQ0NA9KowaAWRKKtvALJhzXy6yA",[986,991,998],{"title":987,"description":988,"heroImage":279,"category":273,"date":274,"authors":989,"slug":990,"externalUrl":277},"Turn multi-step software delivery into agentic flows you can trust","GitLab Duo Agent Platform's Custom Flows are now generally available.",[7],"multi-step-software-delivery-with-agentic-flows",{"title":992,"description":993,"heroImage":994,"category":273,"date":274,"authors":995,"slug":997,"externalUrl":277},"Forrester Consulting: GitLab Duo Agent Platform delivers 400% ROI","New study shows GitLab's agentic infrastructure accelerates time to value with increased productivity, faster security remediation, and efficient developer onboarding.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772058602/epl3sinfezlzxnppxak6.png",[996],"Jessica Taylor","gitlab-duo-agent-platform-delivers-400-percent-roi",{"title":999,"description":1000,"heroImage":1001,"category":273,"date":1002,"authors":1003,"slug":1005,"externalUrl":277},"How we used AI agents to migrate GitLab rate limiting","Learn how our three-person pod used GitLab Duo Agent platform, along with other AI tools, to successfully migrate the rate limiting system, and what we learned.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773075582/yiosxfhwk8rfkulrtchv.png","2026-07-08",[1004],"Sam Wiskow","ai-agents-for-migrating-rate-limiting-system",{"promotions":1007},[1008,1021,1032,1044],{"id":1009,"categories":1010,"header":1011,"text":1012,"button":1013,"image":1018},"ai-modernization",[273],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1014,"config":1015},"Get your AI maturity score",{"href":1016,"dataGaName":1017,"dataGaLocation":504},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1019},{"src":1020},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1022,"categories":1023,"header":1024,"text":1012,"button":1025,"image":1029},"devops-modernization",[289,834],"Are you just managing tools or shipping innovation?",{"text":1026,"config":1027},"Get your DevOps maturity score",{"href":1028,"dataGaName":1017,"dataGaLocation":504},"/assessments/devops-modernization-assessment/",{"config":1030},{"src":1031},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1033,"categories":1034,"header":1036,"text":1012,"button":1037,"image":1041},"security-modernization",[1035],"security","Are you trading speed for security?",{"text":1038,"config":1039},"Get your security maturity score",{"href":1040,"dataGaName":1017,"dataGaLocation":504},"/assessments/security-modernization-assessment/",{"config":1042},{"src":1043},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1045,"paths":1046,"header":1049,"text":1050,"button":1051,"image":1056},"github-azure-migration",[1047,1048],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1052,"config":1053},"See how GitLab compares to GitHub",{"href":1054,"dataGaName":1055,"dataGaLocation":504},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1057},{"src":1031},{"header":1059,"blurb":1060,"button":1061,"secondaryButton":1066},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1062,"config":1063},"Get your free trial",{"href":1064,"dataGaName":303,"dataGaLocation":1065},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":770,"config":1067},{"href":624,"dataGaName":308,"dataGaLocation":1065},1784318740247]