Browse / Scheduling and staffing
Traggo
Tag-based self-hosted time tracking in Go, driven by the same GraphQL API its UI uses.
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.
- 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
- 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.
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_PORTTRAGGO_DEFAULT_USER_NAMETRAGGO_DEFAULT_USER_PASSTRAGGO_PASS_STRENGTHTRAGGO_LOG_LEVELTRAGGO_DATABASE_DIALECTTRAGGO_DATABASE_CONNECTION- Config files
.env.sample.env.env.local~/.config/traggo/server.ini/etc/traggo/server.inidocker-compose.yml- Prompt files
- none
- Accounts you need
- none
Source
- github.com/traggo/server
- GPL-3.0 license
- Last commit Jul 31, 2026
- 1,623 stars
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.
Reach
Partial coverage. 8 of 9 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Start, stop and edit time spans | Reachable | schema.graphql: createTimeSpan, updateTimeSpan, stopTimeSpan, copyTimeSpan, removeTimeSpan |
| List time spans by date range | Reachable | schema.graphql: timeSpans(fromInclusive, toInclusive, cursor) |
| Define tags and bulk-replace tag values | Reachable | createTag, updateTag, removeTag, replaceTimeSpanTags, suggestTag |
| Aggregate statistics by tag and range | Reachable | stats(ranges, tags, excludeTags, requireTags) |
| Build dashboards | Reachable | createDashboard, addDashboardRange, addDashboardEntry and their update/remove pairs |
| Manage users | Reachable | createUser, updateUser, removeUser (ADMIN role) |
| Issue device tokens for API access | Reachable | schema.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 theme | Reachable | setUserSettings |
| Export to CSV or invoice | Not reachable | no 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
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: self-hosted web UI served by the Go server | 95% |
| executionModel | no model SDK or AI feature | 95% |
| operability | schema.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% |
| effort | traggo.net/config lists TRAGGO_* variables and the config file search order; .env.sample read this run | 95% |
| editions | README: self-host only; GPL-3.0 | 95% |
| active | shortlist pushedAt 2026-07-31 | – |
| reach | 85% |
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
- github.com/traggo/server sourcing:scheduling-staffing:curated
- traggo.net/config/ sourcing:scheduling-staffing:curated
- github.com/traggo/server/blob/master/schema.graphql analysis:scheduling-staffing