5-Minute Quickstart
Follow this guide to spin up a local Triage instance and capture your first Go crash with AI diagnostics.
Prerequisites
Section titled “Prerequisites”- Go 1.26+
- Docker (or run the standalone Go binary)
- An API key for your preferred AI provider (Google Gemini, OpenAI, Anthropic Claude) or a local instance (Ollama, vLLM)
1. Start Triage
Section titled “1. Start Triage”Option A: Run Official Docker Container (Preferred & Recommended)
Section titled “Option A: Run Official Docker Container (Preferred & Recommended)”Run the official single-container Triage image (which includes the server, embedded SQLite database, and React Studio Dashboard):
docker run -d \ --name triage \ -p 8080:8080 \ -v triage_data:/data \ ghcr.io/algotyrnt/triage:latestOption B: Build and Run Standalone Binary (Alternative)
Section titled “Option B: Build and Run Standalone Binary (Alternative)”git clone https://github.com/algotyrnt/triage.gitcd triagemake build./bin/triage2. Run the Setup Wizard
Section titled “2. Run the Setup Wizard”Open http://localhost:8080 in your browser. The initial setup wizard will guide you through:
- GitHub App Manifest Creation (One-click app registration).
- Repository Installation (Grant access to your Go repositories).
- OAuth Linking (Configure GitHub login).
- AI Model Configuration (Select Google Gemini, OpenAI, Claude, or local Ollama).
- Verification (Engine self-test).
Once configured, your project API key is displayed once — copy it immediately and save it to your .env file or secrets manager. If lost, revoke the key and generate a new one from the dashboard.
3. Add Triage SDK to Your Go App
Section titled “3. Add Triage SDK to Your Go App”Install the official Go SDK:
go get github.com/algotyrnt/triage/sdk/goWrap your HTTP handler:
package main
import ( "net/http" triage "github.com/algotyrnt/triage/sdk/go")
func main() { mux := http.NewServeMux()
// An example endpoint that panics: mux.HandleFunc("/crash", func(w http.ResponseWriter, r *http.Request) { var ptr *int *ptr = 42 // Nil pointer dereference panic! })
// Wrap mux with Triage middleware: handler := triage.Middleware( "your_sample_api_key", "http://localhost:8080/api/v1/telemetry", )(mux)
http.ListenAndServe(":8081", handler)}4. Trigger a Panic & View Diagnostics
Section titled “4. Trigger a Panic & View Diagnostics”Run your Go application (using -trimpath to generate production-accurate relative stack traces):
# Run test-services/simple-service on :8081 with your API keycd test-services/simple-serviceTRIAGE_API_KEY=your_api_key go run -trimpath .In another terminal, trigger the crash:
curl http://localhost:8081/crashYour HTTP client will receive a generic 500 Internal Server Error without any sensitive internals exposed.
Now switch back to your Studio Dashboard at http://localhost:8080:
- You will see a new CRITICAL incident under your active project.
- The isolated
*ast.FuncDeclcode block will be highlighted along with resolved cross-file structs and constructors. - AI diagnostics will display the exact root cause and suggested drop-in git patch.
- Click Generate Fix (PR) to automatically create a branch and open a verified Pull Request on GitHub.