Create isolated experiments. Explore file profiles. Customize your own language mix.
© Albatany 2026
Activity Lab is an open source VS Code extension for synthetic editor experiments. It generates disposable scratch files using the official VS Code editing APIs, letting you explore how languages, editor events, file changes, and local reports behave across different configurations.
Version 5 introduces Custom Language Selection. You can choose your own combination from 141 built in language and file profiles instead of being limited to a ready made technology track. The entire extension and its documentation are written in English.
Important
Activity Lab is a simulator, not a source of verified coding hours or professional experience. Generated edits are automatically produced, not human coding. WakaTime and other extensions independently decide whether to record or ignore events. Activity Lab cannot guarantee any heartbeat, duration, language, project name, additions, or deletions in an external dashboard. It does not send heartbeats or collect API keys.
| Feature | What it does |
|---|---|
| Choose multiple languages | Search and select your own mix of up to 48 profiles per session from 141 built in choices |
| Save language presets | Save, reuse, or delete up to 20 custom language combinations |
| 32 professional tracks | Ready made themes including Full Stack, AI Engineer, Data Analyst, Cyber Security, MLOps, and Embedded Systems |
| Custom project names | Write an optional .wakatime-project marker to a session sandbox folder |
| Randomized file names | Creates scratch files with contextual names such as data_pipeline_a1b2c3.py |
| Line change patterns | Balanced 1:1, additions favored 4:1, and high growth 8:1 synthetic changes |
| Flexible sessions | Choose 5 minutes to 8 hours, enter 1–480 minutes, or run Until I Stop |
| Local session reports | Examine generated changes, selected languages, elapsed wall time, and file names |
| Windows and Kali Linux | Same VSIX installation for either system |
- Download
activity-lab-synthetic-5.0.0.vsixfrom the GitHub Releases page of this repository, or use the copy inrelease/. - In VS Code, open Extensions (
Ctrl + Shift + X). - Open the Extensions actions menu and select Install from VSIX....
- Select the
.vsixfile and reload VS Code if asked. - Open the Command Palette (
Ctrl + Shift + P), then run Activity Lab: Start Simulation.
Windows PowerShell:
code --install-extension .\activity-lab-synthetic-5.0.0.vsix --forceKali Linux or another supported Linux distribution:
code --install-extension ./activity-lab-synthetic-5.0.0.vsix --forceThe extension identifier remains localdev.activity-lab-synthetic for upgrades from v1 through v4. You do not need Python or Node.js to install the packaged VSIX. Node.js is only needed to run source tests or rebuild the extension.
- Run Activity Lab: Start Simulation.
- Choose Choose multiple languages.
- Search for languages, and select every file profile you want to experiment with.
- Confirm your selection. You can optionally save it as a reusable preset.
- Enter a project name or leave the field blank for the default sandbox name.
- Choose the session duration, line change pattern, and edit interval.
- Read the synthetic activity notice and select Start simulation.
Example custom mix:
Choose multiple languages
Python
TypeScript
SQL
Bash
Rust
Markdown
Save as a reusable preset → My Development Mix
Project name → Example Research 2026
Duration → 30 minutes
Change pattern → Additions favored 4:1
Edit interval → 30 seconds
Each selected profile receives its own scratch file. The extension rotates through those files during a session. The multi-select menu supports a maximum of 48 languages per session to limit editor overhead. The remaining built in profiles can be selected in another session.
Presets are stored in VS Code extension storage on the current installation. Choose Saved language presets from the start menu to reuse them. To delete one, open the Command Palette and run Activity Lab: Manage Language Presets. Presets store only language labels; they do not store generated source files or account credentials.
You can still select a Single language, use one of the Professional modes, or choose a Custom file type to specify a file extension and installed VS Code syntax mode. An optional WakaTime language catalog lets you browse verified language names online. A catalog name is not necessarily a VS Code syntax mode, and an extension alone does not guarantee tracker classification.
| Command | Description |
|---|---|
Activity Lab: Start Simulation |
Configure and start a sandbox session |
Activity Lab: Stop Simulation |
Stop, then generate the session report |
Activity Lab: Session Status |
Display current local simulation counters |
Activity Lab: Manage Language Presets |
Delete unused saved language presets |
You can also select the Activity Lab status bar entry to stop a running session.
Files are created inside ~/.vscode-activity-lab/ in a new, isolated directory for every session.
~/.vscode-activity-lab/
session-2026-10-24T...-a1b2c3/
.wakatime-project
ABOUT_SIMULATION.txt
data_pipeline_12ab34.py
query_report_56cd78.sql
deploy_script_91ef02.sh
architecture_notes_ab1234.md
session-report.json
Only the files created in the new scratch session are edited. If a scratch file changes unexpectedly, Activity Lab stops rather than overwriting manual edits. A session has a 2 MB per file and 10 MB total data limit. The interval timer runs while the VS Code extension host stays active.
The report's synthetic_additions and synthetic_deletions fields count local generated lines. They are not WakaTime server metrics. The project marker only suggests a project name to compatible trackers; it is not a guarantee that any activity will appear on your profile.
Read Tracking and privacy for important limitations.
Getting started · Tracking and privacy · Troubleshooting · GitHub release guide · Changelog
Clone the repository, install Node.js, then run:
npm test
npm run checkTo rebuild a VSIX using the official VS Code packaging tool, install @vscode/vsce and run its package command. Details are provided in the GitHub release guide.
Issues and pull requests are welcome, especially those improving cross-platform compatibility, language coverage, accessibility, and tests. Read CONTRIBUTING.md and SECURITY.md before contributing.
Activity Lab is not affiliated with Microsoft or WakaTime.
Built by Albatany · © Albatany 2026 · MIT License