mothermachine

Browse / Scheduling and staffing

Traggo

Tag-based self-hosted time tracking in Go, driven by the same GraphQL API its UI uses.

AdaptableOperable Business appWeb app Deterministic GoTypeScript API License: GPL-3.0

Traggo records tagged time spans instead of tasks, with dashboards, list and calendar views, multiple themes and simple user management. It is a single Go binary with SQLite, configured through TRAGGO_* environment variables or server.ini. The Builder's schema.graphql defines mutations and queries for time spans, tags, stats, dashboards, users and device tokens; there is no separate API guide.

Use it when
  • I want the simplest possible self-hosted tracker where categories are tags I invent, not a project tree
  • I want my agent to start and stop timers and pull weekly totals by tag over GraphQL
Gotchas
  • GPL-3.0 copyleft
  • SQLite is the only database dialect
  • No clients, projects, rates, invoices or exports: it tracks time and shows statistics
  • The GraphQL API is documented only by schema.graphql; there is no agent guide and no OpenAPI

Last activity Jul 31, 2026. Fit: adaptable 2, operable 2.

Editions

Free · Free open source

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only13 things to edit

Set TRAGGO_PORT, TRAGGO_DEFAULT_USER_NAME and TRAGGO_DEFAULT_USER_PASS for first login, TRAGGO_DATABASE_CONNECTION for the SQLite path, and TRAGGO_LOG_LEVEL and TRAGGO_PASS_STRENGTH as needed, in .env, .env.local, ~/.config/traggo/server.ini or /etc/traggo/server.ini. Tags, dashboards and users are created in the UI or through GraphQL. The tag model is the customization: define a project tag, a type tag, a client tag and the reports follow.

Env vars
TRAGGO_PORT TRAGGO_DEFAULT_USER_NAME TRAGGO_DEFAULT_USER_PASS TRAGGO_PASS_STRENGTH TRAGGO_LOG_LEVEL TRAGGO_DATABASE_DIALECT TRAGGO_DATABASE_CONNECTION
Config files
.env.sample .env .env.local ~/.config/traggo/server.ini /etc/traggo/server.ini docker-compose.yml
Prompt files
none
Accounts you need
none

Source

Operable: what an agent can drive

Interface

OfficialAPIpublished by the builderlocal

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
github.com/traggo/server/blob/master/schema.graphql

Reach

Partial coverage. 8 of 9 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Start, stop and edit time spansReachableschema.graphql: createTimeSpan, updateTimeSpan, stopTimeSpan, copyTimeSpan, removeTimeSpan
List time spans by date rangeReachableschema.graphql: timeSpans(fromInclusive, toInclusive, cursor)
Define tags and bulk-replace tag valuesReachablecreateTag, updateTag, removeTag, replaceTimeSpanTags, suggestTag
Aggregate statistics by tag and rangeReachablestats(ranges, tags, excludeTags, requireTags)
Build dashboardsReachablecreateDashboard, addDashboardRange, addDashboardEntry and their update/remove pairs
Manage usersReachablecreateUser, updateUser, removeUser (ADMIN role)
Issue device tokens for API accessReachableschema.graphql: login(username, pass, deviceName, type, cookie: false) and createDevice return Login.token; auth/middleware.go accepts 'Authorization: traggo <token>', a traggo cookie, or a token form value
Change user settings and themeReachablesetUserSettings
Export to CSV or invoiceNot reachableno export or invoicing in schema.graphql or README features

Code stack

Languages
GoTypeScript
Frameworks
gqlgenReact
Package manager
go modules
Database
SQLite
Hosting target
dockerbinary
Built
Human-written (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: self-hosted web UI served by the Go server95%
executionModelno model SDK or AI feature95%
operabilityschema.graphql in traggo/server documents queries and mutations including login and createDevice that return a token; endpoint is /graphql (main.go). The header format 'Authorization: traggo <token>' appears only in auth/middleware.go; traggo.net has config, install, and dev pages but no API page.80%
efforttraggo.net/config lists TRAGGO_* variables and the config file search order; .env.sample read this run95%
editionsREADME: self-host only; GPL-3.095%
activeshortlist pushedAt 2026-07-31–
reach85%

Open questions

  • The /graphql path and the 'Authorization: traggo <token>' header are only in source (main.go, auth/middleware.go); traggo.net has no API page

Sources