diff --git a/packages/devtools_app/lib/src/extensions/embedded/view.dart b/packages/devtools_app/lib/src/extensions/embedded/view.dart
index e919785..51d64fe 100644
--- a/packages/devtools_app/lib/src/extensions/embedded/view.dart
+++ b/packages/devtools_app/lib/src/extensions/embedded/view.dart
@@ -8,6 +8,7 @@
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
 import '../../shared/globals.dart';
+import '../../shared/utils.dart';
 import '_view_desktop.dart' if (dart.library.js_interop) '_view_web.dart';
 import 'controller.dart';
 
diff --git a/packages/devtools_app/lib/src/extensions/extension_screen.dart b/packages/devtools_app/lib/src/extensions/extension_screen.dart
index 22a3a46..ce412f9 100644
--- a/packages/devtools_app/lib/src/extensions/extension_screen.dart
+++ b/packages/devtools_app/lib/src/extensions/extension_screen.dart
@@ -12,6 +12,7 @@
 import '../shared/common_widgets.dart';
 import '../shared/globals.dart';
 import '../shared/screen.dart';
+import '../shared/utils.dart';
 import 'embedded/controller.dart';
 import 'embedded/view.dart';
 import 'extension_screen_controls.dart';
diff --git a/packages/devtools_app/lib/src/framework/disconnect_observer.dart b/packages/devtools_app/lib/src/framework/disconnect_observer.dart
index 9b2152e..bb4edb9 100644
--- a/packages/devtools_app/lib/src/framework/disconnect_observer.dart
+++ b/packages/devtools_app/lib/src/framework/disconnect_observer.dart
@@ -16,6 +16,7 @@
 import '../shared/globals.dart';
 import '../shared/query_parameters.dart';
 import '../shared/routing.dart';
