Dashcam
A dashcam for your code. A car dashcam records the road while you drive, and when there is a crash you keep the footage. Dashcam does the same while you work in VS Code: it records what happens, and when something breaks it saves the footage as a shareable Markdown bug report.
Free. No account, no network connections: everything stays on your computer.
Pre-release (0.1.0). Full documentation, tutorials and the issue tracker are on GitHub.
See it
While it records. The sidebar shows the date and time, a running REC clock, and each thing that happens, with its time. The red square at the top is the stop button; the gear opens the settings.

When it catches a crash. A failing command stops the recording and saves the report by itself.

Every saved recording is a report. Click one in Saved Recordings to open the Markdown file.

How it works, as a dashcam
| A car dashcam |
Dashcam in VS Code |
| Has a record button |
One record button at the top of the sidebar, beside the settings gear. It starts a recording when it is off and stops it when it is on. |
| Switches on with the car |
Tick dashcam.autoStart and it switches on when you open a folder. |
| Stamps the date and time on the footage |
A running REC clock, and the time on every entry and in the report. |
| Records the road ahead |
Records terminal commands (with output and exit code), saved files, debug sessions and new Problems panel errors. You type nothing. |
| Loops, keeping the last few minutes |
A rolling window, 30 minutes by default (dashcam.bufferMinutes). |
| Locks the clip when it senses a crash |
When a command fails or a debug session crashes, Dashcam turns itself off and saves the report, then tells you. |
| You review the clips afterwards |
A Saved Recordings list. Each one is a Markdown report. |
What is in a report
A Summary that gets the point across at a glance (the error, where it points, the last time the same command passed and the files you saved in between, what you changed, where you were), the environment (OS, VS Code, Node, git branch and commit), the project (type, tool versions, dependencies), the real git diff of your uncommitted changes, the steps with their times (each command's exit code, folder, shell, duration and output), the file:line locations named in that output, a few lines of your code around each of those locations with the error line and your changed lines marked, and a Problems panel snapshot. Likely passwords, tokens and keys are replaced with [REDACTED], and files such as .env are never included.
Good for AI-assisted coding: paste the report into your AI assistant instead of your whole project. It shows what failed, what you changed and the code around the error. Read it before you paste, because redaction is pattern matching, and set dashcam.codeContextLines and dashcam.diffMaxLines to 0 if you do not want code in reports.
Use it
- Click the record button at the top of the Dashcam sidebar (the video-camera icon in the left bar). Or tick
dashcam.autoStart.
- Work as usual. When a terminal command fails or a debug session crashes, the report is saved for you.
- Or click the record button again to stop. Dashcam asks whether to save the recording as a report.
- Open any saved recording from Saved Recordings.
Settings
| Setting |
Default |
|
dashcam.autoStart |
false |
Start recording as soon as a folder opens |
dashcam.bufferMinutes |
30 |
Drop entries older than this. 0 keeps everything |
dashcam.codeContextLines |
5 |
Lines of code either side of each file:line the report points at. 0 leaves code out |
dashcam.diffMaxLines |
150 |
Lines of git diff of your uncommitted changes to include. 0 leaves the diff out |
dashcam.includeProjectInfo |
true |
Include the project type, dependencies and tool versions |
dashcam.detectCrashes |
true |
On a failing command or crashed debug session, stop and save the report automatically |
dashcam.redactSecrets |
true |
Redact likely secrets in reports |
dashcam.outputFolder |
bug-reports |
Where reports are saved |
dashcam.extraTools |
[] |
Commands to run for version info, e.g. ["python --version"] |
Limits, stated plainly
- It sees VS Code, not your app. Clicks and typing inside a running app are not recorded. The report is a Markdown file, so add notes about that part yourself.
- Terminal capture needs VS Code 1.93 or newer and a terminal with shell integration.
- A command that is supposed to fail, such as a test run, also counts as a crash. Turn that off with
dashcam.detectCrashes.
- Secret redaction is pattern matching and can miss things. Read a report before you share it.
Learn more
Tutorials · Reference · FAQ · Privacy · Report a problem
Licence
Freeware: free to use, not open source. See LICENSE.txt.