🚀 CodeCollab
Collaborate smarter. Code with confidence.
CodeCollab is a real-time collaboration and activity tracking extension for Visual Studio Code. It helps development teams see who's working on which file, prevent code conflicts, and boost productivity effortlessly—all within your IDE.
📋 Table of Contents
✨ Features
- 🔍 Real-Time File Activity Tracking - Automatically tracks which files are open and active for each team member
- 👥 User Visibility - See who's currently working on the same file as you in the status bar
- 📊 Interactive Dashboard - View all active users and files across the workspace
- 🎯 Smart Filtering - Filter dashboard by file or user with one click
- ⚡ Performance Optimized - Configurable caching and debounced writes to handle many concurrent users
- 🧹 Automatic Cleanup - Removes orphaned files with no users or inactive files based on configurable time thresholds
- 📱 Status Bar Integration - Quick view of other users on your current file
- ⚙️ Highly Configurable - Fine-tune cache TTL, write delays, and refresh intervals
🔌 Activation
CodeCollab uses the * activation event, which means the extension activates immediately when VS Code starts. This ensures all collaboration features are available as soon as you open a workspace.
Activation Event: * (activates on all events)
VS Code Version Requirement: ^1.60.0 or higher
📦 View Containers & Views
View Container
CodeCollab adds a view container to the Activity Bar:
- Container ID:
codecollab-sidebar
- Title:
CodeCollab
- Location: Activity Bar (left sidebar)
- Icon:
media/icon4.svg
Views
The CodeCollab sidebar contains the following view:
- View ID:
codecollabDashboardView
- Name:
Dashboard
- Container:
codecollab-sidebar
The Dashboard view provides real-time visibility into:
- All active users in the workspace
- Files currently being edited by each user
- User activity status (active/inactive)
- Quick filtering and search capabilities
🎮 Commands
All commands are accessible via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
| Command ID |
Title |
Description |
codecollab.showDashboard |
CodeCollab: Show General Dashboard |
Opens the main dashboard showing all users and files |
codecollab.showProfile |
CodeCollab: Show User Dashboard |
Opens your personal profile dashboard for managing display name and user ID |
codecollab.showCleanupDashboard |
CodeCollab: Show Cleanup Dashboard |
Opens the cleanup management dashboard for monitoring and managing orphaned files |
codecollab.cleanupData |
CodeCollab: Clean Up Orphaned Files |
Manually trigger cleanup of files with no associated users |
codecollab.clearCache |
CodeCollab: Clear Cache |
Clear all in-memory caches (useful for troubleshooting performance issues) |
Using Commands
- Press
Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac)
- Type "CodeCollab" to filter commands
- Select the desired command from the list
⚙️ Configuration Settings
Configure CodeCollab through VS Code Settings (File > Preferences > Settings or Ctrl+,):
| Setting |
Type |
Default |
Minimum |
Description |
codecollab.cacheTTL |
number |
10000 |
1000 |
User metadata cache TTL (in milliseconds) — helps reduce frequent reads |
codecollab.writeDelayMs |
number |
2000 |
0 |
Debounce delay (ms) for batching file writes. Higher values reduce disk I/O |
codecollab.enableFileCache |
boolean |
true |
- |
Enable in-memory file caching to optimize performance and reduce redundant reads |
codecollab.userCountIntervalMs |
number |
10000 |
1000 |
Refresh interval (ms) for updating the active user count in the status bar |
codecollab.dashboardRefreshMs |
number |
10000 |
1000 |
Auto-refresh interval (ms) for CodeCollab dashboard updates |
Configuration Example
Add to your settings.json:
{
"codecollab.cacheTTL": 15000,
"codecollab.writeDelayMs": 3000,
"codecollab.enableFileCache": true,
"codecollab.userCountIntervalMs": 5000,
"codecollab.dashboardRefreshMs": 8000
}
Setting Descriptions
codecollab.cacheTTL
Controls how long user metadata is cached in memory before being refreshed. Increase this value to reduce file system reads in large teams, but be aware that user information may be slightly stale.
codecollab.writeDelayMs
Debounce delay for batching file writes. When multiple file events occur, they are batched together and written after this delay. Higher values reduce disk I/O but may cause slight delays in activity updates.
codecollab.enableFileCache
Enables in-memory caching of file data to optimize performance. Disable this if you're experiencing memory issues or need real-time accuracy at the cost of performance.
codecollab.userCountIntervalMs
How frequently the status bar updates with the count of other users on your current file. Lower values provide more real-time updates but may impact performance.
codecollab.dashboardRefreshMs
Auto-refresh interval for the dashboard view. The dashboard automatically updates at this interval to show the latest user and file activity.
🧭 Usage Guide
Getting Started
- Open a Workspace - CodeCollab requires an open workspace folder to function
- Extension Activation - The extension activates automatically when VS Code starts (activation event:
*)
- Access the Sidebar - Click the CodeCollab icon in the Activity Bar (left sidebar)
Opening the Dashboard
Via Activity Bar
- Click the CodeCollab icon in the Activity Bar
- The Dashboard view will appear in the sidebar
- View all active users and files in real-time
Via Command Palette
- Press
Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac)
- Type "CodeCollab" and select:
CodeCollab: Show General Dashboard - Opens the main dashboard
CodeCollab: Show User Dashboard - Opens your profile dashboard
CodeCollab: Show Cleanup Dashboard - Opens the cleanup dashboard
Dashboard Features
- Search - Search by file path, user name, or user ID
- Filter by File - Click any file path to filter and see all users working on that file
- Filter by User - Click any user name to filter and see all files that user is working on
- Open Files - Click file paths to open them (Ctrl+Click to open in new tab)
- Auto-Refresh - Dashboard automatically refreshes at the interval specified in
codecollab.dashboardRefreshMs
Status Bar
- The status bar shows the number of other users working on your currently active file
- Updates at the interval specified in
codecollab.userCountIntervalMs
- Click the status bar item to open the General Dashboard filtered to your current file
User Profile Management
- Open User Dashboard using the command
CodeCollab: Show User Dashboard
- Set your Display Name (defaults to your User ID)
- Copy your User ID to share with team members
Cleanup Management
- Open Cleanup Dashboard using the command
CodeCollab: Show Cleanup Dashboard
- Configure Inactive File Time Limit (files with no activity for this duration will be cleaned up)
- Run cleanup operations:
- Use the command
CodeCollab: Clean Up Orphaned Files to manually trigger cleanup
- Or use the cleanup dashboard UI to manage orphaned files
Cache Management
If you experience performance issues or stale data:
- Use the command
CodeCollab: Clear Cache to clear all in-memory caches
- The extension will rebuild caches as needed
- Useful for troubleshooting when user or file data appears outdated
🔧 How It Works
CodeCollab uses a lightweight file-based database stored in .codecollab/ within your workspace:
- User Tracking - Each user has a unique ID (derived from SSH key or generated)
- File Tracking - Tracks which users have which files open and their status (active/inactive)
- Real-Time Updates - File events (open, close, focus change) are tracked and shared
- Debounced Writes - Writes are batched using
codecollab.writeDelayMs to reduce disk I/O under high concurrency
- Automatic Cleanup - Orphaned files are cleaned up automatically on startup and periodically
- Caching - User metadata and file data are cached in memory to optimize performance
Architecture
- Activation: Extension activates on all events (
*) for immediate availability
- View Container: Provides sidebar access via Activity Bar
- Dashboard View: Real-time webview showing collaboration data
- File System: Stores collaboration state in
.codecollab/ directory
- Event Listeners: Monitors file open, close, and focus events
- Status Bar: Displays active user count for current file
🗺️ Roadmap
Future enhancements planned:
- [ ] Real-time notifications when someone opens a file you're working on
- [ ] Conflict detection warnings before editing files with active users
- [ ] Activity history and analytics dashboard
- [ ] Team chat integration within the dashboard
- [ ] Export/import collaboration data
- [ ] Remote workspace support for cloud-based development
- [ ] Customizable ignore patterns for files and folders
- [ ] Integration with Git to show branch-specific activity
⭐ Support
If you find CodeCollab useful, please consider:
- 📢 Sharing with your team and colleagues
📄 License
This project is licensed under the MIT License.
Made with ❤️ by Mihir Bhadak