Track your coding time. No cap, no paywalls, no mid features.
WakaTime's free & superior cousin. The time tracker that actually slaps. π₯
π Website β’ π Documentation β’ π Blog β’ π Leaderboard
- Features
- Quick Start
- Installation
- Usage
- Architecture
- Project Structure
- Technology Stack
- Configuration
- API Documentation
- Development
- Contributing
- Roadmap
- FAQ
- Support
- License
- Zero Setup Required: Install the extension and start tracking immediately
- Seamless Integration: Runs silently in the background while you code
- Smart Detection: Automatically detects when you're actively coding
- No Manual Logging: Forget about manually logging your time
- Daily Statistics: View your coding time breakdown by day
- Project Analytics: Understand time spent on each project
- Language Insights: See which programming languages you use most
- Focus Time Metrics: Identify your peak productivity hours
- Trends & Patterns: Discover your coding habits and patterns
- JavaScript/TypeScript: Full support
- Python: Complete tracking
- Java: Java file tracking
- C/C++: C and C++ files
- Go: Go language support
- Rust: Rust file tracking
- And More: 50+ languages supported
- Leaderboard: Compete with other developers
- Achievements: Unlock badges and milestones
- Streaks: Maintain coding streaks
- Rankings: See where you rank globally
- Local Storage: Your data stays on your machine
- Encrypted Sync: Optional cloud sync with encryption
- No Keystroke Logging: We only track file activity
- GDPR Compliant: Full data control and export
- VS Code: Native extension
- Web Dashboard: Monitor your stats online
- Mobile Ready: Responsive design for all devices
| Feature | DevMeter | WakaTime |
|---|---|---|
| Price | π° 100% Free | π Paid plans only |
| Open Source | β Yes | β No |
| Data Privacy | π Local first | |
| No Ads | β None | β Limited ads |
| Customization | β Full control | β Limited |
| Community | π€ Growing fast | π Corporate |
The move? Switch to DevMeter. It's free, it's open-source, and it actually respects your data. WakaTime who? π
Option 1: VS Code Marketplace (Recommended)
# Install via VS Code Extensions
1. Open VS Code
2. Go to Extensions (Ctrl+Shift+X)
3. Search for "DevMeter"
4. Click InstallOption 2: Command Line
code --install-extension DevMitrza.devmeterOption 3: Direct Download
- Visit VS Code Marketplace
- Click "Install"
- Install the Extension β DevMeter automatically starts tracking
- Create Account β Sign up at devmeter-v2.zaidcode.me
- View Dashboard β Check your stats in real-time
- Explore Features β Check docs for advanced usage
- VS Code: Version 1.70.0 or higher
- Node.js: Version 16+ (for development)
- Bun: Package manager (for development)
- Open VS Code
- Press
Ctrl+Shift+X(Windows/Linux) orCmd+Shift+X(Mac) - Search for "DevMeter"
- Click the "Install" button
- Reload VS Code when prompted
code --install-extension DevMitrza.devmeter# Clone the repository
git clone https://github.com/devmeter/devmeter.git
cd devmeter
# Install dependencies
bun install
# Build the extension
bun run build:extension
# Run in development mode
bun run dev:extension# Navigate to client directory
cd client
# Install dependencies
bun install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration
# Run development server
bun run dev
# Build for production
bun run build
# Start production server
bun start-
Install the Extension
- Once installed, DevMeter automatically starts tracking your coding sessions
-
View Real-Time Stats
- Open the DevMeter panel in VS Code sidebar
- See today's coding time, active project, and session stats
-
Access Web Dashboard
- Visit devmeter-v2.zaidcode.me
- Sign in with your account
- View comprehensive analytics and history
-
Analyze Your Patterns
- Check which projects consume the most time
- Identify your peak productivity hours
- Review language proficiency distribution
Dashboard Tab
- Overview of today's stats
- Weekly activity chart
- Current session information
- Quick access to settings
Analytics Tab
- Detailed time tracking by project
- Language breakdown
- Daily/weekly/monthly trends
- Productivity insights
Leaderboard Tab
- Global rankings
- Compare with other developers
- Category-based rankings
- Achievement showcase
Settings Tab
- Privacy preferences
- Notification settings
- Data sync options
- Account management
Status Bar
- See your current coding time at the bottom of the editor
- Quick access to pause/resume tracking
Activity Sidebar
- Real-time session stats
- Today's breakdown
- Project selector
- Quick settings menu
DevMeter is built as a full-stack application with three main components:
βββββββββββββββββββββββββββββββββββββββββββ
β VS Code Extension β
β (TypeScript, Activity Monitoring) β
ββββββββββββββββ¬βββββββββββββββββββββββββββ
β API Calls
ββββββββββββββββΌβββββββββββββββββββββββββββ
β Analytics Backend API β
β (Node.js, Express, Prisma ORM) β
β - Time Tracking β
β - User Authentication β
β - Data Aggregation β
ββββββββββββββββ¬βββββββββββββββββββββββββββ
β REST/GraphQL
ββββββββββββββββΌβββββββββββββββββββββββββββ
β Web Dashboard β
β (Next.js, React, TypeScript) β
β - Real-time Analytics β
β - User Profile β
β - Leaderboard β
βββββββββββββββββββββββββββββββββββββββββββ
Extension (/extension)
- Monitors editor activity
- Tracks file changes and focus
- Syncs data to backend
- Provides status bar UI
Backend API (/api)
- RESTful API for data management
- Authentication & authorization
- Analytics computation
- Database operations
Web Dashboard (/client)
- React-based UI
- Real-time data visualization
- User management
- Settings and preferences
devmeter/
βββ extension/ # VS Code Extension
β βββ src/
β β βββ extension.ts # Extension entry point
β βββ package.json
β βββ tsconfig.json
β
βββ client/ # Web Dashboard (Next.js)
β βββ app/
β β βββ api/ # API routes
β β βββ auth/ # Authentication pages
β β βββ blog/ # Blog pages
β β βββ dashboard/ # Main dashboard
β β βββ leaderboard/ # Leaderboard
β β βββ profile/ # User profile
β β βββ docs/ # Documentation
β β βββ layout.tsx # Root layout
β βββ components/ # Reusable components
β βββ lib/ # Utilities & services
β βββ prisma/ # Database schema
β βββ public/ # Static assets
β
βββ analytics/ # Analytics/Reporting (Vite)
β βββ src/
β βββ package.json
β
βββ README.md # This file
- Framework: Next.js 14+ (React)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- State Management: React Hooks
- HTTP Client: Fetch API
- Runtime: Node.js
- Framework: Express.js
- Language: TypeScript
- ORM: Prisma
- Database: PostgreSQL
- Authentication: NextAuth.js
- Validation: Zod
- Language: TypeScript
- Framework: VS Code Extension API
- Package Manager: npm/bun
- Package Manager: Bun (client), npm (extension)
- Build Tool: Vite (analytics), Next.js (client)
- Version Control: Git
- Environment: ESLint, Prettier
Create .env.local in the client directory:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/devmeter"
# Authentication
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
# API
NEXT_PUBLIC_API_URL="http://localhost:3000/api"
# Third-party
GITHUB_ID="your-github-app-id"
GITHUB_SECRET="your-github-app-secret"In VS Code settings (settings.json):
{
"devmeter.apiUrl": "https://devmeter-v2.zaidcode.me/api",
"devmeter.autoSync": true,
"devmeter.enableNotifications": true,
"devmeter.privacyMode": false,
"devmeter.trackedLanguages": ["javascript", "typescript", "python"]
}https://devmeter-v2.zaidcode.me/api
All requests require a Bearer token:
Authorization: Bearer <your-jwt-token>
GET /api/user # Get current user
PATCH /api/user # Update profile
DELETE /api/user # Delete account
GET /api/stats # Get today's stats
GET /api/stats/daily # Get daily breakdown
GET /api/stats/weekly # Get weekly stats
GET /api/stats/monthly # Get monthly stats
GET /api/stats/:metric # Get specific metric
POST /api/session/start # Start new session
POST /api/session/end # End current session
GET /api/session/current # Get active session
GET /api/leaderboard # Get global rankings
GET /api/leaderboard/:category # Get category rankings
GET /api/leaderboard/user/:id # Get user rank
See API Documentation for detailed endpoint specs.
- Node.js 16+
- Bun package manager
- PostgreSQL (or Docker)
- VS Code
# Clone repository
git clone https://github.com/devmeter/devmeter.git
cd devmeter
# Install dependencies
bun install
# Setup database
bun run prisma:setup
# Run development servers
bun run dev
# In separate terminal: Run extension in watch mode
cd extension
bun run dev# Development
bun run dev # Start all dev servers
bun run dev:client # Start client dev server
bun run dev:extension # Start extension in watch mode
# Building
bun run build # Build all packages
bun run build:client # Build client
bun run build:extension # Build extension
# Database
bun run prisma:setup # Setup database
bun run prisma:migrate # Run migrations
bun run prisma:studio # Open Prisma Studio
# Code Quality
bun run lint # Run ESLint
bun run format # Format with Prettier
bun run type-check # TypeScript type checking
# Testing
bun run test # Run tests
bun run test:watch # Run tests in watch mode# Create feature branch
git checkout -b feature/your-feature-name
# Make changes and commit
git add .
git commit -m "feat: add your feature description"
# Push and create PR
git push origin feature/your-feature-nameWe love contributions! Here's how you can help:
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/devmeter.git - Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Commit:
git commit -m 'feat: add amazing feature' - Push:
git push origin feature/amazing-feature - Create a Pull Request
-
Follow Code Standards
- Use TypeScript for type safety
- Follow ESLint rules
- Use Prettier for formatting
-
Testing
- Write tests for new features
- Ensure all tests pass:
bun run test
-
Documentation
- Update README if needed
- Add JSDoc comments
- Update API docs
-
Commit Messages
- Use conventional commits:
feat:,fix:,docs:, etc. - Be descriptive and concise
- Use conventional commits:
- π Bug fixes
- β¨ New features
- π Documentation
- π¨ UI/UX improvements
- π Translations
- π Blog posts and tutorials
- Dark mode improvements
- Advanced filtering in analytics
- Keyboard shortcuts customization
- Export data to CSV/JSON
- Team collaboration features
- Custom goals and targets
- Integration with project management tools
- Mobile app beta
- AI-powered insights
- Automated reports
- Slack integration
- GitHub integration
- VS Code Web version
- JetBrains IDE support
- Vim/Neovim integration
- Enterprise features
DevMeter monitors when you're actively editing files in VS Code. It tracks file changes and editor focus to determine when you're coding.
No. DevMeter only stores metadata about your coding sessions (time, language, file names). Your actual code is never sent to our servers.
Yes! The extension works offline and syncs your data when you're back online.
- Data is encrypted in transit (HTTPS)
- Passwords are hashed with bcrypt
- Optional end-to-end encryption for sensitive data
- GDPR compliant data handling
Yes. You can delete your account and all associated data anytime from Settings β Account β Delete Account.
Yes, DevMeter is completely free and open-source!
Please create an issue on GitHub Issues with:
- Description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
Create a feature request on GitHub Discussions with:
- Description of the feature
- Use case and benefits
- Mockups or examples (if applicable)
See our Privacy Policy for complete details.
Documentation
Community
Contact
- Email: [email protected]
- X: @devmeter_stroke
- Discord: Join Community
DevMeter is open source and available under the MIT License.
Thanks to all our contributors, users, and the open-source community for making DevMeter possible!
Made with β€οΈ by the DevMeter Team
β Star us on GitHub β’ π Follow us on X β’ π¬ Join our Community
Β© 2026 DevMeter. All rights reserved.