Skip to content

Text Input

The Text component allows you to prompt users for text input in an interactive way.

Basic Usage

go
package main

import (
	"fmt"

	"github.com/go-zoox/cli/interactive"
)

func main() {
	name, err := interactive.Text("What is your name?", &interactive.TextOptions{
		Default:  "Zero",
		Required: true,
	})
	if err != nil {
		panic(err)
	}

	fmt.Println("Your name is:", name)
}

Options

TextOptions

FieldTypeDescription
DefaultstringDefault value if user presses Enter without typing
RequiredboolWhether the input is required (default: false)
PlaceholderstringPlaceholder text shown in the input field

Examples

With Default Value

go
name, err := interactive.Text("What is your name?", &interactive.TextOptions{
	Default: "Anonymous",
})

Required Input

go
email, err := interactive.Text("What is your email?", &interactive.TextOptions{
	Required: true,
})

With Placeholder

go
username, err := interactive.Text("Enter username:", &interactive.TextOptions{
	Placeholder: "username",
	Required:    true,
})

Complete Example

go
package main

import (
	"fmt"

	"github.com/go-zoox/cli/interactive"
)

func main() {
	// Required input with default
	name, err := interactive.Text("What is your name?", &interactive.TextOptions{
		Default:  "Guest",
		Required: true,
	})
	if err != nil {
		panic(err)
	}

	// Optional input
	email, err := interactive.Text("What is your email? (optional)", &interactive.TextOptions{
		Placeholder: "user@example.com",
	})
	if err != nil {
		panic(err)
	}

	fmt.Printf("Name: %s\n", name)
	if email != "" {
		fmt.Printf("Email: %s\n", email)
	}
}

Released under the MIT License.