+import '../shared/utils.dart';
 
 class DisconnectObserver extends StatefulWidget {
   const DisconnectObserver({
diff --git a/packages/devtools_app/lib/src/framework/release_notes/release_notes.dart b/packages/devtools_app/lib/src/framework/release_notes/release_notes.dart
index 35f58be..9b8a716 100644
--- a/packages/devtools_app/lib/src/framework/release_notes/release_notes.dart
+++ b/packages/devtools_app/lib/src/framework/release_notes/release_notes.dart
@@ -5,7 +5,6 @@
 import 'dart:async';
 import 'dart:convert';
 
-import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:devtools_shared/devtools_shared.dart';
 import 'package:flutter/material.dart';
diff --git a/packages/devtools_app/lib/src/framework/scaffold.dart b/packages/devtools_app/lib/src/framework/scaffold.dart
index b9b7a27..cd866e4 100644
--- a/packages/devtools_app/lib/src/framework/scaffold.dart
+++ b/packages/devtools_app/lib/src/framework/scaffold.dart
@@ -23,6 +23,7 @@
 import '../shared/routing.dart';
 import '../shared/screen.dart';
 import '../shared/title.dart';
+import '../shared/utils.dart';
 import 'about_dialog.dart';
 import 'app_bar.dart';
 import 'report_feedback_button.dart';
diff --git a/packages/devtools_app/lib/src/framework/settings_dialog.dart b/packages/devtools_app/lib/src/framework/settings_dialog.dart
index 4d710e5..a5f1e1c 100644
--- a/packages/devtools_app/lib/src/framework/settings_dialog.dart
+++ b/packages/devtools_app/lib/src/framework/settings_dialog.dart
@@ -5,16 +5,17 @@
 import 'dart:async';
 
 import 'package:devtools_app_shared/ui.dart';
-import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
 
 import '../shared/analytics/analytics_controller.dart';
 import '../shared/analytics/constants.dart' as gac;
 import '../shared/common_widgets.dart';
+import '../shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 import '../shared/globals.dart';
 import '../shared/log_storage.dart';
 import '../shared/server/server.dart';
+import '../shared/utils.dart';
 
 class OpenSettingsAction extends ScaffoldAction {
   OpenSettingsAction({super.key, super.color})
@@ -112,8 +113,7 @@
                   _minScreenWidthForTextBeforeScaling,
               onPressed: () async => await copyToClipboard(
                 LogStorage.root.toString(),
-                onSuccess: () =>
-                    notificationService.push('Successfully copied logs'),
+                'Successfully copied logs',
               ),
             ),
             const SizedBox(width: denseSpacing),
diff --git a/packages/devtools_app/lib/src/screens/network/network_screen.dart b/packages/devtools_app/lib/src/screens/network/network_screen.dart
index 1a0a72e..12e0d3a 100644
--- a/packages/devtools_app/lib/src/screens/network/network_screen.dart
+++ b/packages/devtools_app/lib/src/screens/network/network_screen.dart
@@ -13,6 +13,7 @@
 import '../../shared/analytics/analytics.dart' as ga;
 import '../../shared/analytics/constants.dart' as gac;
 import '../../shared/common_widgets.dart';
+import '../../shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 import '../../shared/globals.dart';
 import '../../shared/http/curl_command.dart';
 import '../../shared/http/http_request_data.dart';
@@ -436,8 +437,7 @@
             unawaited(
               copyToClipboard(
                 data.uri,
-                onSuccess: () =>
-                    notificationService.push('Copied the URL to the clipboard'),
+                'Copied the URL to the clipboard',
               ),
             );
           },
@@ -448,8 +448,7 @@
             unawaited(
               copyToClipboard(
                 CurlCommand.from(data).toString(),
-                onSuccess: () => notificationService
-                    .push('Copied the cURL command to the clipboard'),
+                'Copied the cURL command to the clipboard',
               ),
             );
           },
diff --git a/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart b/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart
index 4dba24e..244be3d 100644
--- a/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart
+++ b/packages/devtools_app/lib/src/shared/analytics/_analytics_web.dart
@@ -10,7 +10,6 @@
 import 'dart:async';
 import 'dart:js_interop';
 
-import 'package:devtools_app_shared/ui.dart';
 import 'package:flutter/foundation.dart';
 import 'package:logging/logging.dart';
 import 'package:unified_analytics/unified_analytics.dart' as ua;
diff --git a/packages/devtools_app/lib/src/shared/common_widgets.dart b/packages/devtools_app/lib/src/shared/common_widgets.dart
index d2a50d9..bd79b49 100644
--- a/packages/devtools_app/lib/src/shared/common_widgets.dart
+++ b/packages/devtools_app/lib/src/shared/common_widgets.dart
@@ -16,6 +16,7 @@
 import '../screens/debugger/debugger_controller.dart';
 import 'analytics/analytics.dart' as ga;
 import 'analytics/constants.dart' as gac;
+import 'config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 import 'console/widgets/expandable_variable.dart';
 import 'diagnostics/dart_object_node.dart';
 import 'diagnostics/tree_builder.dart';
@@ -1177,8 +1178,7 @@
                             .serviceManager.service!.fakeServiceCache
                             .instanceToJson(copiedVariable.value as Instance),
                       ),
-                      onSuccess: () =>
-                          notificationService.push('JSON copied to clipboard'),
+                      'JSON copied to clipboard',
                     ),
                   );
                 },
@@ -1414,12 +1414,7 @@
               ga.select(gaScreen!, gaItem!);
             }
             unawaited(
-              copyToClipboard(
-                dataProvider!() ?? '',
-                onSuccess: successMessage != null
-                    ? () => notificationService.push(successMessage!)
-                    : null,
-              ),
+              copyToClipboard(dataProvider!() ?? '', successMessage),
             );
           };
     final size = this.size ?? defaultIconSize;
