Code Tracker
Code Tracker is a VS Code extension that automatically tracks and saves Jupyter notebook states to your API whenever cells are executed. Perfect for data scientists and ML engineers who need to maintain a history of their notebook executions.
Features
- 🔄 Automatic Tracking: Automatically sends notebook state to your API when cells are executed
- 🔐 Secure Key Management: Store and manage your API client key securely using VS Code's secret storage
- 📊 Settings Panel: Beautiful UI to manage your client key and view all tracked files
- 📋 Copy Content: Easily copy notebook content to clipboard with one click
- 🎯 Manual Save: Option to manually trigger saving notebook state via command palette
Requirements
- VS Code 1.80.0 or higher
- Jupyter extension installed (for
.ipynb file support)
- Access to your Code Tracker API endpoint
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions view (
Ctrl+Shift+X or Cmd+Shift+X)
- Search for "Code Tracker"
- Click Install
Manual Installation
- Download the
.vsix file from the releases page
- Open VS Code
- Go to Extensions view
- Click the
... menu → Install from VSIX...
- Select the downloaded
.vsix file
Quick Start
- Get your API client key from your Code Tracker service
- Open Settings: Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac) → Type "Code Tracker: Open Settings"
- Enter your client key in the "Client key" tab and click "Save key"
- Start working: Open any
.ipynb notebook and execute cells - they'll be automatically tracked!
Usage
Automatic Tracking
Once you've set up your client key, the extension automatically:
- Detects when you execute cells in a Jupyter notebook
- Reads the current notebook state
- Sends it to your API endpoint with your client key
No manual intervention needed!
Manual Save
You can also manually trigger saving:
- Press
Ctrl+Shift+P (or Cmd+Shift+P on Mac)
- Type "Code Tracker: Send Notebook State"
- Press Enter
View Tracked Files
- Open Settings:
Ctrl+Shift+P → "Code Tracker: Open Settings"
- Click the "Saved files" tab
- Click "Refresh list" to see all tracked files
- Click the 📋 icon next to any file to copy its content to clipboard
Manage Client Key
Open Settings Panel:
Ctrl+Shift+P → "Code Tracker: Open Settings"
Quick Configure:
Ctrl+Shift+P → "Code Tracker: Configure Client Key"
In the settings panel you can:
- View your stored key (with show/hide toggle)
- Update your key
- Delete your key
Extension Settings
This extension contributes the following commands:
code-tracker.openSettings: Open the Code Tracker settings panel
code-tracker.configureClientKey: Quickly configure your client key
code-tracker.sendNotebookState: Manually send current notebook state to API
API Configuration
By default, the extension connects to:
https://code-tracker.api.51.75.73.102.nip.io/api/v1/files
To use a different endpoint, you'll need to modify the extension code.
The extension sends POST requests with the following payload:
{
"fileName": "notebook.ipynb",
"filePath": "/absolute/path/to/notebook.ipynb",
"fullContent": "{...full notebook JSON...}",
"timestamp": "2025-11-27T09:09:49.340Z"
}
Headers:
Content-Type: application/json
Accept: application/json
x-api-key: YOUR_CLIENT_KEY
Privacy & Security
- Your client key is stored securely using VS Code's secret storage (encrypted)
- The key is never logged or exposed in the extension code
- All API communication uses HTTPS (when configured)
Troubleshooting
Extension not tracking cells
- Make sure you've set up your client key in Settings
- Verify the notebook file is a valid
.ipynb file
- Check the Debug Console for error messages
API errors
- Verify your client key is correct
- Check that your API endpoint is accessible
- Review error messages in VS Code notifications
Key not saving
- Make sure VS Code has permission to access secret storage
- Try restarting VS Code
- Check the Debug Console for errors
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details
Release Notes
0.0.1
Initial release of Code Tracker:
- Automatic notebook state tracking on cell execution
- Secure client key management
- Settings panel with key management and file viewing
- Manual save command
- Copy content to clipboard feature
Enjoy tracking your notebooks! 🚀