Skip to content

dev-time-tracker/timetracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Automatic. Non-Invasive. Developer Time Tracking.

No more "Start/Stop" buttons. No more end-of-day guessing. Time is automatically tracked per git branch.

Privacy-first: no screenshots, no keystrokes, no code content collected.

dev-time dashboard

See Live Demo

How it works

Every 15 seconds, the script checks if you modified any files in the current project. If yes, it sends your project name, git branch, and timestamp. Nothing else. No file names, no code, no keystrokes, no screenshots.

{
  "project_name": "my-saas-app",
  "git_branch": "feature/auth",
  "client_id": "a1b2c3d4-...",
  "created_at": "2026-01-21T14:32:15Z"
}

See exactly what's sent: devtime.sh#L67

Setup

# 1. cd to your project directory
cd /path/to/your/project

# 2. Download
curl -O https://github.com/dev-time-tracker/timetracker/blob/master/devtime.sh
chmod +x devtime.sh

# 3. Run
./devtime.sh

View your data

Visit: https://dev-time.com/app?client_id=YOUR_CLIENT_ID

Your client ID is stored in ~/.devtime_id and shown when the script starts.

Auto-start on login

macOS (launchd)

To auto-track a specific project on login:

# 1. cd to your project directory
cd /path/to/your/project

# 2. create launchd background service
d="$PWD"; p=~/Library/LaunchAgents/com.devtime.plist
mkdir -p ~/Library/LaunchAgents
cat > "$p" <<EOF
<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict>
<key>Label</key><string>com.devtime</string>
<key>ProgramArguments</key><array><string>/bin/bash</string><string>$d/devtime.sh</string></array>
<key>WorkingDirectory</key><string>$d</string>
<key>RunAtLoad</key><true/><key>KeepAlive</key><true/>
</dict></plist>
EOF
launchctl unload "$p" 2>/dev/null; launchctl load "$p"

# 3. Your client_id is created the first time devtime runs and is saved locally in ~/.devtime_id.
# Since auto-start runs in the background (no terminal output), print it anytime with:
cat ~/.devtime_id

Linux (systemd)

Create a systemd user service:

# 1. cd to your project directory
cd /path/to/your/project

# 2. create systemd background service
d="$PWD"
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/devtime.service <<EOF
[Service]
WorkingDirectory=$d
ExecStart=/bin/bash $d/devtime.sh
Restart=always
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload && systemctl --user enable --now devtime.service

# 3. Your client_id is created the first time devtime runs and is saved locally in ~/.devtime_id.
# Since auto-start runs in the background (no terminal output), print it anytime with:
cat ~/.devtime_id

Privacy

  • ✅ Tracks: project name, git branch, timestamp
  • ❌ Never collects: file names, code content, keystrokes, screenshots
  • ✅ Open source: inspect the 67-line script
  • ✅ Your data: export as CSV from the dashboard

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages