diff --git a/config/_default/menus/main.en.yaml b/config/_default/menus/main.en.yaml
index bce66139ced..cac2ce29e96 100644
--- a/config/_default/menus/main.en.yaml
+++ b/config/_default/menus/main.en.yaml
@@ -6108,16 +6108,21 @@ menu:
parent: ide_plugins_vscode
identifier: ide_plugins_vscode_code_insights
weight: 102
- - name: Exception Replay
- url: ide_plugins/vscode/exception_replay/
- parent: ide_plugins_vscode
- identifier: ide_plugins_vscode_exception_replay
- weight: 103
- name: Code Security
url: ide_plugins/vscode/code_security/
parent: ide_plugins_vscode
identifier: ide_plugins_vscode_code_security
+ weight: 103
+ - name: Exception Replay
+ url: ide_plugins/vscode/exception_replay/
+ parent: ide_plugins_vscode
+ identifier: ide_plugins_vscode_exception_replay
weight: 104
+ - name: Live Debugger
+ url: ide_plugins/vscode/live_debugger/
+ parent: ide_plugins_vscode
+ identifier: ide_plugins_vscode_live_debugger
+ weight: 105
- name: Observability Pipelines
url: observability_pipelines/
pre: pipelines
diff --git a/content/en/ide_plugins/vscode/_index.md b/content/en/ide_plugins/vscode/_index.md
index a22f46d1126..dd6641e4d51 100644
--- a/content/en/ide_plugins/vscode/_index.md
+++ b/content/en/ide_plugins/vscode/_index.md
@@ -54,6 +54,8 @@ The extension includes these features:
- [**Exception Replay**](#exception-replay): Debug your production code.
+- [**Live Debugger**](#live-debugger): Add non-breaking logpoints to running services to capture runtime data without redeploying.
+
- [**Fix in Chat**](?tab=cursor#fix-in-chat): Fix code errors, vulnerabilities, and flaky tests with AI-powered suggestions and explanations.
Unless stated otherwise, all extension features are available for both VS Code and any other IDEs based on VS Code forks, such as Cursor.
@@ -145,6 +147,14 @@ Find out more in the [Code Security][19] sub-section.
Find out more in the [Exception Replay][22] sub-section.
+### Live Debugger
+
+The **Live Debugger** lets you add logpoints — auto-expiring, non-breaking breakpoints — to your running services to capture runtime data for debugging without redeploying your code.
+
+{{< img src="/ide_plugins/vscode/live_debugger_overview.mp4" alt="Overview of the Datadog Live Debugger activity" style="width:100%" video=true >}}
+
+Find out more in the [Live Debugger][23] sub-section.
+
## Other features
### View in IDE
@@ -206,3 +216,4 @@ Read the [End-User License Agreement][12] carefully before downloading or using
[20]: /ide_plugins/vscode/logs/
[21]: /ide_plugins/vscode/code_insights/
[22]: /ide_plugins/vscode/exception_replay/
+[23]: /ide_plugins/vscode/live_debugger/
diff --git a/content/en/ide_plugins/vscode/code_security.md b/content/en/ide_plugins/vscode/code_security.md
index 05e0cdff333..c967a618682 100644
--- a/content/en/ide_plugins/vscode/code_security.md
+++ b/content/en/ide_plugins/vscode/code_security.md
@@ -37,12 +37,12 @@ After you create the configuration file, the analyzer runs automatically in the
To analyze an entire folder or workspace, right-click a folder in the file explorer and select **Datadog Code Security > Analyze Folder** or **Analyze Workspace**.
-Static Code Analysis does not require a Datadog account, as source files are analyzed locally.
-
### Rule editor
Write and test [custom Static Code Analysis rules][4] without leaving your IDE. Use the rule editor to design detection logic for internal standards, security patterns, or maintainability checks specific to your codebase.
+To open the rule editor, run the `Datadog: New DDSA Rule` command from the command palette (`Shift` + `Cmd/Ctrl` + `P`), or right-click a YAML file in the file explorer and select **Datadog Code Security > Open in DDSA Rule Editor**.
+
{{< img src="/ide_plugins/vscode/static-analysis-rule-editor.png" alt="SAST rule editor in the Datadog extension for VS Code" style="width:100%;" >}}
The rule editor provides the following panels.
@@ -66,7 +66,7 @@ Secret Scanning is enabled by default and runs in the background whenever you op
{{< img src="/ide_plugins/vscode/secret-scanning-batch-analysis.png" alt="Batch analysis report with a Secret Scanning section listing findings per file" style="width:100%;" >}}
-Unlike Static Code Analysis, Secret Scanning does not require a [`static-analysis.datadog.yml`][3] file in your repository, and it scans all text files regardless of programming language. Likely binary files are skipped automatically.
+No local configuration is required; the scan rules are fetched from the Datadog backend. All text files are scanned, binary files are skipped.
Secret Scanning requires you to be signed in to Datadog, because detection rules are fetched from your Datadog organization.
diff --git a/content/en/ide_plugins/vscode/live_debugger.md b/content/en/ide_plugins/vscode/live_debugger.md
new file mode 100644
index 00000000000..55b50189b93
--- /dev/null
+++ b/content/en/ide_plugins/vscode/live_debugger.md
@@ -0,0 +1,86 @@
+---
+title: Live Debugger
+type: documentation
+further_reading:
+ - link: '/dynamic_instrumentation/'
+ tag: 'Documentation'
+ text: 'Learn more about Dynamic Instrumentation'
+ - link: '/integrations/guide/source-code-integration/'
+ tag: 'Documentation'
+ text: 'Learn more about Source Code Integration'
+---
+
+## Overview
+
+The **Live Debugger** lets you add logpoints — auto-expiring, non-breaking breakpoints — to your running services to collect information for debugging. Logpoints are set dynamically, so you don't need to redeploy your code to investigate an issue. Logpoints are grouped into sessions, and you can activate, edit, deactivate, or delete sessions (or individual logpoints) at any time. All sessions and logpoints automatically deactivate after 60 minutes, and log events are rate-limited to one execution per second.
+
+To use this feature, your service must be set up for [Datadog Dynamic Instrumentation][1], and remote code is matched to your local files using [Source Code Integration][2].
+
+{{< img src="/ide_plugins/vscode/live_debugger_overview.mp4" alt="Overview of the Datadog Live Debugger activity" style="width:100%" video=true >}}
+
+## The Datadog Live Debugger activity
+
+The extension contributes a dedicated **Datadog Live Debugger** activity to the IDE sidebar with the following views:
+
+- **Sessions**: lists existing sessions and lets you activate, deactivate, delete, or refresh them, and open them in the Datadog UI. The view can be filtered to show only your sessions, only active sessions, and/or only sessions whose service repositories are open in the workspace.
+- **Logpoints**: lists the logpoints belonging to the selected session. From here you can enable, disable, edit, or delete a logpoint, jump to its source location, copy its ID or link, or open it in Datadog.
+- **Log Events**: shows recent log events generated by the selected logpoint. You can open events in the Datadog UI or use **Generate Unit Test** to turn captured runtime values into a unit test.
+- **Variables**: shows the variables captured for the selected log event as a searchable tree. You can copy values or jump to the variable's source location.
+- **Logpoint Editor**: a form used to create or edit a logpoint (service, environment, message template, condition, capture variables depth).
+
+## Source editor integration
+
+For lines that have a logpoint defined in the current session, the extension shows a status icon in the editor gutter and a code lens above the line.
+
+- Right-click the line number of any line of code and select **Datadog Live Debugger > Create Logpoint** to start creating a logpoint on that line.
+- For a line that already has a logpoint, the same submenu offers **Edit**, **Delete**, and either **Enable** or **Disable** depending on the logpoint's current state.
+- Click the code lens above the line to reveal the logpoint in the Live Debugger views.
+
+{{< img src="/ide_plugins/vscode/live_debugger_create.mp4" alt="Creating a logpoint from the line-number context menu" style="width:100%" video=true >}}
+
+## Creating a logpoint
+
+To add a logpoint, right-click the line number for a line of code in the source editor and select **Datadog Live Debugger > Create Logpoint**. The logpoint is added to the current session, or a new session is created if needed.
+
+The **Logpoint Editor** shows the following fields:
+
+- **Service** and **Environment**: target the service and environment where the logpoint runs. The list of services is filtered by the current file's language to show only compatible services.
+- **Message template**: descriptive text with variable references using the Dynamic Instrumentation expression language. The message is built from the runtime state immediately before the line of code is executed. Generated messages automatically pass through the Dynamic Instrumentation Sensitive Data Scanner.
+- **Condition** (optional): when defined, a log event is emitted only if the expression evaluates to `true`. Use it to capture events based on runtime state (for example, a particular user or transaction ID).
+- **Capture variables depth**: controls how deeply hierarchical data structures are traversed when capturing runtime values. Higher values provide more detail but require more capacity.
+
+The editor warns you when no service or environment matches the file's language, or when the remote service is associated with a different repository than the local workspace. You can still create the logpoint in those cases.
+
+### Local and remote versions
+
+The remote running code may be a different revision from the source you are editing. The extension uses Git commit information to map line numbers from your local file to the remote revision, so logpoints land on the correct line even if the remote is on a different commit. This requires your service to be tagged with Git information.
+
+Checking out locally the same revision that is running remotely shows you the same code in the IDE that is running in production, which simplifies the live debugging experience — but it is not required.
+
+## Editing, enabling, disabling, and deleting
+
+- **Edit**: right-click a logpoint in the editor or in the **Logpoints** view and select **Edit** to update its message template, condition, or capture depth. Changing the service or environment requires deleting the logpoint and creating a new one. Saving an edit also extends the expiration to 60 minutes.
+- **Enable / Disable**: toggle a logpoint or a whole session from the views or the line-number context menu. Re-enabling a logpoint extends its expiration to 60 minutes.
+- **Delete**: deleting a logpoint does not delete the events it has already generated. Deleting a session deletes all of its logpoints and cannot be undone. The extension asks for confirmation before deleting (you can suppress these prompts in the extension settings).
+
+The gutter icon reflects the current status of each logpoint:
+
+| Icon | Status | Meaning |
+|------|--------|---------|
+| {{< img src="/ide_plugins/vscode/probe_active_dark.png" alt="Active" style="width:16px; display:inline;" >}} | **Active** | The logpoint is installed and emits log events when the line of code is about to run. |
+| {{< img src="/ide_plugins/vscode/probe_warning_dark.png" alt="Warning" style="width:16px; display:inline;" >}} | **Warning** | The logpoint may not be generating events yet. This is shown when the backend has not processed a recent change (`WAITING`) or no tracer agents are reporting for the targeted service (`NO_AGENTS`). |
+| {{< img src="/ide_plugins/vscode/probe_error_dark.png" alt="Error" style="width:16px; display:inline;" >}} | **Error** | The logpoint is not generating events because of an error, or its status is unknown. |
+| {{< img src="/ide_plugins/vscode/probe_disabled_dark.png" alt="Disabled" style="width:16px; display:inline;" >}} | **Disabled** | The logpoint is inactive — either you disabled it manually or it has expired. |
+
+## Generate a unit test from a log event
+
+From the **Log Events** view, the **Generate Unit Test** action sends the runtime values captured by a logpoint (variables and arguments) to the chat agent with a prompt to produce a unit test that reproduces the captured state. This is useful to turn a real production event into a regression test.
+
+{{< img src="/ide_plugins/vscode/live_debugger_test_with_ai.mp4" alt="Creating a unit test from Live Debugger-captured runtime values" style="width:100%" video=true >}}
+
+## Further reading
+
+{{< partial name="whats-next/whats-next.html" >}}
+
+[1]: /dynamic_instrumentation/
+[2]: /integrations/guide/source-code-integration/
diff --git a/static/images/ide_plugins/vscode/live_debugger_create.mp4 b/static/images/ide_plugins/vscode/live_debugger_create.mp4
new file mode 100644
index 00000000000..6beab5d4ece
Binary files /dev/null and b/static/images/ide_plugins/vscode/live_debugger_create.mp4 differ
diff --git a/static/images/ide_plugins/vscode/live_debugger_overview.mp4 b/static/images/ide_plugins/vscode/live_debugger_overview.mp4
new file mode 100644
index 00000000000..b4285927594
Binary files /dev/null and b/static/images/ide_plugins/vscode/live_debugger_overview.mp4 differ
diff --git a/static/images/ide_plugins/vscode/live_debugger_test_with_ai.mp4 b/static/images/ide_plugins/vscode/live_debugger_test_with_ai.mp4
new file mode 100644
index 00000000000..746a53d0d4e
Binary files /dev/null and b/static/images/ide_plugins/vscode/live_debugger_test_with_ai.mp4 differ
diff --git a/static/images/ide_plugins/vscode/probe_active_dark.png b/static/images/ide_plugins/vscode/probe_active_dark.png
new file mode 100644
index 00000000000..a4062fa978e
Binary files /dev/null and b/static/images/ide_plugins/vscode/probe_active_dark.png differ
diff --git a/static/images/ide_plugins/vscode/probe_disabled_dark.png b/static/images/ide_plugins/vscode/probe_disabled_dark.png
new file mode 100644
index 00000000000..76a2b55cd73
Binary files /dev/null and b/static/images/ide_plugins/vscode/probe_disabled_dark.png differ
diff --git a/static/images/ide_plugins/vscode/probe_error_dark.png b/static/images/ide_plugins/vscode/probe_error_dark.png
new file mode 100644
index 00000000000..f16d0d0f854
Binary files /dev/null and b/static/images/ide_plugins/vscode/probe_error_dark.png differ
diff --git a/static/images/ide_plugins/vscode/probe_warning_dark.png b/static/images/ide_plugins/vscode/probe_warning_dark.png
new file mode 100644
index 00000000000..40587a9bfb8
Binary files /dev/null and b/static/images/ide_plugins/vscode/probe_warning_dark.png differ