diff --git a/packages/devtools_app_shared/lib/src/utils/copy_to_clipboard/_copy_to_clipboard_desktop.dart b/packages/devtools_app/lib/src/shared/config_specific/copy_to_clipboard/_copy_to_clipboard_desktop.dart
similarity index 100%
rename from packages/devtools_app_shared/lib/src/utils/copy_to_clipboard/_copy_to_clipboard_desktop.dart
rename to packages/devtools_app/lib/src/shared/config_specific/copy_to_clipboard/_copy_to_clipboard_desktop.dart
diff --git a/packages/devtools_app_shared/lib/src/utils/copy_to_clipboard/_copy_to_clipboard_web.dart b/packages/devtools_app/lib/src/shared/config_specific/copy_to_clipboard/_copy_to_clipboard_web.dart
similarity index 100%
rename from packages/devtools_app_shared/lib/src/utils/copy_to_clipboard/_copy_to_clipboard_web.dart
rename to packages/devtools_app/lib/src/shared/config_specific/copy_to_clipboard/_copy_to_clipboard_web.dart
diff --git a/packages/devtools_app_shared/lib/src/utils/copy_to_clipboard/copy_to_clipboard.dart b/packages/devtools_app/lib/src/shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart
similarity index 79%
rename from packages/devtools_app_shared/lib/src/utils/copy_to_clipboard/copy_to_clipboard.dart
rename to packages/devtools_app/lib/src/shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart
index fc1835f..1b2a343 100644
--- a/packages/devtools_app_shared/lib/src/utils/copy_to_clipboard/copy_to_clipboard.dart
+++ b/packages/devtools_app/lib/src/shared/config_specific/copy_to_clipboard/copy_to_clipboard.dart
@@ -5,7 +5,8 @@
 import 'package:flutter/services.dart';
 import 'package:logging/logging.dart';
 
-import '../../ui/ui_utils.dart';
+import '../../globals.dart';
+import '../../utils.dart';
 import '_copy_to_clipboard_desktop.dart'
     if (dart.library.js_interop) '_copy_to_clipboard_web.dart';
 
@@ -18,23 +19,24 @@
 /// attempts to post the [data] to the parent frame where the parent frame will
 /// try to complete the copy (this fallback will only work in VSCode).
 Future<void> copyToClipboard(
-  String data, {
-  void Function()? onSuccess,
-}) async {
+  String data,
+  String? successMessage,
+) async {
   try {
     await Clipboard.setData(
       ClipboardData(
         text: data,
       ),
     );
-    onSuccess?.call();
+
+    if (successMessage != null) notificationService.push(successMessage);
   } catch (e) {
     if (isEmbedded()) {
       _log.warning(
-        'Copy failed. This may be as a result of a known bug in VS Code. '
+        'DevTools copy failed. This may be as a result of a known bug in VSCode. '
         'See https://github.com/Dart-Code/Dart-Code/issues/4540 for more '
-        'information. Now attempting to use a fallback method of copying the '
-        'that is a workaround for VS Code only.',
+        'information. DevTools will now attempt to use a fallback method of '
+        'copying the contents.',
       );
       // Trying to use Clipboard.setData to copy in vscode will not work as a
       // result of a bug. So we should fallback to `copyToClipboardVSCode` which
diff --git a/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart b/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
index 7e0299e..26fa83f 100644
--- a/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
+++ b/packages/devtools_app/lib/src/shared/diagnostics/inspector_service.dart
@@ -13,7 +13,6 @@
 
 import 'package:devtools_app_shared/service.dart';
 import 'package:devtools_app_shared/service_extensions.dart';
-import 'package:devtools_app_shared/ui.dart';
 import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/foundation.dart';
diff --git a/packages/devtools_app/lib/src/shared/dialogs.dart b/packages/devtools_app/lib/src/shared/dialogs.dart
index 169d300..c5a0607 100644
--- a/packages/devtools_app/lib/src/shared/dialogs.dart
+++ b/packages/devtools_app/lib/src/shared/dialogs.dart
@@ -5,9 +5,9 @@
 import 'dart:async';
 
 import 'package:devtools_app_shared/ui.dart';
-import 'package:devtools_app_shared/utils.dart';
 import 'package:flutter/material.dart';
 
+import 'config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 import 'globals.dart';
 import 'utils.dart';
 
@@ -36,8 +36,7 @@
           onPressed: () => unawaited(
             copyToClipboard(
               additionalInfo,
-              onSuccess: () =>
-                  notificationService.push('Error details copied to clipboard'),
+              'Error details copied to clipboard',
             ),
           ),
         ),
diff --git a/packages/devtools_app/lib/src/shared/editable_list.dart b/packages/devtools_app/lib/src/shared/editable_list.dart
index dbd8cc6..42fc44d 100644
--- a/packages/devtools_app/lib/src/shared/editable_list.dart
+++ b/packages/devtools_app/lib/src/shared/editable_list.dart
@@ -10,7 +10,7 @@
 import 'package:flutter/material.dart';
 
 import 'common_widgets.dart';
-import 'globals.dart';
+import 'config_specific/copy_to_clipboard/copy_to_clipboard.dart';
 
 /// A widget that displays the contents of [entries].
 ///
@@ -276,12 +276,7 @@
       icon: Icons.copy_outlined,
       outlined: false,
       onPressed: () {
-        unawaited(
-          copyToClipboard(
-            value,
-            onSuccess: () => notificationService.push('Copied to clipboard.'),
-          ),
-        );
+        unawaited(copyToClipboard(value, 'Copied to clipboard.'));
       },
     );
   }
