Gitlab CLI for AI Agents

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP. With Composio's Universal CLI, your coding agents can talk to over 1000+ SaaS applications. With Gitlab, agents can create new gitlab group for qa team, open bug issue in frontend project, create branch from latest main commit, and more — all without worrying about authentication. This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Gitlab automation.

Gitlab logoGitlab
Oauth2

Gitlab is a web-based DevOps platform for managing source code, issues, and CI/CD pipelines. It streamlines software development with integrated collaboration and automation tools.

58 Tools

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 1000+ SaaS applications. With Gitlab, agents can create new gitlab group for qa team, open bug issue in frontend project, create branch from latest main commit, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Gitlab automation.

Also integrate Gitlab with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 1000+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Gitlab to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Gitlab"
  3. Complete the authentication and authorization flow and your Gitlab integration is all set.
  4. Start asking anything you want.

Universal CLI Commands for Gitlab

You can also manually execute CLI commands to interact with your Gitlab.

Connect your Gitlab account

Link your Gitlab account and verify the connection:

bash
# Connect your Gitlab account (opens OAuth flow)
composio connected-accounts link gitlab

# Verify the connection
composio connected-accounts list --toolkits gitlab

Discover Gitlab tools

Search and inspect available Gitlab tools:

bash
# List all available Gitlab tools
composio tools list --toolkit gitlab

# Search for Gitlab tools by action
composio tools search "gitlab"

# Inspect a tool's input schema
composio tools info GITLAB_ARCHIVE_PROJECT

Common Gitlab Actions

Archive ProjectTool to archive a project

bash
composio tools execute GITLAB_ARCHIVE_PROJECT \
  --id "5"

Create GitLab GroupTool to create a new group in gitlab

bash
composio tools execute GITLAB_CREATE_GROUP \
  --name "My New Group" \
  --path "my-new-group"

Create ProjectTool to create a new project in gitlab

bash
composio tools execute GITLAB_CREATE_PROJECT \
  --name "My New Project" \
  --path "my-new-project"

Create Project IssueTool to create a new issue in a gitlab project

bash
composio tools execute GITLAB_CREATE_PROJECT_ISSUE \
  --id "my-group/my-project" \
  --title "Issue with authentication"

Generate Type Definitions

Generate typed schemas for Gitlab tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits gitlab

# TypeScript
composio ts generate --toolkits gitlab

# Python
composio py generate --toolkits gitlab

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Gitlab operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects
TOOLS

Supported Tools

Every Gitlab action and event your agent gets out of the box.

Archive Project

Tool to archive a project.

Create GitLab Group

Tool to create a new group in GitLab.

Create Project

Tool to create a new project in GitLab.

Create Project Issue

Tool to create a new issue in a GitLab project.

Create Repository Branch

Tool to create a new branch in a project.

Delete Project

Tool to delete a GitLab project by its ID.

Download Project Avatar

Tool to download a project's avatar image.

Erase Job

Tool to erase the content of a specified job within a project.

Get Commit References

Tool to get all references (branches or tags) a commit is pushed to.

Get Commit Sequence

Tool to get the sequence number of a commit in a project by following parent links from the given commit.

Get Group Details

Tool to retrieve information about a specific group by its ID.

Get Group Member

Tool to retrieve details for a specific group member.

Get Groups

Get Groups

Get Job Details

Tool to retrieve details of a single job by its ID within a specified project.

Get Merge Request Notes

Tool to fetch comments on a merge request.

Get Project

Tool to get a single project by ID or URL-encoded path.

Get Project Languages

Tool to list programming languages used in a project with percentages.

Get Project Member

Tool to retrieve details for a specific project member.

Get Project Member All

Tool to retrieve details for a specific project member (including inherited and invited members).

Get Project Merge Request

Tool to fetch full details for a single merge request when the MR IID is known.

Get Merge Request Commits

Tool to get commits of a merge request.

Get Project Merge Requests

Tool to retrieve a list of merge requests for a specific project.

Get Projects

Tool to list all projects accessible to the authenticated user.

List Merge Request Diffs

Tool to list all diff versions of a merge request.

Get Repository Branch

Tool to retrieve information about a specific branch in a project.

Get Repository Branches

Retrieves a list of repository branches for a project.

Get Single Commit

Tool to get a specific commit identified by the commit hash or name of a branch or tag.

Get Single Pipeline

Tool to retrieve details of a single pipeline by its ID within a specified project.

Get User

Tool to retrieve information about a specific user by their ID.

Get User Preferences

Tool to get the current user's preferences.

Get Users

Tool to retrieve a list of users from GitLab.

Get User Status

Tool to get a user's status by ID.

Get User Status

Tool to get the current user's status.

Get User Support PIN

Tool to get details of the current user's Support PIN.

Import project members

Tool to import members from one project to another.

List All Group Members

Tool to list all members of a group including direct, inherited, and invited members.

List All Project Members

Tool to list all members of a project (direct, inherited, invited).

List Billable Group Members

Tool to list billable members of a top-level group (including its subgroups and projects).

List Group Members

Tool to list direct members of a group.

List Group Projects

Tool to list projects within a GitLab group by group ID or full path.

List Pending Group Members

Tool to list pending members of a group and its subgroups and projects.

List Pipeline Jobs

Tool to retrieve a list of jobs for a specified pipeline within a project.

List Project Groups

Tool to list ancestor groups of a project.

List Project Invited Groups

Tool to list groups invited to a project.

List Project Issues

Tool to list issues for a project with filtering options (state, labels, search, assignee, author, etc.

List Project Pipelines

Tool to retrieve a list of pipelines for a specified project.

List Project Shareable Groups

Tool to list groups that can be shared with a project.

List Project Repository Tags

Tool to retrieve a list of repository tags for a specified project.

List Project Transfer Locations

Tool to list namespaces available for project transfer.

List project users

Tool to list users of a project.

List Repository Commits

Tool to get a list of repository commits in a project.

List User Projects

Tool to list projects owned by a specific user.

Create Support PIN

Tool to create a support PIN for your authenticated user.

Update User Preferences

Tool to update the current user's preferences.

Set User Status

Tool to set the current user's status.

Share Project With Group

Tool to share a project with a group.

Start Housekeeping Task

Tool to start the housekeeping task for a project.

Update Project Issue

Tool to update an existing issue in a GitLab project (title, description, labels, assignees, state, etc.

FAQ

Frequently asked questions

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 1000+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Gitlab and other connected apps.

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Gitlab data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Start with Gitlab.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Gitlab tool your agent needs.Free to start.

Start building