Go CLI

Open-source Go projects categorized as CLI

Top 23 Go CLI Projects

  • fzf

    :cherry_blossom: A command-line fuzzy finder

  • Project mention: Ask HN: Any tool for managing large and variable command lines? | news.ycombinator.com | 2024-04-25

    In addition, I think bash's `operate-and-get-next` can be very helpful. When you go back through your shell history, you can hit Ctrl+o instead of enter and it will execute the command then put the next one in your history on the command line, and keep track of where you are in your history. This way, you can rerun a bunch of commands by going to the first one and Ctrl+o till you are done. And you can edit those commands and hit Ctrl+o and still go to the next previously run command.

    Note: fzf's history search feature breaks this. https://github.com/junegunn/fzf/issues/2399

  • lazygit

    simple terminal UI for git commands

  • Project mention: Why Don't I Like Git More? | news.ycombinator.com | 2024-04-05

    I've started to en ntegrate lazygit into my workflow.

    It's quite easy to work with and I use git in a more powerfull way. My main problem is finding the way in all hotkeys.

    https://github.com/jesseduffield/lazygit?tab=readme-ov-file#...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • dive

    A tool for exploring each layer in a docker image

  • Project mention: Show HN: Docker-phobia: Analyze Docker image size with a treemap | news.ycombinator.com | 2024-04-28

    Cool, gonna try this soon. Would be great to use in combination with Dive (https://github.com/wagoodman/dive)

  • cobra

    A Commander for modern Go CLI interactions

  • Project mention: The power of the CLI with Golang and Cobra CLI | dev.to | 2024-04-06

    We can use the flag with --date or -date, Go already does the automatic check. We can make our entire boilerplate with this approach, but let's make it a little easier and use the Cobra CLI package.

  • cli

    GitHub’s official command line tool

  • Project mention: The power of the CLI with Golang and Cobra CLI | dev.to | 2024-04-06

    This package is widely used for powerful CLI builds, it is used for example for Kubernetes CLI and GitHub CLI, in addition to offering some cool features such as automatic completion of shell, automatic recognition of flags (the tags) , and you can use -h or -help for example, among other facilities.

  • bubbletea

    A powerful little TUI framework πŸ—

  • Project mention: Harlequin: SQL IDE for Your Terminal | news.ycombinator.com | 2024-01-05
  • urfave/cli

    A simple, fast, and fun package for building command line apps in Go (by urfave)

  • Project mention: Best practices for distributing and updating a Go CLI on Linux? | /r/golang | 2023-05-18

    Can you use a framework like urfavecli https://github.com/urfave/cli? This will auto-update every time it detects a new version from your CLI's GitHub repository

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • fx

    Terminal JSON viewer & processor

  • Project mention: Bash/Zsh autocomplete for JSON fields | news.ycombinator.com | 2024-03-16
  • glow

    Render markdown on the CLI, with pizzazz! πŸ’…πŸ»

  • Project mention: Essential Command Line Tools for Developers | dev.to | 2024-01-15

    To get started, install Mods and check out some of the examples below. Since Mods has built-in Markdown formatting, you may also want to grab Glow to give the output some pizzazz.

  • vhs

    Your CLI home video recorder πŸ“Ό

  • Project mention: How do people create those sleek looking demos for startups? | news.ycombinator.com | 2024-05-01

    I'm a huge fan of charmbracelet's vhs:

    https://github.com/charmbracelet/vhs

    I have a gitlab CI job to update my demo .gif's every time I update my application; always ensures that things are up-to-date and provides gif/video recording that I've ran specific commands (perfect for auditors!)

  • duf

    Disk Usage/Free Utility - a better 'df' alternative

  • Project mention: Go: What We Got Right, What We Got Wrong | news.ycombinator.com | 2024-01-04

    Not sure these are really popular, but I cannot resist advertising a few utilities written in Go that I regularly use in my daily workflow:

    - gdu: a NCDU clone, much faster on SSD mounts [1]

    - duf: a `df` clone with a nicer interface [2]

    - massren: a `vidir` clone (simpler to use but with fewer options) [3]

    - gotop: a `top` clone [4]

    - micro: a nice TUI editor [5]

    Building this kind of tools in Go makes sense, as the executables are statically compiled and are thus easy to install on remote servers.

    [1]: https://github.com/dundee/gdu

    [2]: https://github.com/muesli/duf

    [3]: https://github.com/laurent22/massren

    [4]: https://github.com/xxxserxxx/gotop

    [5]: https://github.com/zyedidia/micro

  • yq

    yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor

  • Project mention: Show HN: Flatito, grep for YAML and JSON files | news.ycombinator.com | 2024-03-25

    What I often use to just get the full key paths is yq (https://github.com/mikefarah/yq), piping into grep when necessary

      yq -o=props 

  • wuzz

    Interactive cli tool for HTTP inspection

  • qrcp

    :zap: Transfer files over wifi from your computer to your mobile device by scanning a QR code without leaving the terminal.

  • fq

    jq for binary formats - tool, language and decoders for working with binary and text formats

  • Project mention: How to Use JSON Path | news.ycombinator.com | 2024-05-03

    I see, thanks for replying and no worries! yeap some of the "self-describing" formats like msgpack, cbor etc will because of how fq works have to be decoded into something more of a meta-msgpack etc.

    About blobs, if you want to change how (possibly large) binaries are represented as JSON you can use the bits_format options, see https://github.com/wader/fq/blob/master/doc/usage.md#options, so fq -o bits_format=md5 torepr ...

    I can highly recommend to learn jq, it's what makes fq really useful, and as a bonus you will learn jq in general! :)

  • katana

    A next-generation crawling and spidering framework.

  • aws-vault

    A vault for securely storing and accessing AWS credentials in development environments

  • Project mention: Keep your AWS CLI config fresh with Cog | dev.to | 2024-03-28

    Undying fondness for aws-vault to securely cache my session credentials.

  • terragrunt

    Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.

  • Project mention: Deploying a Containerized App to ECS Fargate Using a Private ECR Repo & Terragrunt | dev.to | 2024-04-22

    name: Configure on: push: branches: - main pull_request: branches: - main workflow_dispatch: inputs: destroy: description: 'Run Terragrunt destroy command' required: true default: 'false' type: choice options: - true - false jobs: apply: if: ${{ !inputs.destroy || inputs.destroy == 'false' }} runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Setup SSH uses: webfactory/[email protected] with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Setup Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: 1.5.5 terraform_wrapper: false - name: Setup Terragrunt run: | curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/v0.48.1/terragrunt_linux_amd64" chmod +x terragrunt_linux_amd64 sudo mv terragrunt_linux_amd64 /usr/local/bin/terragrunt terragrunt -v - name: Apply Terraform changes run: | cd dev terragrunt run-all apply -auto-approve --terragrunt-non-interactive -var AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -var AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -var AWS_REGION=$AWS_DEFAULT_REGION env: AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }} destroy: if: ${{ inputs.destroy == 'true' }} runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Setup SSH uses: webfactory/[email protected] with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Setup Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: 1.5.5 terraform_wrapper: false - name: Setup Terragrunt run: | curl -LO "https://github.com/gruntwork-io/terragrunt/releases/download/v0.48.1/terragrunt_linux_amd64" chmod +x terragrunt_linux_amd64 sudo mv terragrunt_linux_amd64 /usr/local/bin/terragrunt terragrunt -v - name: Destroy Terraform changes run: | cd dev terragrunt run-all destroy -auto-approve --terragrunt-non-interactive -var AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -var AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -var AWS_REGION=$AWS_DEFAULT_REGION env: AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ vars.AWS_DEFAULT_REGION }}

  • lipgloss

    Style definitions for nice terminal layouts πŸ‘„

  • Project mention: When creating console based applications how do you replicate the following realtime updates: | /r/golang | 2023-12-07

    I recommend looking at the charm libraries. Lip gloss https://github.com/charmbracelet/lipgloss can provide the styling and bubble tea can handle the screen updates and framework https://github.com/charmbracelet/bubbletea there is a premade progress bar component in bubbles library. https://github.com/charmbracelet/bubbles

  • reviewdog

    🐢 Automated code review tool integrated with any code analysis tools regardless of programming language

  • Project mention: Code reviews and Suggestions from SARIF report | dev.to | 2023-05-16

    I build a general converter from SARIF to Reviewdog Diagnostic Format (RDFormat), then use Reviewdog to give suggested code changes as well as the context of the changes for PR reviewing.

  • httpx

    httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library. (by projectdiscovery)

  • Project mention: HTTP toolkit that allows running multiple probes | news.ycombinator.com | 2024-04-02
  • jid

    json incremental digger

  • drive

    Google Drive client for the commandline

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Go CLI related posts

Index

What are some of the best open-source CLI projects in Go? This list will help you:

Project Stars
1 fzf 59,920
2 lazygit 45,761
3 dive 43,709
4 cobra 36,077
5 cli 35,449
6 bubbletea 24,316
7 urfave/cli 21,662
8 fx 18,509
9 glow 14,825
10 vhs 13,910
11 duf 12,301
12 yq 10,840
13 wuzz 10,480
14 qrcp 9,776
15 fq 9,402
16 katana 8,694
17 aws-vault 8,153
18 terragrunt 7,641
19 lipgloss 7,367
20 reviewdog 7,385
21 httpx 6,837
22 jid 6,803
23 drive 6,630

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com