A Claude Code agent that turns your GitHub activity into Toggl time entries.
It reads a per-user config (USER.md, gitignored), pulls recent PRs, commits, and reviews from the repos you track, lets you review/adjust durations, and logs them to Toggl.
- init — interactive setup. Detects your GitHub handle via
gh, proposes repos from your recent activity, maps each repo to a Toggl project, and writes USER.md. - log-github-activity — pulls your GitHub activity for a chosen time range (today / yesterday / this week / custom), builds candidate time entries with sensible default durations, and posts the approved ones to Toggl.
- heartbeat — background mode that detects when you've switched work (new repo / PR / topic) and nudges you on Slack to track the switch. Prunes stale memory each run.
- GitHub access via the
ghCLI, scoped to repos in USER.md and filtered to your handle. - Toggl access via the v9 REST API. The API token is injected at the HTTP layer as
$TOGGL_API_TOKEN— never prompted or echoed. The workspace id is discovered at runtime fromGET /me. - Config lives in USER.md (GitHub handle, workspace id,
repo -> toggl projectmapping). - Heartbeat state is persisted via Claude's built-in memory tool (under a
heartbeat/last_activitykey) so each run can spot work switches since the last observation.
Tell the agent init to create USER.md, then log my work (or log today / log this week) to push entries to Toggl.