Go (Golang) is a fantastic language for creating command-line tools due to its efficiency, simplicity, and strong support for standard I/O operations. In this guide, we will explore the process of building a basic command-line tool in Go, including handling command-line arguments, input/output, and provide sample Go code to get you started.

Setting Up Your Development Environment

Before we start, ensure you have Go installed and your development environment set up. You can install Go by downloading it from the official website:

Additionally, you might want to install a code editor such as Visual Studio Code for a smoother development experience.

Building a Basic Command-Line Tool

Let's create a simple Go program that functions as a command-line tool to greet the user. The tool will accept a name as a command-line argument and print a greeting message.

Start by creating a new directory for your project and a Go file named "main.go" with the following code:

package main
import (
func main() {
// Check if the user provided a name
if len(os.Args) != 2 {
fmt.Println("Usage: hello [name]")
// Extract the name from the command-line argument
name := os.Args[1]
// Print the greeting message
fmt.Printf("Hello, %s!\n", name)

This code defines a basic command-line tool that expects a single argument (the name) and prints a greeting message. If no argument is provided, it displays a usage message.

Building and Running the Command-Line Tool

To build and run your command-line tool, open a terminal in your project directory and execute the following commands:

go build
./your-command-line-tool-name [name]

Replace "your-command-line-tool-name" with the name of your tool and provide a name as an argument. For example:

./hello John

This will produce the output:

Hello, John!


Creating a simple command-line tool in Go is a great way to get started with Go programming. You can extend your tool by adding more features, handling more complex command-line arguments, or performing various tasks on the command line.

Further Resources

To continue exploring Go command-line tool development, consider these resources: