Free · Self-hosted · Source-available

Self-hosted test management
that's actually yours.

TTGO is a modern, self-hosted test management platform — rich test cases, run execution, analytics, AI test generation and failure triage, and a first-class CLI, all running as a single Go binary against one SQLite file. Own your data, automate everything.

TTGO test library — hierarchical folder tree, a filterable test grid and categories
🏠

Self-hosted — own your data

Runs entirely on your infrastructure as a single Go binary and one SQLite file. Source-available under PolyForm Shield — no per-seat SaaS bills, nothing leaving your network.

🤖

AI test generation

Draft test cases from requirements using your own LLM provider (bring your own key). A review-and-approve flow means nothing is saved until you accept it.

⌨️

CLI & agent automation

A first-class ttgo CLI drives tests, runs and analytics from the terminal or CI. A bundled Claude Code skill lets an agent operate TTGO in plain English — even read your app's code to draft test cases — and slot it into your automation loop.

⚡

Real-time collaboration

WebSocket-powered live sync keeps every open tab and teammate up to date as runs are executed and test cases change.

A complete QA workflow

Everything teams expect from commercial test management — without the per-seat bill or the data leaving your network.

Rich test cases

TipTap rich-text descriptions, ordered steps with expected results, and full version history with a diff view. Tabs for runs, defects and linked requirements keep everything in one place.

TTGO test case detail — rich-text description, ordered steps and version history

Run execution

Snapshot-based runs with per-result pass/fail, defect classification (product / automation / system), defect links, durations and comments. Group results live by status, AI verdict or error signature, and let AI triage the failures for you.

TTGO run execution — per-result pass/fail, defect classification and durations

Analytics

Pass-rate trends, flaky-test detection, slowest tests, component health and side-by-side run comparison across any date range — so you know where quality is actually moving.

TTGO analytics dashboard — pass-rate trends and flaky-test detection

Requirements & traceability

A coverage-at-a-glance matrix links requirements to test cases and surfaces the gaps. Import requirements from Jira or Confluence and keep traceability honest.

TTGO traceability matrix — requirements linked to test cases with coverage gaps

Native defect tracking

Log lightweight defects with severity, status and an owner right where tests fail, link them to results, and work them as a triage queue on a dedicated Defects page in the Quality workspace: tiles for what needs triage, filters and sorting, bulk assign and close, and a one-click retest run built from the tests a defect affects — with an optional reference out to Jira or any external tracker.

TTGO defects — a triage queue with owners, severity, age and bulk actions

AI failure triage

Every failing result gets a verdict — product bug, flaky test, environment, test data or infrastructure — and a defect type to accept in one click. With TypeSafe.ai, a calibrated decision model makes the call in well under a second, with a real confidence score; your own LLM writes the explanation, or steps in when it is unsure.

Failures that share a cause are merged even when the wording differs, repeats and known defects are recognized, prompt-injection attempts are flagged, and secrets are redacted before anything is sent. Once its measured accuracy on your own triage clears the bar, it can label new failures for you. TypeSafe.ai also structures messy imports, reviews AI drafts, assists with defects and re-ranks search.

TTGO AI failure triage — a TypeSafe.ai verdict with confidence, 'Seen before' and known-defect signals, summary and next action

AI test generation

Pick a requirement for context, describe what you want, and let your configured model draft test cases for review. Nothing is saved until you approve it — your key, your data.

TTGO AI test generation studio — draft test cases from a requirement

Built for automation & AI agents

TTGO is API-first: a documented REST API, a first-class CLI, and a bundled agent skill let you wire it into CI pipelines, scripts, or an autonomous AI-agent loop — one that can even read your app's code and write the test cases for you.

🔌

Rich REST API

Every test case, run, result and requirement is scriptable over a documented REST API (Swagger) with bearer-token auth — automate anything the UI can do.

⌨️

First-class CLI

The ttgo CLI drives tests, runs and analytics straight from your terminal or CI pipeline — no browser required.

🤖

Skill for AI agents

Ships with a Claude Code skill so an agent can operate TTGO in plain English and drop into your loop — a lightweight alternative to an MCP server, with no separate integration to build or run. It's just Markdown in your repo; tell your agent to extend it for your own workflows.

# point your agent at your own app — it reads the code and writes the cases
> "Analyze the checkout flow in frontend/src and write test cases for it in TTGO"

# then let it close the loop after every CI run
> "After the nightly run, open a defect for each new failure and draft test
>  cases for the requirements that dropped below full coverage"

TTGO vs TestRail, Xray & qTest

How TTGO compares to popular commercial and self-hosted test management tools — TestRail, Xray, qTest, Kiwi TCMS and Qase.

Capability TTGO TestRail Xray qTest Kiwi TCMS Qase
Self-hosted / on-prem✓~~✓✓~
Source-available / open source✓✕✕✕✓✕
Free to self-host (no per-seat license)✓✕✕✕✓✕
Built-in AI test generation✓✓✓✓✕✓
Built-in AI failure triage✓✕✕~✕~
First-class CLI✓✓✕✕~✓
REST API✓✓✓✓~✓
Webhooks / push notifications✓✓~✓~~
Requirements & traceability matrix✓✓✓✓~✓
Native Jira integration✓✓✓✓✓✓

✓ yes  ·  ~ partial, paid-tier-only or caveated  ·  ✕ no

Competitor capabilities are summarized from public documentation as of 2026 and change frequently — verify current details with each vendor.

Built on a boring, reliable stack

One Go binary, one SQLite file, a React front end. Easy to run, easy to trust.

  • Go 1.25
  • GORM
  • SQLite
  • net/http + routegroup
  • Gorilla WebSocket
  • React 19.2
  • Vite
  • TipTap
  • Recharts
  • @dnd-kit
  • Cobra CLI
  • Docker

Measured, not promised

Every number below comes from the k6 load-test suite that ships in the repo, measured against a single instance — one Go binary, one SQLite file — on an ordinary laptop (M1 Pro), so they're conservative. A committed regression gate keeps them honest on every change.

🚀

~500 results/s ingest

Around 55 CI pipelines can report simultaneously before add-result p95 crosses 500 ms — and overload degrades gracefully: latency rises, errors stay near zero, recovery is immediate.

📊

Dashboards unfazed by CI

Read latencies are statistically unchanged while CI ingests at half the write ceiling — SQLite's concurrent-read promise, verified empirically, not assumed.

🔍

A million results, still fast

Full-text search stays at ≤16 ms and the runs list serves a page in ~61 ms p95 with 1M results in the database.

🔔

1,000 live viewers

A thousand concurrent WebSocket clients receive result updates with ~26 ms p95 broadcast lag.

Methodology, caveats, and how to reproduce every number: perf/README.md.

Free to use

TTGO is source-available under PolyForm Shield. For almost everyone, that means one thing — it's free: no per-seat bills, no time limits, no catch.

Free for

  • Running it internally — your team, your company, your infrastructure
  • Personal projects, side projects, and evaluation
  • Embedding it inside your own product, as long as that product doesn't compete with TTGO

The only catch

  • Re-offering TTGO itself as a hosted service (SaaS)
  • White-labeling or reselling it as a standalone product
  • Using it to build a competing test-management tool

In plain terms: build on it, run it, ship your product on it — just don't repackage TTGO into a competitor. Full terms are in the LICENSE (PolyForm Shield 1.0.0).

Run it yourself in minutes

Clone the repo, drop in your admin credentials, and bring it up with Docker. It runs comfortably on a 1-core / 512 MB VPS — measured at ~30 MB RAM idle and under 200 MB at full load, with the database growing about 2 GB per million results.

# clone & configure
git clone https://github.com/runetsk/ttgo.git && cd ttgo
cp .env.example .env   # set ADMIN_EMAIL and ADMIN_PASSWORD

# build & start (served on port 80)
docker compose up -d --build