This guide covers the Go-specific setup: building the CLI and running the tutorial subcommands. For installing the Copilot CLI and authenticating with GitHub — shared by every language edition — follow the common Getting Started guide first.
| Requirement | Minimum Version | Purpose |
|---|---|---|
| Go | 1.26+ | Runtime and build toolchain |
| GNU Make | latest | Build targets |
Node.js (npm) or GitHub CLI (gh) |
latest | Installing the Copilot CLI |
| GitHub Copilot subscription | — | Required for API access |
Verify your Go toolchain:
go version # go1.26 or laterThe tutorial subcommands are part of the Go CLI. Build it with the project's Makefile:
cd src/go
# Build the CLI into ./dist/
make build
# Show the available tutorial subcommands
./dist/template-github-copilot-go tutorial --helpThese subcommands do not require a separately running Copilot CLI server — the SDK starts one for you on demand via stdio. Use --cli-url host:port only if you already have a Copilot CLI running in TCP mode (see CLI Server Mode).
cd src/go
./dist/template-github-copilot-go tutorial chat-bot --prompt "What is GitHub Copilot?"Expected output (streaming):
GitHub Copilot is an AI-powered coding assistant developed by GitHub and OpenAI...
The root command exposes a global --verbose/-v flag (inherited by every subcommand) that lowers the log level to DEBUG, surfacing diagnostic logs such as the Copilot client connection mode and session lifecycle:
./dist/template-github-copilot-go tutorial chat-bot --verbose --prompt "Hello!"The tutorial command also exposes persistent OpenTelemetry flags inherited by
all tutorial subcommands. They default to the matching environment variables,
and telemetry remains disabled when no endpoint is provided:
| Flag | Environment variable | Purpose |
|---|---|---|
--otel-endpoint |
OTEL_EXPORTER_OTLP_ENDPOINT |
OTLP HTTP endpoint, for example http://localhost:4318 |
--otel-capture-content |
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT |
Optional true/false to capture prompt and response content in spans |
--otel-bsp-schedule-delay |
OTEL_BSP_SCHEDULE_DELAY |
Optional span batch flush interval in milliseconds |
Example:
./dist/template-github-copilot-go tutorial chat-bot \
--otel-endpoint http://localhost:4318 \
--otel-bsp-schedule-delay 500 \
--prompt "Hello!"src/go/cmd/tutorial/
├── README.md # Subcommand index (points to these docs)
├── tutorial.go # `tutorial` parent command group
└── chatbot.go # Tutorial 1: CLI chatbot (chat-bot subcommand)
The Go CLI relies on the common Copilot variables (COPILOT_GITHUB_TOKEN,
COPILOT_CLI_PATH, COPILOT_CLI_URL) documented in the common
Getting Started. OpenTelemetry can additionally be
configured with the standard OTEL_* variables listed above, or with the
equivalent tutorial flags.
Now that your environment is ready, work through the tutorials:
- CLI Chatbot — build your first Copilot-powered Go program