APM Counter is a Windows desktop application that tracks Actions Per Minute (APM) by monitoring keyboard and mouse inputs. It provides real-time APM tracking with an overlay that can be displayed on top of games and other applications.
- Real-time APM tracking for keyboard and mouse actions
- Minimal overlay that stays on top of games
- Draggable overlay positioning
- Global shortcuts for quick access (Ctrl+Shift+O to toggle overlay, Ctrl+R to reset)
- Dark/light theme support
- Session statistics and history tracking
- System tray integration
-
Clone the repository:
git clone <repository-url> cd APM-Counter
-
Install dependencies:
npm install
-
Add the required Rust target:
rustup target add x86_64-pc-windows-msvc
-
Start the development server:
npm run tauri dev
To build the application for production:
npm run tauri buildThis will generate an MSI installer in src-tauri/target/release/bundle/msi/.
- Launch the application
- The main window shows detailed APM statistics
- Click "Show Overlay" or use Ctrl+Shift+O to display the game overlay
- Drag the overlay to position it where you want on screen
- Use Ctrl+R to reset statistics
APM-Counter/
├── src/ # Frontend React code
│ ├── components/ # UI components
│ ├── contexts/ # React contexts
│ ├── App.tsx # Main application component
│ ├── overlay.tsx # Overlay component
│ └── main.tsx # Entry point
├── src-tauri/ # Backend Rust code
│ ├── src/
│ │ └── main.rs # Main Rust file
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
├── package.json # Frontend dependencies
└── README.md # This file
- Frontend: React + TypeScript + Vite
- Backend: Rust (Tauri)
- Styling: Tailwind CSS
- Charts: Recharts
- Build Tool: Tauri CLI
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If the overlay is not visible in fullscreen games:
- Try running the application as administrator
- Check if your game has overlay restrictions
- Try windowed or borderless windowed mode
If the development server fails to start:
- Ensure all prerequisites are installed
- Try clearing the cache:
npm run tauri clean - Check the console for specific error messages