[{"data":1,"prerenderedAt":1067},["ShallowReactive",2],{"/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace":3,"navigation-en-us":282,"banner-en-us":709,"footer-en-us":719,"blog-post-authors-en-us-Safwan Ahmed":964,"blog-related-posts-en-us-use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace":979,"blog-promotions-en-us":1004,"next-steps-en-us":1057},{"id":4,"title":5,"authors":6,"body":8,"category":259,"date":260,"description":261,"extension":262,"externalUrl":263,"faq":263,"featured":264,"heroImage":265,"meta":266,"navigation":264,"path":267,"seo":268,"slug":273,"stem":274,"tags":275,"template":280,"updatedDate":263,"__hash__":281},"blogPosts/en-us/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace.md","Use GitLab AI features out-of-the-box in a GitLab Workspace",[7],"Safwan Ahmed",{"type":9,"value":10,"toc":247},"minimark",[11,22,37,42,51,55,62,66,97,101,104,108,116,120,123,130,142,148,156,160,163,169,173,176,182,185,191,194,197,222,227,236],[12,13,14,15,21],"p",{},"AI is transforming the way we get work done, from helping automate mundane tasks to optimizing aspects of our day-to-day workflow. Of particular relevance has been ",[16,17,20],"a",{"href":18,"rel":19},"https://about.gitlab.com/the-source/ai/how-to-put-generative-ai-to-work-in-your-devsecops-environment/",[],"generative AI’s ability"," to support developers in getting the job done, from code snippet suggestions to concise summaries of technical questions. These AI tools have been embedded in the development lifecycle through integrations with existing software like code editors and CI/CD platforms. Thanks to these integrations, particularly in the case of code editors, developers can have an AI assistant that complements their skills within their development environment.",[12,23,24,25,30,31,36],{},"While these AI tools can help boost productivity, setting them up in an existing development environment may not be preferable. For example, you may not want to install a new dependency on your local workstation that could affect your setup, you may have security or privacy concerns about running AI tools on your computer, or you may find it hard to give the tooling context on your existing workflow. GitLab resolves these issues by providing a suite of tools that allow you to leverage the power of AI in ",[16,26,29],{"href":27,"rel":28},"https://about.gitlab.com/blog/quick-start-guide-for-gitlab-workspaces/",[],"a remote development workspace"," right out of the box. In this blog, you'll learn about the GitLab features that make this possible and how to set up your ",[16,32,35],{"href":33,"rel":34},"https://docs.gitlab.com/user/workspace/",[],"workspace environment"," to get started.",[38,39,41],"h2",{"id":40},"gitlab-workflow-extension-for-vs-code","GitLab workflow extension for VS Code",[12,43,44,45,50],{},"GitLab workflow extension for VS Code integrates GitLab into the VS Code editor. It brings into scope key elements of your GitLab workflow such as issues, merge requests, and pipeline status. For more information, visit ",[16,46,49],{"href":47,"rel":48},"https://docs.gitlab.com/editor_extensions/visual_studio_code/",[],"the GitLab workflow extension documentation",".",[38,52,54],{"id":53},"gitlab-workspaces","GitLab Workspaces",[12,56,57,58,50],{},"GitLab Workspaces provide an isolated development environment to make changes to your GitLab projects. Workspaces offer a platform to work on your projects without the complexity of setting up local dependencies. Workspaces also provide reproducible development setups, as a workspace environment configuration created by one developer can be shared with others. GitLab Workspaces are configured to use the VS Code editor and ship with the workflow extension preinstalled. To learn more, visit the ",[16,59,61],{"href":33,"rel":60},[],"GitLab Workspaces documentation",[38,63,65],{"id":64},"gitlab-duo-chat-and-code-suggestions","GitLab Duo Chat and Code Suggestions",[12,67,68,73,74,79,80,85,86,73,91,96],{},[16,69,72],{"href":70,"rel":71},"https://about.gitlab.com/blog/gitlab-duo-chat-now-generally-available/",[],"GitLab Duo Chat"," and ",[16,75,78],{"href":76,"rel":77},"https://about.gitlab.com/blog/gitlab-duo-code-suggestions-is-generally-available/",[],"GitLab Duo Code Suggestions"," are part of the GitLab Duo suite of AI features enhancing developer productivity. Chat and Code Suggestions are integrated into the workflow extension and are GitLab context-aware. This allows you to ask GitLab Duo questions about items like issues and merge requests and to automatically have access to code suggestions and code completion. This integration requires ",[16,81,84],{"href":82,"rel":83},"https://about.gitlab.com/gitlab-duo-agent-platform/",[],"a GitLab Duo license",". See the ",[16,87,90],{"href":88,"rel":89},"https://docs.gitlab.com/user/gitlab_duo_chat/",[],"GitLab Duo Chat documentation",[16,92,95],{"href":93,"rel":94},"https://docs.gitlab.com/user/project/repository/code_suggestions/",[],"GitLab Duo Code Suggestions documentation"," for more information.",[38,98,100],{"id":99},"how-to-set-up-the-workflow-extension-workspaces-and-gitlab-duo-to-work-together","How to set up the Workflow extension, Workspaces, and GitLab Duo to work together",[12,102,103],{},"While these features are impressive on their own, when combined they deliver on the promise of an easy-to-spin-up, isolated, AI-driven development environment. Here are the steps to get this powerhouse up and running.",[38,105,107],{"id":106},"create-a-workspace","Create a workspace",[12,109,110,111,115],{},"Follow this ",[16,112,114],{"href":27,"rel":113},[],"comprehensive but easy-to-follow tutorial"," to create a remote development workspace.",[38,117,119],{"id":118},"validate-gitlab-workflow-is-active","Validate GitLab Workflow is active",[12,121,122],{},"After your workspace is up and running, you should see a GitLab icon on the side of your editor like the following:",[12,124,125],{},[126,127],"img",{"alt":128,"src":129},"Arrow pointing to GitLab tanuki icon","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098853/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750098853108.png",[12,131,132,133,137,138,141],{},"You can then use the workflow extension to bring up merge requests assigned to you in the current project in GitLab. To do this, access the command palette by hitting ",[134,135,136],"code",{},"command + shift + P"," and entering ",[134,139,140],{},"GitLab: Show Merge Requests Assigned to Me",". This will redirect you to GitLab and show your assigned MRs.",[12,143,144],{},[126,145],{"alt":146,"src":147},"Arrow pointing to 'GitLab: Show Merge Requests Assigned to Me'","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098853/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098853109.png",[12,149,150,151,50],{},"For more tips and tricks, read ",[16,152,155],{"href":153,"rel":154},"https://about.gitlab.com/blog/vscode-workflows-for-working-with-gitlab/",[],"Visual Studio code editor: Eight tips for using GitLab VS Code",[38,157,159],{"id":158},"use-gitlab-duo-chat","Use GitLab Duo Chat",[12,161,162],{},"You should also see a second, smaller GitLab icon on your sidebar. This gives you access to GitLab Duo Chat. Feel free to ask it a question.",[12,164,165],{},[126,166],{"alt":167,"src":168},"Arrow pointing to GitLab tanuki icon with sparkles around it","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098853/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750098853111.png",[38,170,172],{"id":171},"use-gitlab-duo-code-suggestions","Use GitLab Duo Code Suggestions",[12,174,175],{},"Open up any source file in your directory. You can begin typing code and have predictive suggestions, powered by GitLab Duo Code Suggestions, pop up –  you can insert them by hitting the tab key. The example below shows my attempt to write a string processing function. Code Suggestions has inferred I would want to split the passed string into spaces, which is indeed my intention.",[12,177,178],{},[126,179],{"alt":180,"src":181},"Code Suggestions suggesting that the passed string into spaces","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098853/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098853112.png",[12,183,184],{},"Suppose I have completed my string processing function above and would like to generate unit tests for it but want to avoid the chore of writing boilerplate code. You can provide a comment in your editor and have Code Suggestions generate code for you like the following:",[12,186,187],{},[126,188],{"alt":189,"src":190},"Shows boilerplate code for generating unit tests","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098853/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098853115.png",[12,192,193],{},"Code Suggestions implements a whole unit test for my function, covering happy and sad paths.",[12,195,196],{},"For more exciting uses of the GitLab Duo suite, check out these articles:",[198,199,200,208,215],"ul",{},[201,202,203],"li",{},[16,204,207],{"href":205,"rel":206},"https://about.gitlab.com/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/",[],"10 best practices for using AI-powered GitLab Duo Chat",[201,209,210],{},[16,211,214],{"href":212,"rel":213},"https://about.gitlab.com/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo/",[],"Top tips for efficient AI-powered Code Suggestions with GitLab Duo",[201,216,217],{},[16,218,221],{"href":219,"rel":220},"https://about.gitlab.com/blog/developing-gitlab-duo-series/",[],"\"Developing GitLab Duo\" blog series",[223,224,226],"h1",{"id":225},"next-steps","Next steps",[12,228,229,230,235],{},"GitLab Workspaces is coming up with more exciting integrations and features that will enhance your remote development experience, be sure to check out the ",[16,231,234],{"href":232,"rel":233},"https://gitlab.com/groups/gitlab-org/-/epics/7419",[],"category epic"," to know what’s coming next!",[237,238,239],"blockquote",{},[12,240,241,242,246],{},"Sign up for ",[16,243,245],{"href":82,"rel":244},[],"a free trial of GitLab Duo"," today!",{"title":248,"searchDepth":249,"depth":249,"links":250},"",2,[251,252,253,254,255,256,257,258],{"id":40,"depth":249,"text":41},{"id":53,"depth":249,"text":54},{"id":64,"depth":249,"text":65},{"id":99,"depth":249,"text":100},{"id":106,"depth":249,"text":107},{"id":118,"depth":249,"text":119},{"id":158,"depth":249,"text":159},{"id":171,"depth":249,"text":172},"ai","2024-07-24","GitLab Workspaces now ships with the GitLab workflow extension preinstalled, providing access to powerful AI features like GitLab Duo Chat and Code Suggestions for increased productivity.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098843/Blog/Hero%20Images/Blog/Hero%20Images/securitylifecycle-light_securitylifecycle-light.png_1750098843047.png",{},"/en-us/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace",{"title":5,"description":261,"ogTitle":5,"ogDescription":261,"noIndex":269,"ogImage":265,"ogUrl":270,"ogSiteName":271,"ogType":272,"canonicalUrls":270},false,"https://about.gitlab.com/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace","https://about.gitlab.com","article","use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace","en-us/blog/use-gitlab-ai-features-out-of-the-box-in-a-gitlab-workspace",[276,277,278,279],"AI","workflow","integrations","features","BlogPost","MH4fomVEEc6-hv8-wf2t8ti1JzA9ghSgWr-t4uh7GDo",{"logo":283,"freeTrial":288,"sales":293,"login":298,"items":303,"search":629,"minimal":660,"duo":679,"switchNav":688,"pricingDeployment":699},{"config":284},{"href":285,"dataGaName":286,"dataGaLocation":287},"/","gitlab logo","header",{"text":289,"config":290},"Get free trial",{"href":291,"dataGaName":292,"dataGaLocation":287},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":294,"config":295},"Request a demo",{"href":296,"dataGaName":297,"dataGaLocation":287},"/sales/?contact-topic=request-demo","sales",{"text":299,"config":300},"Sign in",{"href":301,"dataGaName":302,"dataGaLocation":287},"https://gitlab.com/users/sign_in/","sign in",[304,333,433,438,551,607],{"text":305,"config":306,"menu":308},"Platform",{"dataNavLevelOne":307},"platform",{"type":309,"columns":310},"cards",[311,317,325],{"title":305,"description":312,"link":313},"The intelligent orchestration platform for DevSecOps",{"text":314,"config":315},"Explore our Platform",{"href":316,"dataGaName":307,"dataGaLocation":287},"/platform/",{"title":318,"description":319,"link":320},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":321,"config":322},"Meet GitLab Duo",{"href":323,"dataGaName":324,"dataGaLocation":287},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":326,"description":327,"link":328},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":329,"config":330},"Learn more",{"href":331,"dataGaName":332,"dataGaLocation":287},"/why-gitlab/","why gitlab",{"text":334,"left":264,"config":335,"menu":337},"Product",{"dataNavLevelOne":336},"solutions",{"type":338,"link":339,"columns":343,"feature":412},"lists",{"text":340,"config":341},"View all Solutions",{"href":342,"dataGaName":336,"dataGaLocation":287},"/solutions/",[344,368,391],{"title":345,"description":346,"link":347,"items":352},"Automation","CI/CD and automation to accelerate deployment",{"config":348},{"icon":349,"href":350,"dataGaName":351,"dataGaLocation":287},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[353,357,360,364],{"text":354,"config":355},"CI/CD",{"href":356,"dataGaLocation":287,"dataGaName":354},"/solutions/continuous-integration/",{"text":318,"config":358},{"href":323,"dataGaLocation":287,"dataGaName":359},"gitlab duo agent platform - product menu",{"text":361,"config":362},"Source Code Management",{"href":363,"dataGaLocation":287,"dataGaName":361},"/solutions/source-code-management/",{"text":365,"config":366},"Automated Software Delivery",{"href":350,"dataGaLocation":287,"dataGaName":367},"Automated software delivery",{"title":369,"description":370,"link":371,"items":376},"Security","Deliver code faster without compromising security",{"config":372},{"href":373,"dataGaName":374,"dataGaLocation":287,"icon":375},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[377,381,386],{"text":378,"config":379},"Application Security Testing",{"href":373,"dataGaName":380,"dataGaLocation":287},"Application security testing",{"text":382,"config":383},"Software Supply Chain Security",{"href":384,"dataGaLocation":287,"dataGaName":385},"/solutions/supply-chain/","Software supply chain security",{"text":387,"config":388},"Software Compliance",{"href":389,"dataGaName":390,"dataGaLocation":287},"/solutions/software-compliance/","software compliance",{"title":392,"link":393,"items":398},"Measurement",{"config":394},{"icon":395,"href":396,"dataGaName":397,"dataGaLocation":287},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[399,403,407],{"text":400,"config":401},"Visibility & Measurement",{"href":396,"dataGaLocation":287,"dataGaName":402},"Visibility and Measurement",{"text":404,"config":405},"Value Stream Management",{"href":406,"dataGaLocation":287,"dataGaName":404},"/solutions/value-stream-management/",{"text":408,"config":409},"Analytics & Insights",{"href":410,"dataGaLocation":287,"dataGaName":411},"/solutions/analytics-and-insights/","Analytics and insights",{"title":413,"type":338,"items":414},"GitLab for",[415,421,427],{"text":416,"config":417},"Enterprise",{"icon":418,"href":419,"dataGaLocation":287,"dataGaName":420},"Building","/enterprise/","enterprise",{"text":422,"config":423},"Small Business",{"icon":424,"href":425,"dataGaLocation":287,"dataGaName":426},"Work","/small-business/","small business",{"text":428,"config":429},"Public Sector",{"icon":430,"href":431,"dataGaLocation":287,"dataGaName":432},"Organization","/solutions/public-sector/","public sector",{"text":434,"config":435},"Pricing",{"href":436,"dataGaName":437,"dataGaLocation":287,"dataNavLevelOne":437},"/pricing/","pricing",{"text":439,"config":440,"menu":442},"Resources",{"dataNavLevelOne":441},"resources",{"type":338,"link":443,"columns":447,"feature":540},{"text":444,"config":445},"View all resources",{"href":446,"dataGaName":441,"dataGaLocation":287},"/resources/",[448,480,507],{"title":449,"items":450},"Getting started",[451,456,461,466,471,476],{"text":452,"config":453},"Install",{"href":454,"dataGaName":455,"dataGaLocation":287},"/install/","install",{"text":457,"config":458},"Quick start guides",{"href":459,"dataGaName":460,"dataGaLocation":287},"/get-started/","quick setup checklists",{"text":462,"config":463},"Learn",{"href":464,"dataGaLocation":287,"dataGaName":465},"https://university.gitlab.com/","learn",{"text":467,"config":468},"Product documentation",{"href":469,"dataGaName":470,"dataGaLocation":287},"https://docs.gitlab.com/","product documentation",{"text":472,"config":473},"Best practice videos",{"href":474,"dataGaName":475,"dataGaLocation":287},"/getting-started-videos/","best practice videos",{"text":477,"config":478},"Integrations",{"href":479,"dataGaName":278,"dataGaLocation":287},"/integrations/",{"title":481,"items":482},"Discover",[483,488,493,498,502],{"text":484,"config":485},"Customer success stories",{"href":486,"dataGaName":487,"dataGaLocation":287},"/customers/","customer success stories",{"text":489,"config":490},"Blog",{"href":491,"dataGaName":492,"dataGaLocation":287},"/blog/","blog",{"text":494,"config":495},"Demo Hub",{"href":496,"dataGaName":497,"dataGaLocation":287},"/demo-hub/","demo hub",{"text":499,"config":500},"The Source",{"href":501,"dataGaName":492,"dataGaLocation":287},"/the-source/",{"text":503,"config":504},"Remote",{"href":505,"dataGaName":506,"dataGaLocation":287},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":508,"items":509},"Connect",[510,515,520,525,530,535],{"text":511,"config":512},"GitLab Services",{"href":513,"dataGaName":514,"dataGaLocation":287},"/services/","services",{"text":516,"config":517},"Contribute",{"href":518,"dataGaName":519,"dataGaLocation":287},"https://contributors.gitlab.com","contribute",{"text":521,"config":522},"Community",{"href":523,"dataGaName":524,"dataGaLocation":287},"/community/","community",{"text":526,"config":527},"Forum",{"href":528,"dataGaName":529,"dataGaLocation":287},"https://forum.gitlab.com/","forum",{"text":531,"config":532},"Events",{"href":533,"dataGaName":534,"dataGaLocation":287},"/events/","events",{"text":536,"config":537},"Partners",{"href":538,"dataGaName":539,"dataGaLocation":287},"/partners/","partners",{"config":541,"title":544,"text":545,"link":546},{"background":542,"textColor":543},"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":547,"config":548},"Read the latest",{"href":549,"dataGaName":550,"dataGaLocation":287},"/whats-new/","whats new",{"text":552,"config":553,"menu":555},"Company",{"dataNavLevelOne":554},"company",{"type":338,"columns":556},[557],{"items":558},[559,564,570,572,577,582,587,592,597,602],{"text":560,"config":561},"About",{"href":562,"dataGaName":563,"dataGaLocation":287},"/company/","about",{"text":565,"config":566,"footerGa":569},"Jobs",{"href":567,"dataGaName":568,"dataGaLocation":287},"/jobs/","jobs",{"dataGaName":568},{"text":531,"config":571},{"href":533,"dataGaName":534,"dataGaLocation":287},{"text":573,"config":574},"Leadership",{"href":575,"dataGaName":576,"dataGaLocation":287},"/company/team/e-group/","leadership",{"text":578,"config":579},"Handbook",{"href":580,"dataGaName":581,"dataGaLocation":287},"https://handbook.gitlab.com/","handbook",{"text":583,"config":584},"Investor relations",{"href":585,"dataGaName":586,"dataGaLocation":287},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":588,"config":589},"Trust Center",{"href":590,"dataGaName":591,"dataGaLocation":287},"/security/","trust center",{"text":593,"config":594},"AI Transparency Center",{"href":595,"dataGaName":596,"dataGaLocation":287},"/ai-transparency-center/","ai transparency center",{"text":598,"config":599},"Newsletter",{"href":600,"dataGaName":601,"dataGaLocation":287},"/company/contact/#contact-forms","newsletter",{"text":603,"config":604},"Press",{"href":605,"dataGaName":606,"dataGaLocation":287},"/press/","press",{"text":608,"config":609,"menu":610},"Contact us",{"dataNavLevelOne":554},{"type":338,"columns":611},[612],{"items":613},[614,619,624],{"text":615,"config":616},"Talk to sales",{"href":617,"dataGaName":618,"dataGaLocation":287},"/sales/","talk to sales",{"text":620,"config":621},"Support portal",{"href":622,"dataGaName":623,"dataGaLocation":287},"https://support.gitlab.com/hc/en-us","support portal",{"text":625,"config":626},"Customer portal",{"href":627,"dataGaName":628,"dataGaLocation":287},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":630,"login":631,"suggestions":638},"Close",{"text":632,"link":633},"To search repositories and projects, login to",{"text":634,"config":635},"gitlab.com",{"href":301,"dataGaName":636,"dataGaLocation":637},"search login","search",{"text":639,"default":640},"Suggestions",[641,643,647,649,653,657],{"text":318,"config":642},{"href":323,"dataGaName":318,"dataGaLocation":637},{"text":644,"config":645},"Code Suggestions (AI)",{"href":646,"dataGaName":644,"dataGaLocation":637},"/solutions/code-suggestions/",{"text":354,"config":648},{"href":356,"dataGaName":354,"dataGaLocation":637},{"text":650,"config":651},"GitLab on AWS",{"href":652,"dataGaName":650,"dataGaLocation":637},"/partners/technology-partners/aws/",{"text":654,"config":655},"GitLab on Google Cloud",{"href":656,"dataGaName":654,"dataGaLocation":637},"/partners/technology-partners/google-cloud-platform/",{"text":658,"config":659},"Why GitLab?",{"href":331,"dataGaName":658,"dataGaLocation":637},{"freeTrial":661,"mobileIcon":666,"desktopIcon":671,"secondaryButton":674},{"text":662,"config":663},"Start free trial",{"href":664,"dataGaName":292,"dataGaLocation":665},"https://gitlab.com/-/trials/new/","nav",{"altText":667,"config":668},"Gitlab Icon",{"src":669,"dataGaName":670,"dataGaLocation":665},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":667,"config":672},{"src":673,"dataGaName":670,"dataGaLocation":665},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":675,"config":676},"Get Started",{"href":677,"dataGaName":678,"dataGaLocation":665},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":680,"mobileIcon":684,"desktopIcon":686},{"text":681,"config":682},"Learn more about GitLab Duo",{"href":323,"dataGaName":683,"dataGaLocation":665},"gitlab duo",{"altText":667,"config":685},{"src":669,"dataGaName":670,"dataGaLocation":665},{"altText":667,"config":687},{"src":673,"dataGaName":670,"dataGaLocation":665},{"button":689,"mobileIcon":694,"desktopIcon":696},{"text":690,"config":691},"/switch",{"href":692,"dataGaName":693,"dataGaLocation":665},"#contact","switch",{"altText":667,"config":695},{"src":669,"dataGaName":670,"dataGaLocation":665},{"altText":667,"config":697},{"src":698,"dataGaName":670,"dataGaLocation":665},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":700,"mobileIcon":705,"desktopIcon":707},{"text":701,"config":702},"Back to pricing",{"href":436,"dataGaName":703,"dataGaLocation":665,"icon":704},"back to pricing","GoBack",{"altText":667,"config":706},{"src":669,"dataGaName":670,"dataGaLocation":665},{"altText":667,"config":708},{"src":673,"dataGaName":670,"dataGaLocation":665},{"title":710,"titleMobile":711,"button":712,"config":717},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":329,"config":713},{"href":714,"dataGaName":715,"dataGaLocation":716},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":718,"disabled":269},"release",{"data":720},{"text":721,"source":722,"edit":728,"contribute":733,"config":738,"items":743,"minimal":953},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":723,"config":724},"View page source",{"href":725,"dataGaName":726,"dataGaLocation":727},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":729,"config":730},"Edit this page",{"href":731,"dataGaName":732,"dataGaLocation":727},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":734,"config":735},"Please contribute",{"href":736,"dataGaName":737,"dataGaLocation":727},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":739,"facebook":740,"youtube":741,"linkedin":742},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[744,791,845,889,921],{"title":434,"links":745,"subMenu":760},[746,750,755],{"text":747,"config":748},"View plans",{"href":436,"dataGaName":749,"dataGaLocation":727},"view plans",{"text":751,"config":752},"Why Premium?",{"href":753,"dataGaName":754,"dataGaLocation":727},"/pricing/premium/","why premium",{"text":756,"config":757},"Why Ultimate?",{"href":758,"dataGaName":759,"dataGaLocation":727},"/pricing/ultimate/","why ultimate",[761],{"title":762,"links":763},"Contact Us",[764,767,769,771,776,781,786],{"text":765,"config":766},"Contact sales",{"href":617,"dataGaName":297,"dataGaLocation":727},{"text":620,"config":768},{"href":622,"dataGaName":623,"dataGaLocation":727},{"text":625,"config":770},{"href":627,"dataGaName":628,"dataGaLocation":727},{"text":772,"config":773},"Status",{"href":774,"dataGaName":775,"dataGaLocation":727},"https://status.gitlab.com/","status",{"text":777,"config":778},"Terms of use",{"href":779,"dataGaName":780,"dataGaLocation":727},"/terms/","terms of use",{"text":782,"config":783},"Privacy statement",{"href":784,"dataGaName":785,"dataGaLocation":727},"/privacy/","privacy statement",{"text":787,"config":788},"Cookie preferences",{"dataGaName":789,"dataGaLocation":727,"id":790,"isOneTrustButton":264},"cookie preferences","ot-sdk-btn",{"title":334,"links":792,"subMenu":801},[793,797],{"text":794,"config":795},"DevSecOps platform",{"href":316,"dataGaName":796,"dataGaLocation":727},"devsecops platform",{"text":798,"config":799},"AI-Assisted Development",{"href":323,"dataGaName":800,"dataGaLocation":727},"ai-assisted development",[802],{"title":803,"links":804},"Topics",[805,810,815,820,825,830,835,840],{"text":806,"config":807},"CICD",{"href":808,"dataGaName":809,"dataGaLocation":727},"/topics/ci-cd/","cicd",{"text":811,"config":812},"GitOps",{"href":813,"dataGaName":814,"dataGaLocation":727},"/topics/gitops/","gitops",{"text":816,"config":817},"DevOps",{"href":818,"dataGaName":819,"dataGaLocation":727},"/topics/devops/","devops",{"text":821,"config":822},"Version Control",{"href":823,"dataGaName":824,"dataGaLocation":727},"/topics/version-control/","version control",{"text":826,"config":827},"DevSecOps",{"href":828,"dataGaName":829,"dataGaLocation":727},"/topics/devsecops/","devsecops",{"text":831,"config":832},"Cloud Native",{"href":833,"dataGaName":834,"dataGaLocation":727},"/topics/cloud-native/","cloud native",{"text":836,"config":837},"AI for Coding",{"href":838,"dataGaName":839,"dataGaLocation":727},"/topics/devops/ai-for-coding/","ai for coding",{"text":841,"config":842},"Agentic AI",{"href":843,"dataGaName":844,"dataGaLocation":727},"/topics/agentic-ai/","agentic ai",{"title":846,"links":847},"Solutions",[848,850,852,857,861,864,868,871,873,876,879,884],{"text":378,"config":849},{"href":373,"dataGaName":378,"dataGaLocation":727},{"text":367,"config":851},{"href":350,"dataGaName":351,"dataGaLocation":727},{"text":853,"config":854},"Agile development",{"href":855,"dataGaName":856,"dataGaLocation":727},"/solutions/agile-delivery/","agile delivery",{"text":858,"config":859},"SCM",{"href":363,"dataGaName":860,"dataGaLocation":727},"source code management",{"text":806,"config":862},{"href":356,"dataGaName":863,"dataGaLocation":727},"continuous integration & delivery",{"text":865,"config":866},"Value stream management",{"href":406,"dataGaName":867,"dataGaLocation":727},"value stream management",{"text":811,"config":869},{"href":870,"dataGaName":814,"dataGaLocation":727},"/solutions/gitops/",{"text":416,"config":872},{"href":419,"dataGaName":420,"dataGaLocation":727},{"text":874,"config":875},"Small business",{"href":425,"dataGaName":426,"dataGaLocation":727},{"text":877,"config":878},"Public sector",{"href":431,"dataGaName":432,"dataGaLocation":727},{"text":880,"config":881},"Education",{"href":882,"dataGaName":883,"dataGaLocation":727},"/solutions/education/","education",{"text":885,"config":886},"Financial services",{"href":887,"dataGaName":888,"dataGaLocation":727},"/solutions/finance/","financial services",{"title":439,"links":890},[891,893,895,897,900,902,905,907,909,911,913,915,917,919],{"text":452,"config":892},{"href":454,"dataGaName":455,"dataGaLocation":727},{"text":457,"config":894},{"href":459,"dataGaName":460,"dataGaLocation":727},{"text":462,"config":896},{"href":464,"dataGaName":465,"dataGaLocation":727},{"text":467,"config":898},{"href":469,"dataGaName":899,"dataGaLocation":727},"docs",{"text":489,"config":901},{"href":491,"dataGaName":492,"dataGaLocation":727},{"text":903,"config":904},"What's new",{"href":549,"dataGaName":550,"dataGaLocation":727},{"text":484,"config":906},{"href":486,"dataGaName":487,"dataGaLocation":727},{"text":503,"config":908},{"href":505,"dataGaName":506,"dataGaLocation":727},{"text":511,"config":910},{"href":513,"dataGaName":514,"dataGaLocation":727},{"text":516,"config":912},{"href":518,"dataGaName":519,"dataGaLocation":727},{"text":521,"config":914},{"href":523,"dataGaName":524,"dataGaLocation":727},{"text":526,"config":916},{"href":528,"dataGaName":529,"dataGaLocation":727},{"text":531,"config":918},{"href":533,"dataGaName":534,"dataGaLocation":727},{"text":536,"config":920},{"href":538,"dataGaName":539,"dataGaLocation":727},{"title":552,"links":922},[923,925,927,929,931,933,937,942,944,946,948],{"text":560,"config":924},{"href":562,"dataGaName":554,"dataGaLocation":727},{"text":565,"config":926},{"href":567,"dataGaName":568,"dataGaLocation":727},{"text":573,"config":928},{"href":575,"dataGaName":576,"dataGaLocation":727},{"text":578,"config":930},{"href":580,"dataGaName":581,"dataGaLocation":727},{"text":583,"config":932},{"href":585,"dataGaName":586,"dataGaLocation":727},{"text":934,"config":935},"Sustainability",{"href":936,"dataGaName":934,"dataGaLocation":727},"/sustainability/",{"text":938,"config":939},"Diversity, inclusion and belonging (DIB)",{"href":940,"dataGaName":941,"dataGaLocation":727},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":588,"config":943},{"href":590,"dataGaName":591,"dataGaLocation":727},{"text":598,"config":945},{"href":600,"dataGaName":601,"dataGaLocation":727},{"text":603,"config":947},{"href":605,"dataGaName":606,"dataGaLocation":727},{"text":949,"config":950},"Modern Slavery Transparency Statement",{"href":951,"dataGaName":952,"dataGaLocation":727},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":954},[955,958,961],{"text":956,"config":957},"Terms",{"href":779,"dataGaName":780,"dataGaLocation":727},{"text":959,"config":960},"Cookies",{"dataGaName":789,"dataGaLocation":727,"id":790,"isOneTrustButton":264},{"text":962,"config":963},"Privacy",{"href":784,"dataGaName":785,"dataGaLocation":727},[965],{"id":966,"title":7,"body":263,"config":967,"content":969,"description":263,"extension":973,"meta":974,"navigation":264,"path":975,"seo":976,"stem":977,"__hash__":978},"blogAuthors/en-us/blog/authors/safwan-ahmed.yml",{"template":968},"BlogAuthor",{"name":7,"config":970},{"headshot":971,"ctfId":972},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667732/Blog/Author%20Headshots/safwan_headshot.png","2Nw8KPOPpRBiBrVxMIaEn3","yml",{},"/en-us/blog/authors/safwan-ahmed",{},"en-us/blog/authors/safwan-ahmed","PcgL4IbRvZpjsMf9uY4tPnxBA6KmGphuHq6XT1Hu2Cs",[980,988,996],{"title":981,"description":982,"heroImage":983,"category":259,"date":984,"authors":985,"slug":987,"externalUrl":263},"How I built a demo generator with GitLab Duo Agent Platform","Demos haven't always looked like this. Looking back over my career, here's how they have evolved. Follow the tutorial to build your own demo and agent.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-08-13",[986],"Itzik Gan Baruch","agentic-click-through-demo",{"title":989,"description":990,"heroImage":991,"category":259,"date":992,"authors":993,"slug":995,"externalUrl":263},"How to govern agentic AI, MCPs, and AI code assistants","AI agents can write, push, and deploy without human review at each step. Learn a practical framework for controlling access, permissions, and audit trails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png","2026-07-31",[994],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":997,"description":998,"heroImage":999,"category":259,"date":1000,"authors":1001,"slug":1003,"externalUrl":263},"Claude Opus 5 on GitLab: Reasoning built for the hard tasks","Anthropic’s Claude Opus 5 is now available on GitLab Duo Agent Platform, delivering deeper reasoning without sacrificing speed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[1002],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":1005},[1006,1019,1031,1043],{"id":1007,"categories":1008,"header":1009,"text":1010,"button":1011,"image":1016},"ai-modernization",[259],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1012,"config":1013},"Get your AI maturity score",{"href":1014,"dataGaName":1015,"dataGaLocation":492},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1017},{"src":1018},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1020,"categories":1021,"header":1023,"text":1010,"button":1024,"image":1028},"devops-modernization",[1022,829],"product","Are you just managing tools or shipping innovation?",{"text":1025,"config":1026},"Get your DevOps maturity score",{"href":1027,"dataGaName":1015,"dataGaLocation":492},"/assessments/devops-modernization-assessment/",{"config":1029},{"src":1030},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1032,"categories":1033,"header":1035,"text":1010,"button":1036,"image":1040},"security-modernization",[1034],"security","Are you trading speed for security?",{"text":1037,"config":1038},"Get your security maturity score",{"href":1039,"dataGaName":1015,"dataGaLocation":492},"/assessments/security-modernization-assessment/",{"config":1041},{"src":1042},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1044,"paths":1045,"header":1048,"text":1049,"button":1050,"image":1055},"github-azure-migration",[1046,1047],"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":1051,"config":1052},"See how GitLab compares to GitHub",{"href":1053,"dataGaName":1054,"dataGaLocation":492},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1056},{"src":1030},{"header":1058,"blurb":1059,"button":1060,"secondaryButton":1065},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1061,"config":1062},"Get your free trial",{"href":1063,"dataGaName":292,"dataGaLocation":1064},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":765,"config":1066},{"href":617,"dataGaName":297,"dataGaLocation":1064},1786803756022]