diff --git a/internal/arduino/cores/packagemanager/package_manager.go b/internal/arduino/cores/packagemanager/package_manager.go
index 667c62870ec..cea5e799d1b 100644
--- a/internal/arduino/cores/packagemanager/package_manager.go
+++ b/internal/arduino/cores/packagemanager/package_manager.go
@@ -33,6 +33,7 @@ import (
 	"github.com/arduino/arduino-cli/internal/arduino/cores/packageindex"
 	"github.com/arduino/arduino-cli/internal/arduino/discovery/discoverymanager"
 	"github.com/arduino/arduino-cli/internal/arduino/sketch"
+	"github.com/arduino/arduino-cli/internal/cli/configuration"
 	"github.com/arduino/arduino-cli/internal/i18n"
 	paths "github.com/arduino/go-paths-helper"
 	properties "github.com/arduino/go-properties-orderedmap"
@@ -83,7 +84,7 @@ func NewBuilder(indexDir, packagesDir, downloadDir, tempDir *paths.Path, userAge
 		DownloadDir:                    downloadDir,
 		tempDir:                        tempDir,
 		packagesCustomGlobalProperties: properties.NewMap(),
-		discoveryManager:               discoverymanager.New(),
+		discoveryManager:               discoverymanager.New(configuration.UserAgent(configuration.Settings)),
 		userAgent:                      userAgent,
 	}
 }
diff --git a/internal/arduino/discovery/discovery_client/main.go b/internal/arduino/discovery/discovery_client/main.go
index 98890c9b31f..b1e461d123c 100644
--- a/internal/arduino/discovery/discovery_client/main.go
+++ b/internal/arduino/discovery/discovery_client/main.go
@@ -32,7 +32,7 @@ func main() {
 		os.Exit(1)
 	}
 	logrus.SetLevel(logrus.ErrorLevel)
-	dm := discoverymanager.New()
+	dm := discoverymanager.New("discovery_client/1.0.0")
 	for _, discCmd := range os.Args[1:] {
 		dm.Add(discCmd, discCmd)
 	}
diff --git a/internal/arduino/discovery/discoverymanager/discoverymanager.go b/internal/arduino/discovery/discoverymanager/discoverymanager.go
index 831a332545f..2651e9b524f 100644
--- a/internal/arduino/discovery/discoverymanager/discoverymanager.go
+++ b/internal/arduino/discovery/discoverymanager/discoverymanager.go
@@ -21,7 +21,6 @@ import (
 	"sync"
 	"time"
 
-	"github.com/arduino/arduino-cli/internal/cli/configuration"
 	"github.com/arduino/arduino-cli/internal/i18n"
 	discovery "github.com/arduino/pluggable-discovery-protocol-handler/v2"
 	"github.com/sirupsen/logrus"
@@ -41,17 +40,19 @@ type DiscoveryManager struct {
 	watchersMutex      sync.Mutex
 	watchers           map[*PortWatcher]bool                  // all registered Watcher
 	watchersCache      map[string]map[string]*discovery.Event // this is a cache of all active ports
+	userAgent          string
 }
 
 var tr = i18n.Tr
 
 // New creates a new DiscoveryManager
-func New() *DiscoveryManager {
+func New(userAgent string) *DiscoveryManager {
 	return &DiscoveryManager{
 		discoveries:   map[string]*discovery.Client{},
 		watchers:      map[*PortWatcher]bool{},
 		feed:          make(chan *discovery.Event, 50),
 		watchersCache: map[string]map[string]*discovery.Event{},
+		userAgent:     userAgent,
 	}
 }
 
@@ -121,7 +122,7 @@ func (dm *DiscoveryManager) Start() []error {
 func (dm *DiscoveryManager) Add(id string, args ...string) error {
 	d := discovery.NewClient(id, args...)
 	d.SetLogger(logrus.WithField("discovery", id))
-	d.SetUserAgent(configuration.UserAgent(configuration.Settings))
+	d.SetUserAgent(dm.userAgent)
 	return dm.add(d)
 }