Achievements is a Visual Studio Code extension that allows you to track your progress in coding, and earn achievements for completing tasks.
Warning
This extension is in beta, may contain bugs and database schema may change in future versions. It is recommended to back up your data before updating.
- Track your progress in coding
- Earn achievements for completing tasks
- View your achievements in the Achievements panel
- View each achievement's description and requirements
- View your progress towards each achievement
- Track your time spent coding
- Filter achievements by category, progress, and name
- View your profile and completion percentage
- Enable or disable notifications
- Enable or disable any type of listeners for privacy
- The extension activates on
onStartupFinishedand listens to VS Code and Git events (based on your settings). - Progress and achievement state are stored locally in a SQLite database powered by
sql.js(no server). - The UI is a VS Code webview (React) opened via Achievements: Show.
- Data is stored under VS Code's global storage as
achievements.sqlite. - A lock prevents multiple VS Code instances from writing the database at the same time.
- If another instance is using the DB, the extension runs in read-only mode: listeners are disabled and a status bar item indicates the state.
Several commands are available to interact with the Achievements extension. You can access these commands through the Command Palette (Ctrl+Shift+P) or by using keybindings.
| Command | Description |
|---|---|
achievements.enable |
Enable or Disable the Achievements extension event tracking (requires a restart) |
achievements.settings |
Open the Achievements configuration page |
achievements.show |
Show the Achievements panel |
The Achievements extension can be configured through the settings. You can access the settings by going to File > Preferences > Settings and searching for "Achievements".
You can also access the settings by using the command achievements.settings.
| Setting | Description |
|---|---|
achievements.enabled |
Enable or disable the Achievements extension event tracking |
achievements.notifications |
Enable or disable notifications for achievements |
achievements.logDirectory |
Select the directory where the log files will be stored |
achievements.logLevel |
Select the log level (info, debug, error) |
achievements.username |
Define your username for the Achievements score display |
achievements.listeners.debug |
Enable or disable debug listeners |
achievements.listeners.git |
Enable or disable git listeners |
achievements.listeners.extensions |
Enable or disable extension listeners |
achievements.listeners.files |
Enable or disable file listeners |
achievements.listeners.tabs |
Enable or disable tab listeners |
achievements.listeners.tasks |
Enable or disable task listeners |
achievements.listeners.time |
Enable or disable time tracking listeners |
- Download and install Visual Studio Code.
- Download and install the Achievements Extension VSIX from the OpenVSX registry.
- Open Visual Studio Code. Go to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window or by pressing
Ctrl+Shift+X. - Click on the three-dot menu icon in the top-right corner of the Extensions view and select "Install from VSIX...".
- In the file dialog that appears, navigate to the location where you downloaded the Achievements Extension VSIX file, select it, and click "Open".
- Visual Studio Code will install the extension. Once the installation is complete, you may need to reload Visual Studio Code for the extension to be activated. You can do this by clicking the "Reload" button that appears in the Extensions view after installation or by closing and reopening Visual Studio Code.
- Run the command
Achievements: Showfrom the Command Palette (Ctrl+Shift+P) to open the Achievements panel.
- Download and install Visual Studio Code.
- Download and install the Achievements Extension VSIX from the GitHub releases page.
- Open Visual Studio Code. Go to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window or by pressing
Ctrl+Shift+X. - Click on the three-dot menu icon in the top-right corner of the Extensions view and select "Install from VSIX...".
- In the file dialog that appears, navigate to the location where you downloaded the Achievements Extension VSIX file, select it, and click "Open".
- Visual Studio Code will install the extension. Once the installation is complete, you may need to reload Visual Studio Code for the extension to be activated. You can do this by clicking the "Reload" button that appears in the Extensions view after installation or by closing and reopening Visual Studio Code.
- Run the command
Achievements: Showfrom the Command Palette (Ctrl+Shift+P) to open the Achievements panel.
Prerequisites:
- Node.js
24(matches CI) - npm
- VS Code
Quick start:
- Install dependencies:
npm ci - Open in VS Code:
code . - Press
F5(launches the Extension Development Host)
Build system notes:
- The default debug launch runs the VS Code task
watch(see .vscode/tasks.json).watch:esbuildbundles the extension + webview.watch:tsctype-checks in watch mode.
Useful scripts:
| Command | Description |
|---|---|
npm run compile |
Clean + build Tailwind + bundle extension/webview (dev build) |
npm run build |
Production build (typecheck + lint + minified bundle) |
npm test |
Compile with tsc and run extension tests via @vscode/test-cli |
npm run test:coverage |
Run tests with NYC coverage output |
npm run lint |
Lint src/ |
npm run check-types |
Typecheck only (tsc --noEmit) |
npm run package |
Build and create a .vsix via vsce |
Contributing guidelines: see CONTRIBUTING.md.
