Browse free open source Go Command Line Tools and projects below. Use the toggles on the left to filter open source Go Command Line Tools by OS, license, language, programming language, and project status.

  • Gen AI apps are built with MongoDB Atlas Icon
    Gen AI apps are built with MongoDB Atlas

    Build gen AI apps with an all-in-one modern database: MongoDB Atlas

    MongoDB Atlas provides built-in vector search and a flexible document model so developers can build, scale, and run gen AI apps without stitching together multiple databases. From LLM integration to semantic search, Atlas simplifies your AI architecture—and it’s free to get started.
    Start Free
  • Keep company data safe with Chrome Enterprise Icon
    Keep company data safe with Chrome Enterprise

    Protect your business with AI policies and data loss prevention in the browser

    Make AI work your way with Chrome Enterprise. Block unapproved sites and set custom data controls that align with your company's policies.
    Download Chrome
  • 1
    IPATool

    IPATool

    Command-line tool that allows searching and downloading app packages

    ipatool is a command line tool that allows you to search for iOS apps on the App Store and download a copy of the app package, known as an ipa file. Supported operating system (Windows, Linux or macOS). Apple ID is set up to use the App Store. To authenticate with the App Store, use the auth command. To search for apps on the App Store, use the search command. To obtain a license for an app, use the purchase command. To download a copy of the ipa file, use the download command.
    Downloads: 38 This Week
    Last Update:
    See Project
  • 2
    CFSSL

    CFSSL

    Cloudflare's PKI and TLS toolkit

    CFSSL is CloudFlare's PKI/TLS swiss army knife. It is both a command line tool and an HTTP API server for signing, verifying, and bundling TLS certificates. It requires Go 1.12+ to build. Note that certain linux distributions have certain algorithms removed (RHEL-based distributions in particular), so the golang from the official repositories will not work. Users of these distributions should install go manually to install CFSSL. You can set the GOOS and GOARCH environment variables to have Go cross compile for alternative platforms; however, cfssl requires cgo, and cgo requires a working compiler toolchain for the target platform. The csr is the client's certificate request. The -ca and -ca-key flags are the CA's certificate and private key, respectively. By default, they are ca.pem and ca_key.pem. The -hostname is a comma separated hostname list that overrides the DNS names and IP address in the certificate SAN extension.
    Downloads: 22 This Week
    Last Update:
    See Project
  • 3
    eksctl

    eksctl

    The official CLI for Amazon EKS

    eksctl is a simple CLI tool for creating clusters on EKS - Amazon's newly managed Kubernetes service for EC2. It is written in Go, and uses CloudFormation. eksctl is available to install from official releases as described below. We recommend that you install eksctl from only the official GitHub releases. You may opt to use a third-party installer, but please be advised that AWS does not maintain nor support these methods of installation. Use them at your own discretion. You will need to have AWS API credentials configured. What works for AWS CLI or any other tools (kops, Terraform, etc.) should be sufficient. You can use ~/.aws/credentials file or environment variables.
    Downloads: 14 This Week
    Last Update:
    See Project
  • 4
    saml2aws

    saml2aws

    CLI tool which enables you to login and retrieve AWS credentials

    CLI tool which enables you to log in and retrieve AWS temporary credentials using ADFS or PingFederate Identity Providers. Aside from Okta, most of the providers in this project are using screen scraping to log users into SAML, this isn't ideal and hopefully, vendors make this easier in the future.
    Downloads: 12 This Week
    Last Update:
    See Project
  • Desktop and Mobile Device Management Software Icon
    Desktop and Mobile Device Management Software

    It's a modern take on desktop management that can be scaled as per organizational needs.

    Desktop Central is a unified endpoint management (UEM) solution that helps in managing servers, laptops, desktops, smartphones, and tablets from a central location.
    Learn More
  • 5
    NextDNS

    NextDNS

    NextDNS CLI client (DoH Proxy)

    NextDNS protects you from all kinds of security threats, blocks ads and trackers on websites and in apps and provides a safe and supervised Internet for kids, on all devices and on all networks. Determine your threat model and fine-tune your security strategy by enabling 10+ different types of protections. Use the most trusted threat intelligence feeds containing millions of malicious domains, all updated in real-time. Go beyond the domain, we analyze DNS questions and answers on-the-fly (in a matter of nanoseconds) in order to detect and block malicious behavior. With usually only a few hours between domain registration and the start of an attack, our threat intelligence system is built to catch malicious domains earlier than classic security solutions. Block ads and trackers on websites and in apps, including the most devious ones. Use the most popular ads & trackers blocklists, millions of domains all updated in real-time.
    Downloads: 8 This Week
    Last Update:
    See Project
  • 6
    Gum

    Gum

    A tool for glamorous shell scripts

    A tool for glamorous shell scripts. Leverage the power of Bubbles and Lip Gloss in your scripts and aliases without writing any Go code! Gum provides highly configurable, ready-to-use utilities to help you write useful shell scripts and dotfiles aliases with just a few lines of code. Let's build a simple script to help you write Conventional Commits for your dotfiles. Use a package manager. gum is designed to be embedded in scripts and supports all sorts of use cases. Components are configurable and customizable to fit your theme and use case. You can customize with --flags. See gum <command> --help for a full view of each command's customization and configuration options. You can also use ENVIRONMENT_VARIABLES to customize gum by default, this is useful to keep a consistent theme for all your gum commands.
    Downloads: 7 This Week
    Last Update:
    See Project
  • 7
    cli

    cli

    GitHub’s official command line tool

    Work with issues, pull requests, checks, releases and more. Call the GitHub API to script almost any action, and set a custom alias for any command. Connect to GitHub Enterprise Server in addition to GitHub. Allow contributors to easily notify you of changes they've pushed to a repository, with access limited to the contributors you specify. Easily merge changes you accept. Visual Studio Code is backed by high-performance VMs that start in seconds. Get updates on the GitHub activity you've subscribed to. Use the notifications inbox to customize, triage, and manage your updates. Review new code, see visual code changes, and confidently merge code changes with automated status checks. Assign code reviews to make it clear which team members should submit their review for a pull request. Automatically request reviews–or require approval, by selected contributors when changes are made to sections of code that they own.
    Downloads: 7 This Week
    Last Update:
    See Project
  • 8
    arduino-cli

    arduino-cli

    Arduino command line tool

    Arduino CLI is an all-in-one solution that provides Boards/Library Managers, sketch builders, board detection, uploader, and many other tools needed to use any Arduino compatible board and platform from the command line or machine interfaces. In addition to being a standalone tool, Arduino CLI is the heart of all official Arduino development software (Arduino IDE, Arduino Web Editor). The script requires sh, which is always available on Linux and macOS. sh is not available by default on Windows, though it is available as part of Git for Windows (Git Bash). If you don't have sh available, use the "Download" installation option. If you would like to use the arduino-cli command from any location, install Arduino CLI to a directory already in your PATH or add the Arduino CLI installation path to your PATH environment variable.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 9
    LXD

    LXD

    Powerful system container and virtual machine manager

    LXD is a next-generation system container and virtual machine manager. It offers a unified user experience around full Linux systems running inside containers or virtual machines. LXD is image based and provides images for a wide number of Linux distributions. It provides flexibility and scalability for various use cases, with support for different storage backends and network types and the option to install on hardware ranging from an individual laptop or cloud instance to a full server rack. When using LXD, you can manage your instances (containers and VMs) with a simple command line tool, directly through the REST API or by using third-party tools and integrations. LXD implements a single REST API for both local and remote access. The LXD project was founded and is currently led by Canonical Ltd with contributions from a range of other companies and individual contributors.
    Downloads: 5 This Week
    Last Update:
    See Project
  • Field Sales+ for MS Dynamics 365 and Salesforce Icon
    Field Sales+ for MS Dynamics 365 and Salesforce

    Maximize your sales performance on the go.

    Bring Dynamics 365 and Salesforce wherever you go with Resco’s solution. With powerful offline features and reliable data syncing, your team can access CRM data on mobile devices anytime, anywhere. This saves time, cuts errors, and speeds up customer visits.
    Learn More
  • 10
    bat

    bat

    Go implement CLI, cURL-like tool for humans

    bat is a Go-implemented, cURL-like command-line HTTP client designed to be “for humans,” emphasizing an expressive and intuitive syntax. It allows developers to test, debug, and generally interact with HTTP servers using concise commands that feel more like a small DSL than raw cURL flags. The tool supports a wide range of HTTP operations including custom methods, headers, JSON payloads, form submissions, file uploads, authentication and proxy configuration. Its README showcases simple “hello world” usage as well as more advanced scenarios, such as inspecting the exact request being sent via print options. Because it is written in Go and distributed as a single binary, it is easy to install and use across platforms, and it can even be run inside Docker containers for isolated workflows. The project is inspired by HTTPie but tailored to Go’s strengths, with an Apache-2.0 license that encourages both personal and commercial use.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 11
    Helmify

    Helmify

    Creates Helm chart from Kubernetes yaml

    CLI that creates Helm charts from Kubernetes manifests. Helmify reads a list of supported k8s objects from stdin and converts it to a helm chart. Designed to generate charts for k8s operators but not limited to. See examples of charts generated by Helmify.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 12
    Dbmate

    Dbmate

    A lightweight, framework-agnostic database migration tool

    Dbmate is a database migration tool, to keep your database schema in sync across multiple developers and your production servers. It is a standalone command line tool, which can be used with Go, Node.js, Python, Ruby, PHP, or any other language or framework you are using to write database-backed applications. This is especially helpful if you are writing many services in different languages, and want to maintain some sanity with consistent development tools. Supports MySQL, PostgreSQL, SQLite, and ClickHouse. Uses plain SQL for writing schema migrations. Migrations are timestamp-versioned, to avoid version number conflicts with multiple developers. Migrations are run atomically inside a transaction. Supports creating and dropping databases (handy in development/test). Supports saving a schema.sql file to easily diff schema changes in git. Database connection URL is defined using an environment variable (DATABASE_URL by default), or specified on the command line.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 13
    Hilbish

    Hilbish

    The Moon-powered shell! A comfy and extensible shell for Lua fans

    Hilbish is an extensible shell designed to be highly customizable. It is configured in Lua and provides a good range of features. It aims to be easy to use for anyone but powerful enough for those who need it. The motivation for choosing Lua was that it's simpler and better to use than an old shell script. It's fine for basic interactive shell uses, but that's the only place Hilbish has shell script; everything else is Lua and aims to be infinitely configurable. Hilbish is configured and scripted in the Lua programming language. This removes all the old, ugly things about Shell script and introduces everything good about Lua, including other languages (Fennel, Lua derivatives). Hilbish provides the user with proper menus for completions and history usage. Want to see your previous commands? Hit Ctrl-R. Hilbish offers a bunch of features to make your interactive shell experience rich. Things like syntax highlighting and hinting available via the Lua API.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 14
    Capslock

    Capslock

    Tool to remap Caps Lock key behavior on Windows systems

    Capslock is a command-line tool for analyzing the capabilities of Go packages to reveal what privileged operations their code and dependencies can perform. Rather than detecting vulnerabilities, Capslock focuses on identifying capabilities — permissions implied by calls to sensitive or privileged standard library functions, such as file system access, networking, or process control. By following transitive call graphs, it classifies which security-sensitive operations each package can reach, giving developers visibility into what their dependencies are capable of doing. This helps apply the Principle of Least Privilege to Go software, guiding audits, supply chain reviews, and trust assessments. Capslock aims to make security posture analysis more proactive by surfacing capability-based risk signals before malicious or overly powerful code is introduced into production.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 15
    Swagger 2.0

    Swagger 2.0

    Swagger 2.0 implementation for go

    This package contains a golang implementation of Swagger 2.0 (aka OpenAPI 2.0), it knows how to serialize and deserialize swagger specifications. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability. We created Swagger to help fulfill the promise of APIs. Swagger helps companies like Apigee, Getty Images, Intuit, LivingSocial, McKesson, Microsoft, Morningstar, and PayPal build the best possible services with RESTful APIs. Now in version 2.0, Swagger is more enabling than ever. And it's 100% open-source software. go-swagger brings to the go community a complete suite of fully-featured, high-performance, API components to work with a Swagger API, server, client, and data model.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 16
    JiraCLI

    JiraCLI

    Feature-rich interactive Jira command line

    JiraCLI is an interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent. This tool is not yet considered complete but has all the essential features required to improve your workflow with Jira. The tool started with the idea of making issue search and navigation as straightforward as possible. However, with the help of outstanding supporters like you, we evolved, and the tool now includes all necessary features like issue creation, cloning, linking, ticket transition, and much more. Note that some features might work slightly differently in cloud installation versus on-premise installation due to the nature of the data. Yet, we've attempted to make the experience as similar as possible. jira-cli is available as a downloadable packaged binary for Linux, macOS, and Windows from the releases page.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 17
    Massren

    Massren

    massren - easily rename multiple files using your text editor

    Massren is a command line tool that can be used to rename multiple files using your own text editor. Multiple-rename tools are usually difficult to use from the command line since any regular expression needs to be escaped, and each tool uses its own syntax and flavor of regex. The advantage of massren is that you are using the text editor you use every day, so can use all its features. The tool works by creating a file that contains the filenames of the target directory and opening this file in the text editor. You can then modify the filenames there directly. Once done, save the text file and the files will be renamed. Lines that are not changed will simply be ignored.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 18
    PingMe

    PingMe

    PingMe is a CLI which provides the ability to send messages or alerts

    PingMe is a personal project to satisfy my need to have alerts, most major platforms have integration to send alerts but it's not always useful, either you are stuck with one particular platform, or you have to do a lot of integrations. I needed a small utility that I could just call from my backup scripts, cron jobs, CI/CD pipelines, or from anywhere to send a message with particular information. And I can ship it everywhere with ease. Hence, the birth of PingMe. Everything is configurable via environment variables, and you can simply export the logs or messages to a variable that will be sent as a message, most of all this serves as a swiss army knife sort of tool that supports multiple platforms.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 19
    bashful

    bashful

    Use a yaml file to stitch together commands and bash snippits

    bashful is a command-line tool written in Go that allows you to define your build, automation or scripting workflow declaratively in YAML and have tasks executed in either series or parallel, with pretty progress output, logging, error handling, and orchestration instead of manually writing large bash scripts. The idea is that your bash automation should be “quiet and shy-like” rather than verbose and messy, so bashful provides a structured way to describe tasks (commands, downloads, nested operations) in a YAML file, and then run them with a nice terminal UI showing progress bars, logs, ETAs, etc. It supports features such as downloading scripts, bundling sets of commands and resources, tagging tasks, running subsets via tags, logging both stdout and stderr, and error-handling policies (e.g., which commands should halt execution on failure). The tool is cross-platform (supports Linux, macOS, Windows), installable via Go or via package managers, and licensed under MIT.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 20
    bee

    bee

    Bee is a tool for helping develop with beego app framework

    Bee is a command-line tool facilitating the development of a Beego-based application. Then you can add bee binary to PATH environment variable in your ~/.bashrc or ~/.bash_profile file. Bee provides a variety of commands which can be helpful at various stages of development. To display the current version of bee, beego and go installed on your machine. You can also change the output format using -o flag. Inspired by makefile / npm scripts. Run script allows you to run arbitrary commands using Bee. Custom commands are provided from the "scripts" object inside bee.json or Beefile. Bee also comes with a source code generator which speeds up the development.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 21
    go-wkhtmltopdf

    go-wkhtmltopdf

    Golang commandline wrapper for wkhtmltopdf

    We needed a way to generate PDF documents from Go. These vary from invoices with highly customizable layouts to reports with tables, graphs and images. In our opinion, the best way to do this was by using HTML/CSS templates as a source for our PDFs. Using CSS print media types and millimeters instead of pixel units we can generate very accurate PDF documents using wkhtmltopdf. It takes care of setting the correct order of options as these can become very long with multiple pages where you have page and TOC options for each page. It makes usage in server-type applications easier, every instance (PDF process) has its own output buffer which contains the PDF output and you can feed one input document from an io.Reader (using stdin in wkhtmltopdf). You can combine any number of external HTML documents (HTTP(S) links) with at most one HTML document from stdin and set options for each input document.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 22
    grpc_health_probe

    grpc_health_probe

    A command-line tool to perform health-checks for gRPC applications

    A command-line tool to perform health checks for gRPC applications in Kubernetes and elsewhere.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 23
    jackal

    jackal

    Instant messaging server for the Extensible Messaging

    jackal is a free, open-source, high-performance XMPP server that aims to be known for its stability, simple configuration and low resource consumption. Customizable, enforced SSL/TLS. Stream compression (zlib), database connectivity for storing offline messages and user settings (PostgreSQL 9.5+, BoltDB). Caching (Redis 6.2+), clustering capabilities (etcd 3.4+) Expose Prometheus metrics, cross-platform (OS X, Linux). To make it easy to install jackal via Helm in Kubernetes a chart has been included into this repository. After completing database setup and starting jackal service you'll have to register a new user to be able to login. To do so, you can use jackal command-line tool to create a new user proving name and password.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 24
    yamlfmt

    yamlfmt

    An extensible command line tool or library to format yaml files

    yamlfmt is an extensible formatter that makes YAML files consistent and easy to read across large repositories. It focuses on practical concerns unique to YAML—multi-document streams, anchors and aliases, comments, and block scalars—so a reformat doesn’t destroy semantics or helpful annotations. The tool ships as a single, distributable binary and can also be used as a library, making it simple to drop into CI and editor workflows. Configuration is file-based, allowing teams to pin indentation, line wrapping, and other house-style choices repo-wide. By normalizing structure while preserving meaning, it reduces diff noise and merge friction in configs, Kubernetes manifests, and automation playbooks. The project is intentionally extensible, so organizations can add custom formatters or rules without forking.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 25
    AKS Engine

    AKS Engine

    AKS Engine units of Kubernetes on Azure!

    AKS Engine is an ARM template-driven way to provision a self-managed Kubernetes cluster on Azure. By leveraging ARM (Azure Resource Manager), AKS Engine helps you create, destroy and maintain clusters provisioned with basic IaaS resources in Azure. AKS Engine has limited support for ongoing operational capabilities such as scaling, in-place upgrades, and extensions. The Cluster API Provider for Azure a.k.a. CAPZ provides more complete operational capabilities. AKS Engine remains the tool for managing Kubernetes clusters on Azure Stack Hub as CAPZ does not yet work there. Read the CLI Overview for a list of features provided by the aks-engine command-line tool. The Quickstart Guide describes how to download the latest release of aks-engine for your environment, and demonstrates how to use aks-engine to create a Kubernetes cluster on Azure that you will manage and customize.
    Downloads: 0 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • Next