v0.1.0¶
Release Date: 2026-06-07
Overview¶
Initial release of aha-go, a Go SDK for the Aha.io product management platform.
Highlights¶
- Go SDK for Aha.io - Complete API client with support for products, features, ideas, releases, goals, initiatives, epics, requirements, comments, and users
- Strategic Canvas Support - Create and export Business Model Canvas, Lean Canvas, and Opportunity Canvas with SVG, D2, and Mermaid output formats
- CLI Tool - Full-featured command-line interface for interacting with Aha.io
- Browser Automation - go-rod based automation for operations not available via API
- Diagram Rendering - Generate visual diagrams from Aha.io data
Installation¶
Or install the CLI:
What's Included¶
Core SDK¶
- Configuration management with environment variable support (
AHA_SUBDOMAIN,AHA_API_KEY) - Functional options pattern for client configuration
- Comprehensive error handling with typed errors (
IsNotFound,IsUnauthorized, etc.) - Pagination support for list operations
Entity Types¶
| Entity | List | Get | Create | Update | Delete |
|---|---|---|---|---|---|
| Products | ✓ | ✓ | - | - | - |
| Features | ✓ | ✓ | ✓ | ✓ | - |
| Ideas | ✓ | ✓ | - | - | - |
| Releases | ✓ | ✓ | - | - | - |
| Goals | ✓ | ✓ | - | - | - |
| Initiatives | ✓ | ✓ | - | - | - |
| Epics | ✓ | ✓ | - | - | - |
| Requirements | ✓ | ✓ | ✓ | ✓ | ✓ |
| Comments | ✓ | ✓ | ✓ | - | ✓ |
| Users | ✓ | ✓ | - | - | - |
Packages¶
| Package | Description |
|---|---|
aha |
Core client and entity types |
canvas |
Strategic canvas creation and export |
browser |
Browser automation with go-rod |
render |
Diagram generation (SVG, D2, Mermaid) |
CLI Commands¶
aha products list # List all products
aha features list PRODUCT # List features for a product
aha features get FEAT-123 # Get feature details
aha canvas create # Create strategic canvas
aha canvas export # Export canvas to SVG/D2/Mermaid
Quick Start¶
package main
import (
"context"
"fmt"
"log"
aha "github.com/grokify/aha-go"
)
func main() {
client, err := aha.NewClient(
aha.WithSubdomain("mycompany"),
aha.WithAPIKey("your-api-key"),
)
if err != nil {
log.Fatal(err)
}
ctx := context.Background()
products, err := client.ListProducts(ctx)
if err != nil {
log.Fatal(err)
}
for _, p := range products {
fmt.Printf("%s: %s\n", p.ReferencePrefix, p.Name)
}
}