encore-go-service

Organize Go packages with API endpoints into distinct Encore services.

26|5|Updated Jan 8, 2026
One-click install
npx skills add https://github.com/encoredev/skills --skill encore-go-service
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: encore-go-service
Source: https://github.com/encoredev/skills/tree/main/encore/go-service
Command: npx skills add https://github.com/encoredev/skills --skill encore-go-service

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Go projects often struggle with unclear boundaries between components when APIs are spread across packages. This Skill teaches you to treat every package that defines an API endpoint as a distinct service, clarifying interfaces and RPC boundaries within Encore Go projects.

Core Features & Use Cases

  • Auto-detects services by the presence of //encore:api endpoints in a package.
  • Supports single-service, multi-service, and system-based Go architectures with clean service boundaries.
  • Enables service-to-service calls and independent deployment patterns while preserving type-safe APIs.

Quick Start

Create a Go package with at least one API endpoint and declare it as a service using the Encore Go pattern.

Frequently Asked Questions about encore-go-service

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Go microservices project with Encore?

To structure a Go microservices project with Encore, define each service as a distinct package containing an API endpoint marked with the //encore:api annotation. This clarifies RPC boundaries and organizes single-service or multi-service architectures.

What is the best way to define service boundaries in a Go API?

The best way to define service boundaries in a Go API is to treat every package with a package-level API endpoint as an independent service. Encore uses the //encore:api marker to auto-detect these boundaries and enable type-safe service-to-service calls.

How does Encore handle service-to-service calls in Go?

Encore handles service-to-service calls in Go by preserving type-safe APIs between distinct packages. When an API endpoint is defined using the //encore:api marker, Encore enables RPC-style communication and independent deployment patterns across those services.

Can I use Encore to organize a single-service Go architecture?

Yes, you can use Encore to organize a single-service Go architecture. The pattern applies to single-service, multi-service, and system-based architectures by detecting packages with API endpoints and turning them into clearly defined services.

Why should I separate Go packages into distinct Encore services?

You should separate Go packages into distinct Encore services to solve the problem of unclear component boundaries when APIs are spread across packages. This approach clarifies interfaces, establishes clean RPC boundaries, and supports independent deployment patterns.