diff --git a/packages/devtools_app/lib/src/shared/utils.dart b/packages/devtools_app/lib/src/shared/utils.dart
index 541287f..e833b47 100644
--- a/packages/devtools_app/lib/src/shared/utils.dart
+++ b/packages/devtools_app/lib/src/shared/utils.dart
@@ -39,6 +39,10 @@
   );
 }
 
+/// Whether DevTools is in embedded mode, as determined by the [ideTheme] parsed
+/// from query parameters.
+bool isEmbedded() => ideTheme.embedded;
+
 /// Whether DevTools is using a dark theme.
 ///
 /// When DevTools is in embedded mode, we first check if the [ideTheme] has
diff --git a/packages/devtools_app_shared/CHANGELOG.md b/packages/devtools_app_shared/CHANGELOG.md
index 5946e3a..2d4a683 100644
--- a/packages/devtools_app_shared/CHANGELOG.md
+++ b/packages/devtools_app_shared/CHANGELOG.md
@@ -6,7 +6,6 @@
 * Add `caseInsensitiveFuzzyMatch` extension method on `String`.
 * Add common widgets `DevToolsClearableTextField`, `InputDecorationSuffixButton`,
 and `RoundedDropDownButton`.
-* Add `copyToClipboard` and `isEmbedded` utility methods.
 * Deprecate `ServiceManager.hasConnection` in favor of
 `ServiceManager.connectedState.value.connected`.
 * Correct the dartdoc for the `ListValueNotifier` class.
diff --git a/packages/devtools_app_shared/lib/src/ui/ui_utils.dart b/packages/devtools_app_shared/lib/src/ui/ui_utils.dart
index 2e66d16..cff4a29 100644
--- a/packages/devtools_app_shared/lib/src/ui/ui_utils.dart
+++ b/packages/devtools_app_shared/lib/src/ui/ui_utils.dart
@@ -5,10 +5,6 @@
 import '../utils/globals.dart';
 import 'theme/ide_theme.dart';
 
-/// Whether DevTools is in embedded mode, as determined by the [ideTheme] parsed
-/// from query parameters.
-bool isEmbedded() => ideTheme.embedded;
-
 IdeTheme get ideTheme {
   final theme = globals[IdeTheme];
   if (theme == null) {
diff --git a/packages/devtools_app_shared/lib/utils.dart b/packages/devtools_app_shared/lib/utils.dart
index 6568b0e..f44804b 100644
--- a/packages/devtools_app_shared/lib/utils.dart
+++ b/packages/devtools_app_shared/lib/utils.dart
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 export 'src/utils/auto_dispose.dart';
-export 'src/utils/copy_to_clipboard/copy_to_clipboard.dart';
 export 'src/utils/globals.dart';
 export 'src/utils/list.dart';
 export 'src/utils/url/url.dart';
