diff --git a/i18n/data/ar.po b/i18n/data/ar.po
index 56c72d8c337..64c0fec07e8 100644
--- a/i18n/data/ar.po
+++ b/i18n/data/ar.po
@@ -11,7 +11,7 @@ msgstr ""
 "Language: ar\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr "%[1]s %[2]s النسخة : %[3]s commit : %[4]s التاريخ : %[5]s"
 
@@ -23,7 +23,7 @@ msgstr "الملف %[1]s اصبح غير مدعوما! راجع %[2]s للمزي
 msgid "%[1]s invalid, rebuilding all"
 msgstr "%[1]s غير صالح . جار اعادة بناء كل شيء"
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr "%[1]s مطلوب و لكن %[2]s مثبت حاليا"
 
@@ -47,7 +47,7 @@ msgstr "%[1]s , المنافذ : %[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, نسخة البوتوكول : %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "تم تنزيل %s مسبقا"
 
@@ -59,7 +59,7 @@ msgstr "%s و %s لا يمكن استخدامهما معا"
 msgid "%s installed"
 msgstr "%s تم تثبيته بنجاح"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%s مثبت مسبقا"
 
@@ -72,7 +72,7 @@ msgstr "%s ليس مسارا صحيحا"
 msgid "%s is not managed by package manager"
 msgstr "%s غير مدار بواسطة مدير الحزمات"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "يجب تثبيت %s"
 
@@ -84,7 +84,7 @@ msgstr "%s النسق مفقود"
 msgid "'%s' has an invalid signature"
 msgstr "'%s' لديه توقيع غير صحيح"
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(مخفي)"
 
@@ -92,7 +92,7 @@ msgstr "(مخفي)"
 msgid "(legacy)"
 msgstr "(الشكل القديم)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
@@ -100,7 +100,7 @@ msgstr ""
 "مسارات --git url و zip-path-- غير مفعلة افتراضيا . للمزيد من المعلومات راجع "
 ": %v"
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
@@ -108,7 +108,11 @@ msgstr ""
 "flags الخاصة ب --git-url و --zip-path تسمح بتثبيت ملفات غير موثوقة , "
 "استخدمها على مسؤوليتك الخاصة"
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr "نسخة جديدة من CLI متوافرة "
 
@@ -116,32 +120,32 @@ msgstr "نسخة جديدة من CLI متوافرة "
 msgid "A programmer is required to upload"
 msgstr "عليك وصل مبرمجة للرفع"
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr "ARCH"
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr "دليل استخدام سطر موجه الاوامر للاردوينو"
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr "مواضيع مساعدة اضافية :"
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr "اضافة قيمة او اكثر الى احد الاعدادات"
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr "كل الانوية محدثة باخر اصدار مسبقا"
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr "%s مثبت مسبقا"
 
@@ -157,17 +161,17 @@ msgstr "حدث خطأ اثناء اضافة النماذج الاولية"
 msgid "An error occurred detecting libraries"
 msgstr "حدث خطأ اثناء الكشف عن المكتبات"
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 "الحاق سجل التصحيح الى الملف المحدد (Append debug logging to the specified "
 "file)"
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "المعمارية : %s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr "الارشيف موجود مسبقا"
 
@@ -175,55 +179,51 @@ msgstr "الارشيف موجود مسبقا"
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "جار ارشفة built core (caching) في : %[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr "اوامر مشروع Arduino CLI"
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI"
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr "واجهة موجه سطر الاوامر للاردوينو (Arduino CLI)"
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr "اوامر لوحات الاردوينو"
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr "اوامر cache الخاصة بالاردوينو"
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr "اوامر الاردوينو المتعلقة بالمكتبات"
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr "تهيئة الاردوينو"
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr "عمليات نواة الاردوينو (Arduino core operations)"
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr "المؤلف : %s"
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -235,32 +235,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr "متوفر"
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr "الاوامر المتوفرة"
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr "الملف الثنائي (Binary file) الذي تريد رفعه"
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr "اسم اللوحة"
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr "تم ايجاد اللوحة : %s"
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr "اسم اللوحة"
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr "نسخة اللوحة :"
 
@@ -268,16 +264,12 @@ msgstr "نسخة اللوحة :"
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "ملف محمل الإقلاع (Bootloader) تم تحدديده لكنه مفقود:  %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 "Builds الخاصة ب 'core.a' تحفظ في هذا المسار و سيتم وضعها في الكاش و سيعاد "
 "استخدامها"
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr "تعذر انشاء مسار البيانات %s"
@@ -286,7 +278,7 @@ msgstr "تعذر انشاء مسار البيانات %s"
 msgid "Can't create sketch"
 msgstr "تعذر انشاء المشروع"
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr "تعذر تنزيل المكتبة"
 
@@ -299,31 +291,36 @@ msgstr "تعذر ايجاد التبعيات للمنصة %s"
 msgid "Can't open sketch"
 msgstr "تعذر فتح المشروع"
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr "تعذر وضع عدة قيم في المفتاح %v"
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
-msgstr "تعذر استخدام اعلام (flags) %s في نفس الوقت"
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
+msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr "تعذر كتابة ملف التهيئة : %v"
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr "تعذر انشاء مجلد لل \"build cache\""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr "تعذر انشاء مسار البناء"
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr "تعذر انشاء مسار ملف التهيئة : %v"
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr "تعذر انشاء ملف التهيئة : %v"
 
@@ -339,11 +336,7 @@ msgstr "تعذر انشاء ملف temp"
 msgid "Cannot execute debug tool"
 msgstr "تعذر تشغيل اداة debug"
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr "تعذر تصدير البيانات الوصفية -metadata- للمشروع "
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr "تعذر ايجاد المسار المطلق : %v"
 
@@ -363,56 +356,52 @@ msgstr "تعذر اجراء اعادة تشغيل المنفذ : %s"
 msgid "Cannot upgrade platform"
 msgstr "تعذر تحديث المنصة"
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr "الفئة : %s"
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr "التحقق من حالة التبعيات (dependencies) للمكتبة المختارة"
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr "جار التحقق من المتطلبات الاساسية لتثبيت المكتبات"
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 "المجموع الاختباري (Checksum) لا يتطابق مع المجموع الاختباري (checksum) "
 "الموجود في package.json "
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr "المجموع الاختباري (Checksum) :"
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr "تنظيف cache"
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 "قائمة يفصل بين محتوياتها فاصلة تحوي عناوين URL الاضافية لمدير اللوحات "
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr "الامر يبقى قيد التشغيل و يطبع قائمة للوحات المتصلة عندما يوجد تغيير"
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr "المشروع المترجم لم يتم ايجاده في %s"
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr "يترجم مشاريع الاردوينو"
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr "يتم ترجمة النواة"
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr "يتم ترجمة المكتبات"
 
@@ -420,25 +409,25 @@ msgstr "يتم ترجمة المكتبات"
 msgid "Compiling library \"%[1]s\""
 msgstr "يتم ترجمة المكتبة \"%[1]s\""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "ترجمة الشيفرة البرمجية..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 "ملف التهيئة موجود مسبقا , استخدم --overwrite للتخلص من الملف الموجود مسبقا"
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr "تمت كتابة ملف التهيئة في : %s"
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr "تهيئة المنفذ"
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr "اعدادات التهيئة ل %s"
 
@@ -446,19 +435,19 @@ msgstr "اعدادات التهيئة ل %s"
 msgid "Configuring platform."
 msgstr "جار تهيئة المنصة"
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr "متصل"
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr "متصل الى %s ! اضغط CTRL-C للخروج"
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr "النواة"
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr "تعذر الاتصال بواسطة HTTP"
 
@@ -474,23 +463,23 @@ msgstr "تعذر القيام بـ deeply cache لــ core build : %[1]s"
 msgid "Couldn't determine program size"
 msgstr "تعذر معرفة حجم البرنامج"
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr "تعذر ايجاد المسار الحالي %v"
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr "انشاء مشروع جديد"
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr "انشاء و طباعة اعدادات البروفايل من البناء (build)"
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr "انشاء ملف zip يحوي كل ملفات المشروع"
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
@@ -498,7 +487,7 @@ msgstr ""
 "انشاء او تحديث ملف التهيئة في مسار البيانات او في مسار مخصص مع اعدادات "
 "التهيئة الحالية"
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
@@ -506,119 +495,128 @@ msgstr ""
 "في الوقت الحالي , بروفايلات البناء (Build Profiles) تدعم حصرا المكتبات "
 "المتوافرة في مدير المكتبات للاردوينو (Arduino Library Manager)"
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr "مهملة (غير موصى باستخدامها)"
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr "Daemon يقوم بالاستماع على %s : %s"
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr "تصحيح مشاريع الاردوينو"
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr "مترجم التصحيح على سبيل المثال : %s"
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr "تصحيح الاخطاء (Debugging) غير مدعوم للوحة %s"
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr "تصحيح الاخطاء (Debugging) مدعوم :"
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "إفتراضي"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr "حذف كاش التحميلات (download cache) الخاص بمدير اللوحات/المكتبات"
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr "حذف مفتاح الاعدادات و كل مفاتيحه الفرعية"
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr "تبعيات : %s"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr "الوصف"
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr "الكشف عن المكتبات المستخدمة ..."
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr "تكتشف و تعرض قائمة اللوحات المتصلة الى هذا الكومبيوتر"
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr "المسار الذي يحوي الملفات الثنائية للتصحيح"
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr "المجلد الذي يحوي الملفات الثنائية (binaries) التي سيتم رفعها"
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr "قطع الاتصال"
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr "عدم تثبيت التبعيات (dependencies)"
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr "لا تقم بالرفع , فقط قم بتسجيل الاحداث"
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 "عدم انهاء عمليات daemon في حال تم انهاء العملية الام (Do not terminate "
 "daemon process if the parent process dies)"
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr "يتم تنزيل %s"
 
@@ -651,28 +649,28 @@ msgstr "جار تحميل المنصة %s"
 msgid "Downloading tool %s"
 msgstr "جار تحميل الاداة"
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr "يقوم بتنزيل نواة او اكثر و ادواتها التابعة لها"
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr "يقوم بتنزيل مكتبة او اكثر بدون تثبيتها"
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr "ادخل مسار لملف zip"
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 "ادخل عنوان git URL الخاص بالمكتبات المستضافة على المستودعات (repositories)"
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 "خطأ اثناء اضافة الملف لارشيف المشروع (Error adding file to sketch archive)"
@@ -681,45 +679,45 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr "خطا اثناء ارشفة built core (caching) في %[1]s : %[2]s"
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr "خطا اثناء ارشفة :%v"
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 "خطا اثناء حساب مسار الملف النسبي (Error calculating relative file path)"
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr "خطأ اثناء تنظيف الكاش : %v"
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr "خطا اثناء نسخ ملف الخرج %s"
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr "خطا اثناء انشاء النسخة %v"
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr "خطا اثناء انشاء مسار الخرج"
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr "خطا اثناء انشاء ارشيف المشروع"
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr "خطأ اثناء انشاء المشروع : %v"
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr "خطا اثناء البحث عن اللوحات : %v"
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr "خطا اثناء تحميل %[1]s : %[2]v"
 
@@ -752,42 +750,42 @@ msgstr "خطأ اثناء تنزيل المنصة %s"
 msgid "Error downloading tool %s"
 msgstr "خطا اثناء تنزيل الاداة %s"
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr "خطا اثناء التصحيح : %v"
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr "خطا اثناء اكتشاف FBQN : %v"
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr "خطا اثناء ترميز JSON الخاص بالخرج : %v"
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr "خطا اثناء الرفع : %v"
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr "خطأ اثناء القيام بYAML econding للخرج : %v"
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr "خطأ اثناء بناء : %v"
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr "خطأ اثناء تثبيت : %v"
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr "خطأ اثناء الغاء تثبيت : %v"
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr "خطا اثناء تطوير : %v"
 
@@ -799,7 +797,7 @@ msgstr "خطأ اثناء استخراج %s"
 msgid "Error finding build artifacts"
 msgstr "خطا اثناء البحث عن build artifacts"
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr "خطأ اثناء الحصول على معلومات التصحيح %v"
 
@@ -809,49 +807,49 @@ msgstr ""
 "خطا اثناء جلب المسار النسبي لارشيف المشروع (Error getting absolute path of "
 "sketch archive)"
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr "خطأ اثناء الحصول على معلومات اللوحة %v"
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr "خطأ اثناء الحصول من Arduino CLOUD"
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr "خطأ اثناء الحصول على المسار الحالي من اجل قاعدة بيانات الترجمة %s"
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr "خطأ  اثناء الحصول على المعلومات للمكتبة %s"
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr "خطا اثناء جلب بيانات المكتبة : %v"
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr "خطأ اثناء جلب البيانات الوصفية (metadata) للمنفذ : %v"
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 "خطأ اثناء الحصول على بيانات اعدادات المنفذ (port settings details) : %s"
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr "خطأ اثناء تثبيت %v:%s"
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr "خطأ اثناء تثبيت مكتبة GIT : %v"
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr "خطأ اثناء تثبيت مكتبة ZIP : %v"
 
@@ -870,15 +868,15 @@ msgstr "خطأ اثناء تثبيت المنصة %s"
 msgid "Error installing tool %s"
 msgstr "خطأ اثناء تثبيت الاداة %s"
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
-msgstr "خطا اثناء انشاء قائمة المكتبات : %v"
-
-#: cli/board/listall.go:64
+#: internal/cli/board/listall.go:63
 msgid "Error listing boards: %v"
 msgstr "خطا اثناء انشاء قائمة باللوحات : %v"
 
-#: cli/core/list.go:64
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
+msgstr ""
+
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr "خطأ اثناء انشاء قائمة تحوي جميع المنصات : %v"
 
@@ -899,19 +897,19 @@ msgstr "خطأ اثناء تحميل الفهرس %s"
 msgid "Error opening %s"
 msgstr "خطأ اثناء فتح %s"
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr "تعذر فتح الملف الذي يحوي سجلات التصحيح (debug logging file) : %s"
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr "خطأ اثناء فتح المشروع : %v"
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr "خطا اثناء فتح الكود المصدر الذي يتجاوز ملف البيانات : %v"
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr "خطا اثناء قراءة مسار البناء"
 
@@ -919,7 +917,7 @@ msgstr "خطا اثناء قراءة مسار البناء"
 msgid "Error reading config file: %v"
 msgstr "خطا اثناء قراءة ملف التهيئة : %v"
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr "خطا اثناء قراءة ملفات المشروع"
 
@@ -927,11 +925,11 @@ msgstr "خطا اثناء قراءة ملفات المشروع"
 msgid "Error resolving FQBN"
 msgstr "خطا اثناء resolving FQBN"
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr "خطا اثناء حل التبعيات ل %[1]s:%[2]s"
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr "خطا اثناء استعادة قائمة النواة : %v"
 
@@ -948,15 +946,19 @@ msgid "Error saving downloaded index signature"
 msgstr ""
 "خطأ اثناء حفظ توقيع الفهرس الذي تم تحميله (downloaded index signature)"
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr "خطا اثناء البحث عن اللوحات : %v"
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr "خطأ اثناء البحث عن المنصة : %v"
 
@@ -966,23 +968,23 @@ msgstr ""
 "تعذر القيام بسلسلة قاعدة بيانات الترجمة (Error serializing compilation "
 "database) : %s"
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr "خطا اثناء الغاء تثبيت %[1]s: %[2]v"
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr "خطا اثناء تحديث الفهارس : %v"
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr "خطا اثناء تحديث فهرس المكتبات : %v"
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -1008,40 +1010,41 @@ msgstr "خطأ اثناء تحديد حجم المشروع : %s"
 msgid "Error writing compilation database: %s"
 msgstr "خطأ اثناء كتابة قاعدة بيانات الترجمة (compilation database) : %s"
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr "خطأ : وصف الامر غير مدعوم من قبل %v"
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr "خطأ : كود مصدري خاطئ سيقوم بالكتابة فوق ملف البيانات : %v"
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr "الحدث"
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr "الامثلة للمكتبة %s"
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr "الامثلة : "
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr "الملف التنفيذي الذي سيتم تصحيحه (Executable to debug)"
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr "توقعت وجود المشروع المترجم في المسار %s . لكنني وجدت ملفا بدلا عن ذلك"
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr "FQBN"
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr "FQBN:"
 
@@ -1049,10 +1052,6 @@ msgstr "FQBN:"
 msgid "Failed chip erase"
 msgstr "فشل محي الشريحة"
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr "خطا اثناء اختيار المنفذ . عنوانه : %s"
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr "فشل المبرمجة"
@@ -1069,19 +1068,19 @@ msgstr "فشل انشاء مسار البيانات"
 msgid "Failed to create downloads directory"
 msgstr "فشل انشاء مسار التنزيلات"
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr "تعذر الاستماع على منفذ TCP : %[1]s . %[2]s منفذ غير صالح"
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr "تعذر الاستماع على منفذ TCP : %[1]s . %[2]s اسم غير معروف"
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr "تعذر الاستماع على منفذ TCP : %[1]s . خطأ غير متوقع %[2]v "
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr "تعذر الاستماع على منفذ TCP : %s . العناوين قيد الاستخدام مسبقا"
 
@@ -1089,7 +1088,7 @@ msgstr "تعذر الاستماع على منفذ TCP : %s . العناوين ق
 msgid "Failed uploading"
 msgstr "تعذر الرفع"
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr "الملف : "
 
@@ -1097,22 +1096,22 @@ msgstr "الملف : "
 msgid "First message must contain debug request, not data"
 msgstr "اول رسالة يجب ان تحوي على طلب التصحيح و ليس البيانات"
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
-msgstr "استخدام الFlag %[1]s الزامي عند استخدامه بالتزامن مع الFlag %[2]s"
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
+msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr "الاعلام :"
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 "التشغيل الاجباري لسكربت post-install (تستخدم اذا كان CLI لا يعمل بشكل "
 "متفاعل)"
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr "تخطي سكربت POST-install اجباريا (تستخدم اذا كان CLI يعمل بشكل متفاعل)"
@@ -1125,15 +1124,15 @@ msgstr ""
 "تم ايجاد منصة  من اجل المرجع (refrence)  \"%s\" :\n"
 "%s "
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr "مسار سيرفر GDB"
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr "نوع سيرفر GDB"
 
@@ -1141,23 +1140,24 @@ msgstr "نوع سيرفر GDB"
 msgid "GDB server '%s' is not supported"
 msgstr "سيرفر GDB '%s' غير مدعوم"
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr "يتم توليد النماذج الاولية للتوابع :"
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1173,46 +1173,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "المتغيرات العامة تستخدم  %[1]s بايت من الذاكرة المتغيرة."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "تم التنصيب"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr "تم تثبيت %s"
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr "جار تثبيت %s"
 
@@ -1229,13 +1230,13 @@ msgstr "جار تثبيت المنصة %s"
 msgid "Installing tool %s"
 msgstr "جار تثبيت الاداة %s"
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 "يقوم بتثبيت نواة او اكثر و ادواتها التابعة لها (corresponding tool "
 "dependencies)"
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr "يقوم بتثبيت مكتبة او اكثر تم تحديدها مسبقا على النظام"
 
@@ -1247,19 +1248,19 @@ msgstr "خطأ داخلي في الكاش (Internal error in cache)"
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr "FBQN غير صالح"
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr "URL غير صالح"
@@ -1272,8 +1273,9 @@ msgstr "URL الاضافي غير صالح : %v"
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1281,10 +1283,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1293,7 +1291,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1305,11 +1303,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1317,11 +1315,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1337,7 +1335,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr "مهلة غير صالحة"
 
@@ -1345,30 +1343,30 @@ msgstr "مهلة غير صالحة"
 msgid "Invalid version"
 msgstr "نسخة غير صالحة"
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr "الأخير"
 
@@ -1376,7 +1374,8 @@ msgstr "الأخير"
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1408,19 +1407,19 @@ msgstr ""
 msgid "Library install failed"
 msgstr "فشل تثبيت المكتبة"
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr "المكتبة مثبتة"
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr "رخصة"
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr "جار ربط كل شيء مع بعضه"
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
@@ -1428,15 +1427,15 @@ msgstr ""
 "انشاء قائمة اللوحات التي منصة دعمها مثبتة. تستطيع البحث \n"
 "عن لوحة محددة اذا قمت بتحديد اسم اللوحة"
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr "اظهر كل اللوحات المعروفة و FBQN الخاص بها"
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr "اعرض كل اللوحات المتصلة"
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
@@ -1444,25 +1443,25 @@ msgstr ""
 "اعرض كل خيارات اللوحات مفصولة عن بعضها بفواصل . او يمكن استخدامها عدة مرات "
 "من اجل عدة خيارات"
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr "انشاء قائمة بالمكتبات القابلة للتحديث"
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr "انشاء قائمة بالمنصات القابلة للتحديث"
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr "انشاء قائمة بجميع اللوحات المتصلة"
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1475,7 +1474,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr "الموقع"
 
@@ -1483,16 +1482,16 @@ msgstr "الموقع"
 msgid "Low memory available, stability problems may occur."
 msgstr "ذاكرة منخفضة متبقية، مشاكل عدم إستقرار قد تحدث."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr "القائم بالصيانة : %s"
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 "الحد الاقصى لزمن البحث عن المنفذ : على سبيل المثال 30 ثانية , 1 دقيقة "
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr "الرسائل بهذه المرحلة و ما فوق سيتم تسجيلها . المراحل الصالحة هي : %s"
@@ -1509,7 +1508,11 @@ msgstr "FBQN مفقود (Fully Qualified Board Name)"
 msgid "Missing port"
 msgstr "يوجد منفذ مفقود"
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr "يوجد بروتوكول منفذ مفقود"
 
@@ -1529,7 +1532,7 @@ msgstr "مسار السكتش مفقود"
 msgid "Monitor '%s' not found"
 msgstr "المراقب '%s' غير موجود"
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr "اعدادات منفذ المراقبة "
 
@@ -1537,32 +1540,36 @@ msgstr "اعدادات منفذ المراقبة "
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "العثور على عدة مكتبات لـ\"%[1]s\""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr "الاسم"
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr "الاسم\"%s\""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr "لا يوجد اية لوحات"
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr "لا توجد اية مكتبات"
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr "لا توجد مكتبات تطابق بحثك"
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
@@ -1570,7 +1577,7 @@ msgstr ""
 "لا توجد مكتبات متطابقة مع بحثك\n"
 "هل تقصد...\n"
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1578,14 +1585,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr "لا يوجد مراقب متاح لبرتوكول المنفذ %s"
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr "ﻻ يوجد منصات تطابق بحثك"
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr "لم يتم ايجاد مكتبات في %s"
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1602,112 +1605,120 @@ msgstr "الذاكرة غير كافية؛ راجع %[1]s لنصائح حول ا
 msgid "Not used: %[1]s"
 msgstr "غير مستخدم : %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr "نظام التشغيل:"
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr "لوحة أردوينو الرسمية:"
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr "اختيار:"
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 "اختياري، يمكن أن يكون: %s. يُستخدم لإخبار ال gcc أي مستوي تحذير يَستخدِم (-W"
 " flag)"
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr "اختياري، يُفعل الوضع المفصل."
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr "المسار"
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr "مسار للملف حيث تُكتب السجلات"
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1725,7 +1736,7 @@ msgstr "المنصة %s مثبتة سابقا"
 msgid "Platform %s installed"
 msgstr "تم تثبيت المنصة: %s"
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1743,39 +1754,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr "اسم ملف المنصة:"
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr "اسم المنصة:"
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1791,12 +1802,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "منفذ"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1808,23 +1819,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr "طباعة تفاصيل عن لوحة."
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1836,15 +1847,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1852,19 +1863,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr "تبديل %[1]s ب %[2]s"
 
@@ -1872,19 +1883,19 @@ msgstr "تبديل %[1]s ب %[2]s"
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1894,102 +1905,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1998,44 +2011,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2053,7 +2066,7 @@ msgstr ""
 "الشيفرة البرمجية تستخدم %[1]s بايت (%[3]s%%) من مساحة البرنامج. أقصى حد "
 "%[2]s بايت."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2091,33 +2104,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2127,23 +2140,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2153,7 +2166,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2161,7 +2174,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2180,39 +2193,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr "جرب تشغيل %s"
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "نوع"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr "الأنواع: %s"
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2233,7 +2246,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2251,17 +2264,17 @@ msgstr "إلغاء تثبيت %s"
 msgid "Uninstalling %s, tool is no more required"
 msgstr "إلغاء تثبيت %s، الأداة لم تعد مطلوبة"
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2269,27 +2282,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2297,32 +2310,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2330,40 +2343,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2371,12 +2384,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "مستخدم : %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2411,29 +2418,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "استخدام الملف المترجم سابقا: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2441,7 +2448,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr "تحذير : المشروع سيترجم باستخدام مكتبة خاصة او اكثر . "
 
@@ -2477,11 +2484,11 @@ msgstr ""
 "تحذير : لم يتم تثبيت الاداة '%s' مسبقا . قد تكون غير متوفرة لنظام التشغيل "
 "الذي تستخدمه"
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr "الموقع : %s"
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
@@ -2490,11 +2497,11 @@ msgstr ""
 "اللوحة تدعمها (When specified, VID/PID specific build properties are used, "
 "if board supports them.)"
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
@@ -2502,35 +2509,31 @@ msgstr ""
 "تكتب الاعدادات التهيئة الحالية (current configuration) في ملف التهيئة داخل "
 "مسار البيانات (data directory)"
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr "جار كتابة ملف التهيئة : %v"
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr "لا يمكنك استخدام %[1]sflag مع %[2]s سويا"
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 "لا يمكنك استخدام flag %s اثناء الترجمة باستخدام بروفايل (while compiling "
 "with a profile)"
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr "مع"
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 "تشفير الارشيف يختلف عن تشفير الفهرس (archive hash differs from hash in "
 "index)"
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr "مسار الارشيف"
 
@@ -2542,6 +2545,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr "تعذر ايجاد الملف الثنائي (Binary file) داخل %s"
@@ -2550,14 +2557,14 @@ msgstr "تعذر ايجاد الملف الثنائي (Binary file) داخل %s"
 msgid "board %s not found"
 msgstr "اللوحة %s غير موجودة"
 
-#: commands/board/list.go:43
-msgid "board not found"
-msgstr "تعذر ايجاد اللوحة"
-
-#: cli/board/listall.go:38 cli/board/search.go:37
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
 msgid "boardname"
 msgstr "اسم اللوحة"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
+msgstr ""
+
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
 #: arduino/discovery/discovery.go:353 arduino/discovery/discovery.go:392
 #: arduino/discovery/discovery.go:418
@@ -2572,7 +2579,7 @@ msgstr "تعذر العثور على اخر اصدار من %s"
 msgid "can't find latest release of tool %s"
 msgstr "تعذر العثور على اخر اصدار من الاداة %s"
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr "تعذر ايحاد ملف المشروع الرئيسي داخل %s"
 
@@ -2605,7 +2612,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr "جار تنظيف مسار البناء (build path)"
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr "الامر"
 
@@ -2630,12 +2637,12 @@ msgstr ""
 "التواصل غير متزامن (communication out of sync) , توقعتُ وصول '%[1]s' لكن وصل"
 " ما يلي '%[2]s'"
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr "جار معالجة التشفير (computing hash) : %s"
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2646,10 +2653,15 @@ msgstr "تعذر ايجاد ادوات صالحة للبناء (valid build arti
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr "جار انشاء installed.json داخل %[1]s : %[2]s"
@@ -2664,23 +2676,23 @@ msgstr ""
 "قسم البيانات تخطى الحجم المتوفر في اللوحة (data section exceeds available "
 "space in board)"
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr "جار فك تشفير البيانات الوصفية للمشروع (decoding sketch metadata) : %s"
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr "التبعية (dependency)   '%s' غير متوفرة"
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr "المجلد غير موجود : %s"
 
@@ -2700,15 +2712,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr "تنزيل نسخة محددة (في هذه الحالة ستكون النسخة 1.6.9)"
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr "تنزيل اخر نسخة من  Arduino SAMD core"
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2720,11 +2732,7 @@ msgstr "جار تنزيل الاداة %[1]s : %[2]s"
 msgid "empty board identifier"
 msgstr "معرف اللوحة خالي (empty board identifier)"
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr "جار تشفير البيانات الوصفية للمشروع (encoding sketch metadata) : %s"
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr "خطا اثناء تحميل ملفات المشروع :"
 
@@ -2732,20 +2740,20 @@ msgstr "خطا اثناء تحميل ملفات المشروع :"
 msgid "error opening %s"
 msgstr "تعذر فتح %s"
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 "خطأ اثناء معالجة الرد من السيرفر (error processing response from server)"
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2753,19 +2761,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr "جار استخراج الارشيف : %s"
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr "جار استخراج الارشيف : %w"
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr "تعذر تهيئة http client"
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2777,7 +2785,7 @@ msgstr "ملفات الارشيف يجب ان توضع في مسار فرعي"
 msgid "finding absolute path of %s"
 msgstr "جار البحث عن المسار المطلق (absolute path) لـ %s"
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2785,36 +2793,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr "من اجل نسخة محددة"
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2839,11 +2849,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2855,7 +2861,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2867,7 +2877,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2875,31 +2885,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2907,19 +2917,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2935,23 +2945,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2959,11 +2969,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2971,6 +2981,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2979,32 +2995,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -3031,8 +3042,8 @@ msgstr "جار تحميل حزمة الادوات من %s"
 msgid "loading json index file %[1]s: %[2]s"
 msgstr "جار تحميل ملف json index %[1]s : %[2]s"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr "جار تحميل المكتبة من %[1]s : %[2]s"
 
@@ -3065,15 +3076,15 @@ msgstr "جار تحميل اصدار الاداة (tool release) في %s"
 msgid "looking for boards.txt in %s"
 msgstr "جار البحث عن boards.txt داخل %s"
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr "'%s' directive مفقود"
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr "المجموع الاختباري (checksum) لـ %s مفقود"
 
@@ -3096,7 +3107,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr "تعذر ايجاد اصدار المراقب : %s"
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr "جار نقل الارشيف الذي تم استخراجه الى مجلد الوجهة : %s"
@@ -3105,7 +3117,7 @@ msgstr "جار نقل الارشيف الذي تم استخراجه الى مج
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr "تم ايجاد اكثر من build artifacts : '%[1]s' و '%[2]s'"
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr "تم العثور على اكثر من ملف مشروع رئيسي main sketch file (%[1]v,%[2]v)"
 
@@ -3125,7 +3137,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3137,7 +3149,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr "لم يتم تحديد اي منفذ للرفع"
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr "تعذر ايجاد اي مشروع صالح في %[2]s : %[1]sمفقود"
 
@@ -3145,7 +3157,11 @@ msgstr "تعذر ايجاد اي مشروع صالح في %[2]s : %[1]sمفقو
 msgid "no versions available for the current OS"
 msgstr "لا يوجد اي نسخ متوافقة مع نظام التشغيل الحالي"
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr "جار فتح ملف الارشيف : %s"
 
@@ -3157,11 +3173,11 @@ msgstr "جار فتح  boards.txt"
 msgid "opening port at 1200bps"
 msgstr "جار فتح منفذ عند 1200bps"
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr "جار فتح ملف التوقيع : %s"
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3205,11 +3221,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3217,11 +3233,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3237,7 +3253,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3248,7 +3264,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3256,11 +3272,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3284,10 +3300,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3301,12 +3313,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3317,7 +3329,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3337,15 +3349,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3353,15 +3374,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3382,7 +3403,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3412,7 +3433,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3420,7 +3441,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3441,7 +3462,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3469,19 +3490,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3489,6 +3510,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3497,10 +3530,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/de.po b/i18n/data/de.po
index 5e88c2f0290..6fde3969667 100644
--- a/i18n/data/de.po
+++ b/i18n/data/de.po
@@ -5,15 +5,16 @@
 # CLI team <prj_cli_team@arduino.cc>, 2022
 # Dee Gee, 2022
 # Ettore Atalan <atalanttore@googlemail.com>, 2022
+# C A, 2022
 # 
 msgid ""
 msgstr ""
-"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>, 2022\n"
+"Last-Translator: C A, 2022\n"
 "Language-Team: German (https://www.transifex.com/arduino-1/teams/108174/de/)\n"
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr "%[1]s %[2]s Version: %[3]s Commit: %[4]s Datum: %[5]s"
 
@@ -27,7 +28,7 @@ msgstr ""
 msgid "%[1]s invalid, rebuilding all"
 msgstr "%[1]s ungültig, alles wird neu gebaut"
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr "%[1]s wird benötigt, aber %[2]s ist aktuell installiert."
 
@@ -51,7 +52,7 @@ msgstr "%[1]s, Ports: %[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, Protokollversion: %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%s bereits heruntergeladen"
 
@@ -63,7 +64,7 @@ msgstr "%s und %s können nicht gemeinsam verwendet werden"
 msgid "%s installed"
 msgstr "%s installiert"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%s ist bereits installiert."
 
@@ -76,7 +77,7 @@ msgstr "%s ist kein Verzeichnis"
 msgid "%s is not managed by package manager"
 msgstr "%s wird nicht vom Paketmanager verwaltet"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "%s muss installiert sein."
 
@@ -88,7 +89,7 @@ msgstr "Muster %s fehlt"
 msgid "'%s' has an invalid signature"
 msgstr "'%s' hat eine ungültige Signatur"
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(versteckt)"
 
@@ -96,7 +97,7 @@ msgstr "(versteckt)"
 msgid "(legacy)"
 msgstr "(veraltet)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
@@ -104,13 +105,17 @@ msgstr ""
 "--git-url und --zip-path sind Standardmäßig deaktiviert. Für mehr "
 "Informationen sehen Sie hier nach: %v"
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr "Eine neue Version von Arduino CLI ist verfügbar:"
 
@@ -118,32 +123,32 @@ msgstr "Eine neue Version von Arduino CLI ist verfügbar:"
 msgid "A programmer is required to upload"
 msgstr "Zum Hochladen ist ein Programmer benötigt"
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr "ARCH"
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr "Arduino CLI Handbuch"
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr "Weitere Hilfethemen:"
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr "Fügt einen oder mehrere Werte zu einer Einstellung hinzu."
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr "Decknamen:"
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr "Alle Kerne sind bereits auf der neuesten Version"
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr "Bereits installiert %s"
 
@@ -159,15 +164,15 @@ msgstr "Beim Hinzufügen von Prototypen ist ein Fehler aufgetreten"
 msgid "An error occurred detecting libraries"
 msgstr "Ein Fehler trat beim erkennen der Bibliotheken auf"
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr "Debug-Protokollierung an die angegebene Datei anhängen"
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "Architektur: %s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr "Archiv existiert bereits"
 
@@ -175,55 +180,51 @@ msgstr "Archiv existiert bereits"
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "Gebauter Kern wird archiviert (zwischengespeichert) in: %[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr ""
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI."
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr "Arduino Befehlszeilen-Schnittstelle (arduino-cli)."
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr "Arduino-Platinen-Befehle."
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr "Arduino Befehle für Bibliotheken."
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr "Arduino-Konfigurationsbefehle."
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr "Arduino-Kern-Operationen."
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr "Argumentefehler: %v"
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr "Autor: %s"
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -235,32 +236,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr "Verfügbar"
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr "Verfügbare Befehle:"
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr "Binärdatei zum Hochladen."
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr "Platinenname"
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr "Platine gefunden: %s"
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr "Platinenname:"
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr "Platinenversion:"
 
@@ -268,14 +265,10 @@ msgstr "Platinenversion:"
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "Bootloader-Datei angegeben, aber nicht vorhanden: %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr "Datenverzeichnis %s kann nicht erstellt werden"
@@ -284,7 +277,7 @@ msgstr "Datenverzeichnis %s kann nicht erstellt werden"
 msgid "Can't create sketch"
 msgstr "Sketch kann nicht erstellt werden"
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr "Bibliothek kann nicht heruntergeladen werden"
 
@@ -297,31 +290,36 @@ msgstr "Abhängigkeiten für die Plattform %s können nicht gefunden werden"
 msgid "Can't open sketch"
 msgstr "Sketch kann nicht geöffnet werden"
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr "Konfigurationsdatei kann nicht geschrieben werden: %v"
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr "Verzeichnis der Konfigurationsdatei kann nicht erstellt werden: %v"
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr "Konfigurationsdatei kann nicht erstellt werden: %v"
 
@@ -337,11 +335,7 @@ msgstr "Temporäre Datei kann nicht erstellt werden"
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr "Sketch-Metadaten können nicht exportiert werden"
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -361,35 +355,31 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr "Kategorie: %s"
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr "Prüfsumme unterscheidet sich von der Prüfsumme in package.json"
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr "Prüfsumme:"
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
@@ -397,44 +387,44 @@ msgstr ""
 "Befehl läuft weiter und gibt die Liste der verbundenen Platinen aus, sobald "
 "sich eine Änderung ergibt."
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr "Kompiliert Arduino-Sketche."
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
-msgstr "Kern wird kompiliert..."
+msgstr "Kern wird kompiliert ..."
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
-msgstr "Bibliotheken werden kompiliert..."
+msgstr "Bibliotheken werden kompiliert ..."
 
 #: legacy/builder/phases/libraries_builder.go:132
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
-msgstr "Sketch wird kompiliert..."
+msgstr "Sketch wird kompiliert ..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr "Konfigurationsdatei geschrieben nach: %s"
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr "Konfiguration des Ports."
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr "Konfigurationsoptionen für %s"
 
@@ -442,19 +432,19 @@ msgstr "Konfigurationsoptionen für %s"
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr "Verbunden"
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr "Verbunden mit %s! Zum Beenden STRG-C drücken."
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr "Kern"
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr "Konnte nicht über HTTP verbinden"
 
@@ -470,150 +460,159 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr "Programmgröße konnte nicht ermittelt werden"
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr "Einen neuen Sketch erstellen"
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr "Erstellt eine ZIP-Datei, die alle Sketch-Dateien enthält."
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr "VERALTET"
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr "Arduino-Sketche debuggen"
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr "Debug-Interpreter z.B.: %s"
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "Standard"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 "Löscht einen Einstellungsschlüssel und alle zugehörigen Unterschlüssel."
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr "Abhängigkeiten: %s"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr "Beschreibung"
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
-msgstr "Verwendete Bibliotheken erkennen..."
+msgstr "Verwendete Bibliotheken erkennen ..."
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 "Erkennt und zeigt eine Liste von Platinen, die mit dem Computer verbunden "
 "sind."
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr "Verzeichnis, welche die Binärdateien zum Hochladen enthält."
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr "Verbindung getrennt"
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr "Nur die bereitgestellten gRPC-Aufrufe anzeigen"
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr "Abhängigkeiten nicht installieren."
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr "Bereits installierte Bibliotheken nicht überschreiben."
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr "Bereits installierte Plattformen nicht überschreiben."
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 "Den eigentlichen Hochladevorgang nicht durchführen, sondern nur die "
 "Abmeldeaktionen"
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr "%s wird heruntergeladen"
 
@@ -646,30 +645,30 @@ msgstr "Plattform %s wird heruntergeladen"
 msgid "Downloading tool %s"
 msgstr "Werkzeug %s wird heruntergeladen"
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 "Lädt einen oder mehrere Kerne und die entsprechenden Werkzeugabhängigkeiten "
 "herunter."
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 "Lädt eine oder mehrere Bibliotheken herunter, ohne sie zu installieren."
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr "Debug-Protokollierung von gRPC-Aufrufen aktivieren"
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr "Geben Sie einen Pfad zur ZIP-Datei an"
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr "Fehler beim Hinzufügen einer Datei zum Sketch-Archiv"
 
@@ -677,44 +676,44 @@ msgstr "Fehler beim Hinzufügen einer Datei zum Sketch-Archiv"
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr "Fehler beim Archivieren: %v"
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr "Fehler beim Berechnen des relativen Dateipfads"
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr "Fehler beim Kopieren der Ausgabedatei %s"
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr "Fehler beim Erstellen der Instanz: %v"
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr "Fehler beim Erstellen des Ausgabeverzeichnisses"
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr "Fehler beim Erstellen des Sketch-Archivs"
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr "Fehler beim Erstellen des Sketches: %v"
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr "Fehler beim Erkennen von Platinen: %v"
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr "Fehler beim Herunterladen von %[1]s: %[2]v"
 
@@ -747,42 +746,42 @@ msgstr "Fehler beim Herunterladen der Plattform %s"
 msgid "Error downloading tool %s"
 msgstr "Fehler beim Herunterladen des Werkzeugs %s"
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr "Fehler während dem Hochladen: %v"
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr "Fehler während der YAML-Kodierung der Ausgabe: %v"
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr "Fehler während dem Installieren: %v"
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr "Fehler während dem Deinstallieren: %v"
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -794,7 +793,7 @@ msgstr "Fehler beim Extrahieren von %s"
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -802,48 +801,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr "Fehler beim Abrufen des absoluten Pfads des Sketch-Archivs"
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr "Fehler beim Abrufen von Platinendetails: %v"
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr "Fehler beim Abrufen von Platineninformationen aus der Arduino Cloud"
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr "Fehler beim Abrufen von Informationen für die Bibliothek %s"
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr "Fehler beim Abrufen von Bibliotheksinformationen: %v"
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr "Fehler beim Abrufen von Port-Metadaten: %v"
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr "Fehler beim Abrufen von Details zu Port-Einstellungen: %s"
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr "Fehler beim Initialisieren der Instanz: %v"
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr "Fehler beim Installieren von %s: %v"
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr "Fehler beim Installieren der Git-Bibliothek: %v"
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr "Fehler beim Installieren der Zip-Bibliothek: %v"
 
@@ -862,15 +861,15 @@ msgstr "Fehler beim Installieren der Plattform %s"
 msgid "Error installing tool %s"
 msgstr "Fehler beim Installieren des Werkzeugs %s"
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
-msgstr "Fehler beim Auflisten von Bibliotheken: %v"
-
-#: cli/board/listall.go:64
+#: internal/cli/board/listall.go:63
 msgid "Error listing boards: %v"
 msgstr "Fehler beim Auflisten von Platinen: %v"
 
-#: cli/core/list.go:64
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
+msgstr ""
+
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr "Fehler beim Auflisten von Plattformen: %v"
 
@@ -891,19 +890,19 @@ msgstr "Fehler beim Laden des Index %s"
 msgid "Error opening %s"
 msgstr "Fehler beim Öffnen von %s"
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr "Fehler beim Öffnen der Debug-Protokollierungsdatei: %s"
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr "Fehler beim Öffnen des Sketches: %v"
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -911,7 +910,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr "Fehler beim Lesen der Konfigurationsdatei: %v"
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr "Fehler beim Lesen von Sketch-Dateien"
 
@@ -919,11 +918,11 @@ msgstr "Fehler beim Lesen von Sketch-Dateien"
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr "Fehler beim Auflösen von Abhängigkeiten für %[1]s: %[2]s"
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr "Fehler beim Abrufen der Kernliste: %v"
 
@@ -939,15 +938,19 @@ msgstr "Fehler beim Speichern des heruntergeladenen Index"
 msgid "Error saving downloaded index signature"
 msgstr "Fehler beim Speichern der heruntergeladenen Indexsignatur"
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr "Fehler bei der Suche nach Platinen: %v"
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr "Fehler bei der Suche nach Plattformen: %v"
 
@@ -955,23 +958,23 @@ msgstr "Fehler bei der Suche nach Plattformen: %v"
 msgid "Error serializing compilation database: %s"
 msgstr "Fehler bei der Serialisierung der Kompilierungsdatenbank: %s"
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr "Fehler beim Deinstallieren von %[1]s: %[2]v"
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr "Fehler beim Aktualisieren von Indizes: %v"
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr "Fehler beim Aktualisieren des Bibliotheksindex: %v"
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -997,40 +1000,41 @@ msgstr "Fehler während der Bestimmung der Sketch-Größe: %s"
 msgid "Error writing compilation database: %s"
 msgstr "Fehler beim Schreiben der Kompilierungsdatenbank: %s"
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr "Fehler: Befehlsbeschreibung wird nicht unterstützt von %v"
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr "Ereignis"
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr "Beispiele für Bibliothek %s"
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr "Beispiele:"
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1038,10 +1042,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr "Fehlgeschlagene Programmierung"
@@ -1058,19 +1058,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1078,7 +1078,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr "Fehlgeschlagenes Hochladen"
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr "Datei:"
 
@@ -1086,20 +1086,20 @@ msgstr "Datei:"
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1110,15 +1110,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr "Vollständig qualifizierter Platinenname, z.B.: arduino:avr:uno"
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr "GDB-Server-Pfad"
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr "GDB-Server-Typ"
 
@@ -1126,23 +1126,24 @@ msgstr "GDB-Server-Typ"
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
-msgstr "Funktionsprototypen werden generiert..."
+msgstr "Funktionsprototypen werden generiert ..."
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1158,48 +1159,49 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "Globale Variablen verwenden %[1]s Bytes des dynamischen Speichers."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr "Identifikationseigenschaften:"
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 "Eingebaute Bibliotheken (von Plattformen und IDE) in die Auflistung "
 "einbeziehen."
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "Installiert"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr "%s installiert"
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr "%s wird installiert"
 
@@ -1216,13 +1218,13 @@ msgstr "Plattform %s wird installiert"
 msgid "Installing tool %s"
 msgstr "Werkzeug %s wird installiert"
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 "Installiert einen oder mehrere Kerne und die entsprechenden "
 "Werkzeugabhängigkeiten."
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr "Installiert eine oder mehrere angegebene Bibliotheken in das System."
 
@@ -1234,19 +1236,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr "Ungültiges Geräte-URL-Format"
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr "Ungültige URL"
@@ -1259,8 +1261,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr "Ungültiges Archiv: Datei %{1}s nicht in Archiv %{2}s gefunden"
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr "Ungültiges Argument übergeben: %v"
 
@@ -1268,10 +1271,6 @@ msgstr "Ungültiges Argument übergeben: %v"
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr "Ungültiger Geräte-Port-Typ angegeben"
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1280,7 +1279,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr "Ungültige Instanz"
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr "Ungültiges Element %s"
 
@@ -1292,11 +1291,11 @@ msgstr "Ungültige Bibliothek"
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr "Ungültige Option für --log-level: %s"
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr "Ungültiges Ausgabeformat: %s"
 
@@ -1304,11 +1303,11 @@ msgstr "Ungültiges Ausgabeformat: %s"
 msgid "Invalid package index in %s"
 msgstr "Ungültiger Paketindex in %s"
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr "Ungültiger Parameter %s: Version nicht erlaubt"
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1324,7 +1323,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr "Ungültige Zeitbeschränkung: %s"
 
@@ -1332,30 +1331,30 @@ msgstr "Ungültige Zeitbeschränkung: %s"
 msgid "Invalid version"
 msgstr "Ungültige Version"
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr "BIBLIOTHEK"
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr "BIBLIOTHEKSNAME"
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr "Neueste"
 
@@ -1363,7 +1362,8 @@ msgstr "Neueste"
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1395,57 +1395,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr "Bibliothek installiert"
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr "Lizenz: %s"
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr "Verbundene Platinen auflisten."
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr "Aktualisierbare Bibliotheken auflisten."
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr "Aktualisierbare Plattformen auflisten."
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr "Listet alle verbundenen Platinen auf."
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1458,7 +1458,7 @@ msgstr "Indexdatei wird geladen: %v"
 msgid "Loading libraries: %v"
 msgstr "Bibliotheken werden geladen: %v"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr "Ort"
 
@@ -1467,15 +1467,15 @@ msgid "Low memory available, stability problems may occur."
 msgstr ""
 "Wenig Arbeitsspeicher verfügbar, es können Stabilitätsprobleme auftreten."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1492,7 +1492,11 @@ msgstr ""
 msgid "Missing port"
 msgstr "Fehlender Port"
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr "Fehlendes Port-Protokoll"
 
@@ -1512,7 +1516,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1520,40 +1524,44 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "Mehrere Bibliotheken wurden für \"%[1]s\" gefunden"
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr "Name"
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr "Keine Platinen gefunden."
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr "Keine Bibliotheken gefunden."
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr "Keine Bibliotheken installiert."
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr "Keine Bibliotheken stimmen mit Ihrer Suche überein."
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 "Keine Bibliotheken stimmen mit Ihrer Suche überein.\n"
-"Meinten Sie...\n"
+"Meinten Sie ...\n"
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1561,14 +1569,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1587,110 +1591,118 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr "Nicht benutzt: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr "BS:"
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr "Einen Kommunikations-Port mit einer Platine öffnen."
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr "Option:"
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr "PAKETIERER"
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr "Paket-URL:"
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr "Paketname:"
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr "Pfad"
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1708,7 +1720,7 @@ msgstr "Plattform %s bereits installiert"
 msgid "Platform %s installed"
 msgstr "Plattform %s installiert"
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1726,39 +1738,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr "Plattform-URL:"
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr "Plattformarchitektur:"
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr "Plattformkategorie:"
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr "Plattformdateiname:"
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr "Plattformname:"
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr "Plattformgröße (Bytes):"
 
@@ -1774,13 +1786,13 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "Port"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
-msgstr "Port geschlossen:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
+msgstr ""
 
 #: arduino/errors.go:632
 msgid "Port monitor error"
@@ -1791,23 +1803,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1819,15 +1831,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1835,19 +1847,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr "Protokoll"
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1855,19 +1867,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr "Erforderliches Werkzeug:"
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1877,102 +1889,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr "Einstellung"
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr "Zeige alle verfügbare Core-Versionen."
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr "Vollständige Platinendetails anzeigen"
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr "Nur Namen der Bibliotheken anzeigen."
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr "Zeige alle verfügbare Programmer"
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr "Zeige die Liste mit den installierten Bibliotheken."
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1981,44 +1995,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr "Größe (Bytes):"
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr "Sketch erstellt in: %s"
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2036,7 +2050,7 @@ msgstr ""
 "Der Sketch verwendet %[1]s Bytes (%[3]s%%) des Programmspeicherplatzes. Das "
 "Maximum sind %[2]s Bytes."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2074,33 +2088,33 @@ msgstr "Wird übersprungen: %[1]s"
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2110,23 +2124,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2136,7 +2150,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2144,7 +2158,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2163,39 +2177,39 @@ msgstr "Werkzeug %s deinstalliert"
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "Typ"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr "Typen: %s"
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr "URL:"
 
@@ -2216,7 +2230,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2234,17 +2248,17 @@ msgstr "%s wird deinstalliert"
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr "Unbekannt"
 
@@ -2252,27 +2266,27 @@ msgstr "Unbekannt"
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr "Aktualisiert den Index der Kerne."
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr "Aktualisiert den Bibliotheksindex auf die neueste Version."
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr "Aktualisiert den Bibliotheksindex."
 
@@ -2280,32 +2294,32 @@ msgstr "Aktualisiert den Bibliotheksindex."
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2313,40 +2327,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2354,12 +2368,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "Benutzt: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2395,29 +2403,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "Zuvor kompilierte Datei wird verwendet: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2425,7 +2433,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2440,7 +2448,7 @@ msgstr ""
 
 #: commands/upload/upload.go:408
 msgid "Waiting for upload port..."
-msgstr "Warten auf Upload-Port..."
+msgstr "Warten auf Upload-Port ..."
 
 #: legacy/builder/target_board_resolver.go:49
 msgid ""
@@ -2461,51 +2469,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr "Webseite: %s"
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr "Konfigurationsdatei wird geschrieben: %v"
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr "und"
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2517,6 +2521,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2525,14 +2533,14 @@ msgstr ""
 msgid "board %s not found"
 msgstr "Platine %s nicht gefunden"
 
-#: commands/board/list.go:43
-msgid "board not found"
-msgstr "Platine nicht gefunden"
-
-#: cli/board/listall.go:38 cli/board/search.go:37
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
 msgid "boardname"
 msgstr "Platinenname"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
+msgstr ""
+
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
 #: arduino/discovery/discovery.go:353 arduino/discovery/discovery.go:392
 #: arduino/discovery/discovery.go:418
@@ -2547,7 +2555,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2580,7 +2588,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr "Befehl"
 
@@ -2603,12 +2611,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2619,10 +2627,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2635,23 +2648,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr "Datenbereich überschreitet den verfügbaren Platz auf der Platine"
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr "Verzeichnis existiert nicht: %s"
 
@@ -2671,15 +2684,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr "eine bestimmte Version herunterladen (in diesem Fall 1.6.9)."
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr "heruntergeladen"
 
@@ -2691,11 +2704,7 @@ msgstr "Werkzeug %[1]s wird heruntergeladen: %[2]s"
 msgid "empty board identifier"
 msgstr "leerer Platinenidentifikator"
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr "Sketch-Metadaten werden kodiert: %s"
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr "Fehler beim Laden der Sketch-Projektdatei:"
 
@@ -2703,19 +2712,19 @@ msgstr "Fehler beim Laden der Sketch-Projektdatei:"
 msgid "error opening %s"
 msgstr "Fehler beim Öffnen von %s"
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2723,19 +2732,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr "Archiv wird extrahiert: %s"
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr "Archiv wird extrahiert: %w"
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2747,7 +2756,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2755,36 +2764,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr "für eine bestimmte Version."
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr "für die neueste Version."
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr "für die jeweilige Version."
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2809,11 +2820,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr "Installationsverzeichnis nicht festgelegt"
 
@@ -2825,7 +2832,11 @@ msgstr "Werkzeug %[1]s wird installiert: %[2]s"
 msgid "installing platform %[1]s: %[2]s"
 msgstr "Plattform %[1]s wird installiert: %[2]s"
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2837,7 +2848,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2845,31 +2856,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr "ungültige Konfigurationsoption: %s"
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2877,19 +2888,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr "ungültiges Element %s"
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2905,23 +2916,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr "ungültige Plattformarchivgröße: %s"
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr "ungültiger Plattformidentifikator"
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2929,11 +2940,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr "ungültige Port-Konfiguration: %s"
 
@@ -2941,6 +2952,12 @@ msgstr "ungültige Port-Konfiguration: %s"
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2949,32 +2966,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr "ungültige Version:"
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr "Schlüsselwörter"
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr "Bibliothek %s bereits installiert"
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr "Bibliothek bereits installiert"
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr "Bibliothek nicht gültig"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -3001,8 +3013,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -3035,15 +3047,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3063,7 +3075,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3072,7 +3085,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3092,7 +3105,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3104,7 +3117,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3112,7 +3125,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3124,11 +3141,11 @@ msgstr "boards.txt wird geöffnet"
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3172,11 +3189,11 @@ msgstr "Plattform %s ist nicht installiert"
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr "Plattform nicht installiert"
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3184,11 +3201,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr "Port"
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr "Port nicht gefunden: %[1]s %[2]s"
 
@@ -3204,7 +3221,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr "%[1]s wird gelesen: %[2]s"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr "Verzeichnis %[1]s wird gelesen: %[2]s"
 
@@ -3215,7 +3232,7 @@ msgstr "Verzeichnis %[1]s wird gelesen: %[2]s"
 msgid "reading directory %s"
 msgstr "Verzeichnis %s wird gelesen"
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3223,11 +3240,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr "Datei %[1]s wird gelesen: %[2]s"
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr "Dateien werden gelesen: %v"
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3251,10 +3268,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3268,12 +3281,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3284,7 +3297,7 @@ msgstr "Plattformdateien werden entfernt: %s"
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3304,15 +3317,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr "Quelle ist kein Verzeichnis"
 
@@ -3320,15 +3342,15 @@ msgstr "Quelle ist kein Verzeichnis"
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr "Archivgröße wird getestet: %s"
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3349,7 +3371,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3379,7 +3401,7 @@ msgid "tool not installed"
 msgstr "Werkzeug nicht installiert"
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3387,7 +3409,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr "Werkzeugversion %s nicht gefunden"
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3408,7 +3430,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3436,19 +3458,19 @@ msgstr "unbekanntes Paket %s"
 msgid "unknown platform %s:%s"
 msgstr "unbekannte Plattform %s:%s"
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3456,6 +3478,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr "Hochladefehler: %s"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr "Version %s ist für dieses Betriebssystem nicht verfügbar"
@@ -3464,10 +3498,6 @@ msgstr "Version %s ist für dieses Betriebssystem nicht verfügbar"
 msgid "version %s not found"
 msgstr "Version %s nicht gefunden"
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr "Sketch-Metadaten %[1]s werden geschrieben: %[2]s"
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr "falsches Format in der Serverantwort"
diff --git a/i18n/data/es.po b/i18n/data/es.po
index d20915c677b..fdad9de7b7b 100644
--- a/i18n/data/es.po
+++ b/i18n/data/es.po
@@ -14,7 +14,7 @@ msgstr ""
 "Language: es\n"
 "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr ""
 
@@ -26,7 +26,7 @@ msgstr "¡%[1]s ya no es compatible con la carpeta! %[2]s Para más información
 msgid "%[1]s invalid, rebuilding all"
 msgstr "%[1]s inválido, reconstruyendo todo"
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr "%[1]s es requerido pero %[2]s está actualmente instalado."
 
@@ -50,7 +50,7 @@ msgstr "%[1]s, puertos: %[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, versión del protocolo: %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%s ya está descargado"
 
@@ -62,7 +62,7 @@ msgstr "%s y %s no se pueden usar juntos"
 msgid "%s installed"
 msgstr "%s instalado"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%s ya está instalado."
 
@@ -75,7 +75,7 @@ msgstr "%s no es un directorio"
 msgid "%s is not managed by package manager"
 msgstr "%s no es manejado por el administrador de paquetes"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "%s debe ser instalado."
 
@@ -87,7 +87,7 @@ msgstr "Falta el patrón %s "
 msgid "'%s' has an invalid signature"
 msgstr "'%s' tiene una firma inválida"
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(oculto)"
 
@@ -95,7 +95,7 @@ msgstr "(oculto)"
 msgid "(legacy)"
 msgstr "(legado)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
@@ -103,7 +103,7 @@ msgstr ""
 "--git-url y --zip-path están deshabilitados por defecto, para más "
 "información mira: %v"
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
@@ -111,7 +111,11 @@ msgstr ""
 "las banderas --git-url y --zip-path permiten instalar archivos no "
 "verificados, úsalo bajo tu propio riesgo."
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr "Una nueva versión de Arduino CLI está disponible:"
 
@@ -119,32 +123,32 @@ msgstr "Una nueva versión de Arduino CLI está disponible:"
 msgid "A programmer is required to upload"
 msgstr "Se requiere un programador para subir."
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr "ARQUITECTURA"
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr "MANUAL DE LA LINEA DE COMANDOS DE ARDUINO"
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr "Temas de ayuda adicionales:"
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr "Agrega  uno o más valores a una configuración."
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr "Alias:"
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr "Todos los núcleos están en su última versión"
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr "Ya está instalado %s"
 
@@ -160,15 +164,15 @@ msgstr "Ocurrió un error añadiendo prototipos"
 msgid "An error occurred detecting libraries"
 msgstr "Ocurrió un error detectando librerías"
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr "Registro de depuración añadido al archivo especificado"
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "Arquitectura: %s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr "El archivo ya existe"
 
@@ -176,55 +180,51 @@ msgstr "El archivo ya existe"
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "Archivando el núcleo construido (cacheado) en: %[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr "Comandos de diseños de Arduino CLI."
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI."
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr "Interfaz de la línea de comandos de Arduino (arduino-cli)."
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr "Comandos de la placa Arduino."
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr "Comandos de cache de Arduino"
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr "Comandos sobre librerías de Arduino"
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr "Commandos de configuración de Arduino"
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr "Operaciones del núcleo Arduino"
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr "Errores en los argumentos: %v "
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr "Error en la tarjeta conectada: %v"
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr "Conecta una tabla al diseño."
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr "Autor: %s"
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -236,32 +236,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr "Disponible"
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr "Comandos disponibles:"
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr "Archivo binario para cargar."
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr "Nombre de la placa"
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr "Placa encontrada: %s"
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr "Nombre de la placa:"
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr "Versión de la placa:"
 
@@ -269,16 +265,12 @@ msgstr "Versión de la placa:"
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "Fichero Bootloader especificado pero ausente: %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 "La compilaciones de 'core.a' e guardan en esta ruta para ser cacheadas y "
 "reusadas"
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr "No se puede crear el directorio de datos %s"
@@ -287,7 +279,7 @@ msgstr "No se puede crear el directorio de datos %s"
 msgid "Can't create sketch"
 msgstr "No se puede crear el diseño"
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr "No fue posible descargar la librería"
 
@@ -300,31 +292,36 @@ msgstr "No puedo encontrar las dependencias para la plataforma %s"
 msgid "Can't open sketch"
 msgstr "No es posible abrir el sketch"
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr "No se puede establecer multiples valores a un mismo índice %v"
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
-msgstr "No puedes usar %s señales al mismo tiempo"
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
+msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr "No se puede escribir el archivo de configuración: %v"
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr "No se puede crear el directorio de caché de compilación"
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr "No se puede crear el directorio de caché de compilación"
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr "No se puede crear el directorio de archivos de configuración: %v"
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr "No se puede crear el archivo de configuración: %v"
 
@@ -340,11 +337,7 @@ msgstr "No se puede crear un archivo temporal"
 msgid "Cannot execute debug tool"
 msgstr "No se puede ejecutar la herramienta de depuración"
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr "No se puede exportar los metadatas del diseño"
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr "No se puede encontrar la ruta absoluta: %v"
 
@@ -364,36 +357,32 @@ msgstr "No se puede realizar el reinicio del puerto: %s"
 msgid "Cannot upgrade platform"
 msgstr "No se puede actualizar la plataforma"
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr "Categoría: %s"
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr "Comprueba el estado de las dependencias de la librería especificada."
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr "Revisando los pre requisitos de instalación de la librería"
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr "El checksum difiere del checksum en package.json"
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr "Checksum:"
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr "Limpiando caches."
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 "Lista separada por comas de URLs adicionales para el Gestor de Tarjetas."
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
@@ -401,19 +390,19 @@ msgstr ""
 "El comando sigue ejecutándose e imprime la lista de placas conectadas cada "
 "vez que hay un cambio."
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr "Proyecto compilado no encontrado en %s"
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr "Compila los diseños de Arduino"
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr "Compilando el núcleo..."
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr "Compilando librerías..."
 
@@ -421,26 +410,26 @@ msgstr "Compilando librerías..."
 msgid "Compiling library \"%[1]s\""
 msgstr "Compilando librería \"%[1]s\""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "Compilando el sketch..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 "El archivo de configuración ya existe, utilice --overwrite para descartar el"
 " existente."
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr "Archivo de configuración escrito en: %s"
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr "Configuración del puerto."
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr "Opciones de configuración para %s"
 
@@ -448,19 +437,19 @@ msgstr "Opciones de configuración para %s"
 msgid "Configuring platform."
 msgstr "Configurando plataforma."
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr "Conectado"
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr "¡Conectado a %s! Pulse CTRL-C para salir."
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr "Núcleo"
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr "No se pudo conectar vía HTTP"
 
@@ -476,23 +465,23 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr "No se pudo determinar el tamaño del programa"
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr "No se ha podido obtener el directorio de trabajo actual: %v"
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr "Crear un nuevo Sketch"
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr "Crea un archivo zip conteniendo todos los archivos del sketch."
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
@@ -500,86 +489,94 @@ msgstr ""
 "Crea o actualiza el archivo de configuración en el directorio de datos o "
 "directorio personalizado con los ajustes actuales."
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr "OBSOLETO"
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr "Depurar diseños Arduino."
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr "Intérprete de depuración e.j.: %s"
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr "Depuración no soportada para la tarjeta: %s"
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr "Debugging soportado:"
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "Por defecto"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr "Elimina una llave de configuraciones y sus sub-llaves."
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr "Dependencias: %s"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr "Descripción"
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr "Detectando las librerías usadas..."
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 "Detecta y muestra una lista de placas conectadas al computador actual."
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr "La carpeta contiene archivos binarios para la depuración."
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr "La carpeta contiene archivos binarias para subir."
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
@@ -587,39 +584,40 @@ msgstr ""
 "Directorio para guardar los archivos generados. Por defecto es './docs', el "
 "directorio debe de existir."
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr "Desconectado"
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr "No instale dependencias."
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr "No sobrescribir librerías ya instaladas."
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr "No sobrescribir plataformas ya instaladas."
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr "Descargando %s"
 
@@ -652,29 +650,29 @@ msgstr "Descargando la plataforma %s"
 msgid "Downloading tool %s"
 msgstr "Descargando la herramienta%s"
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 "Descarga uno o más núcleos y sus dependencias de herramienta "
 "correspondientes."
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr "Descarga una o más librerías sin instalarlas."
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr "Introduzca una ruta para el archivo zip"
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr "Introducir la url de git para librerías alojadas en repositorios"
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr "Error añadiendo sketch al archivo de sketch"
 
@@ -682,44 +680,44 @@ msgstr "Error añadiendo sketch al archivo de sketch"
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr "Error calculando la ruta de archivo relativa"
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr "Error limpiando caches: %v"
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr "Error copiando el archivo de salida %s"
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr "Error creando la instancia: %v"
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr "Error al crear el directorio de salida"
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr "Error creando el archivo de sketch"
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr "Error creando el sketch: %v"
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr "Error detectando placas: %v"
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr "Error al descargar %[1]s: %[2]v"
 
@@ -752,42 +750,42 @@ msgstr "Error descargando la plataforma %s"
 msgid "Error downloading tool %s"
 msgstr "Error descargando la herramienta %s"
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr "Error durante la carga: %v"
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr "Error durante la instalación: %v"
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr "Error durante la desinstalacion: %v"
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr "Error durante la actualización: %v"
 
@@ -799,7 +797,7 @@ msgstr "Error extrayendo %s"
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -807,49 +805,49 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr "Error obteniendo la ruta absoluta del archivo de sketch"
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr "Error obteniendo los detalles de la placa: %v"
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr "Error obteniendo la información de la placa desde Arduino Cloud"
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 "Error obteniendo el directorio actual para la base de datos de compilación%s"
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr "Error obteniendo información para la librería %s"
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr "Error obteniendo información de las librerías: %v"
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -868,15 +866,15 @@ msgstr "Error instalando la plataforma %s"
 msgid "Error installing tool %s"
 msgstr "Error instalando la herramienta %s"
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
-msgstr "Error listando las librerías: %v"
-
-#: cli/board/listall.go:64
+#: internal/cli/board/listall.go:63
 msgid "Error listing boards: %v"
 msgstr "Error listando las placas: %v"
 
-#: cli/core/list.go:64
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
+msgstr ""
+
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr "Error listando las plataformas: %v"
 
@@ -897,19 +895,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -917,7 +915,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr "Error al leer el archivo de configuración: %v"
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr "Error leyendo los archivos del sketch"
 
@@ -925,11 +923,11 @@ msgstr "Error leyendo los archivos del sketch"
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -945,15 +943,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr "Error en la búsqueda de placas: %v"
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -961,23 +963,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr "Error al desinstalar %[1]s: %[2]v"
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -1003,40 +1005,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr "Ejemplos:"
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr "FQBN"
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr "FQBN:"
 
@@ -1044,10 +1047,6 @@ msgstr "FQBN:"
 msgid "Failed chip erase"
 msgstr "Borrado del chip fallida"
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1064,19 +1063,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1084,7 +1083,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr "Archivo:"
 
@@ -1092,20 +1091,20 @@ msgstr "Archivo:"
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr "Banderas:"
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1116,15 +1115,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1132,23 +1131,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr "Banderas globales:"
 
@@ -1164,46 +1164,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "Variables globales usan %[1]s bytes de memoria dinamica."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr "ID"
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr "Id"
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr "Propiedades de identificación:"
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "Instalado"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr "Instalado %s"
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr "Instalando %s"
 
@@ -1220,11 +1221,11 @@ msgstr "Instalando la plataforma %s"
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1236,19 +1237,19 @@ msgstr "Error interno en la cache"
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr "FQBN inválido"
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr "URL inválida"
@@ -1261,8 +1262,9 @@ msgstr "URL adicional inválida: %v"
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1270,10 +1272,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1282,7 +1280,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1294,11 +1292,11 @@ msgstr "Librería inválida"
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1306,11 +1304,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1326,7 +1324,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1334,30 +1332,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr "Versión inválida"
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr "LIBNAME"
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr "LIBRERÍA"
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr "Última"
 
@@ -1365,7 +1363,8 @@ msgstr "Última"
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1395,57 +1394,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr "Librería instalada"
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr "Licencia: %s"
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr "Listar las placas conectadas."
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr "Enumera las librerías actualizables."
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr "Enumera las plataformas actualizables."
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr "Enumera todas las placas conectadas."
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1458,7 +1457,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr "Ubicación"
 
@@ -1467,15 +1466,15 @@ msgid "Low memory available, stability problems may occur."
 msgstr ""
 "Hay poca memoria disponible; pueden producirse problemas de estabilidad."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1492,7 +1491,11 @@ msgstr ""
 msgid "Missing port"
 msgstr "Falta el puerto"
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr "Falta el protocolo del puerto"
 
@@ -1512,7 +1515,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1520,32 +1523,36 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "Se encontraron varias bibliotecas para \"%[1]s\""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr "Nombre"
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr "Nombre: \"%s\""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr "No se encontraron placas."
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr "No se encontraron las librerías."
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr "No hay librerías instaladas."
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr "Ninguna librería concuerda con tu búsqueda."
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
@@ -1553,7 +1560,7 @@ msgstr ""
 "Ninguna librería concuerda con tu búsqueda.\n"
 "Querías decir...\n"
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1561,14 +1568,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr "No hay plataformas que coincidan con su búsqueda."
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr "No se ha encontrado ninguna placa compatible en %s"
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1587,110 +1590,118 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr "No utilizado: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr "OS:"
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr "Placa oficial de Arduino:"
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr "Opción:"
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1708,7 +1719,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1726,39 +1737,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1774,12 +1785,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "Puerto"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1791,23 +1802,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1819,15 +1830,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr "Programadores:"
 
@@ -1835,19 +1846,19 @@ msgstr "Programadores:"
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr "Protocolo"
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1855,19 +1866,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr "Herramienta requerida:"
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1877,106 +1888,108 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 "Busca un núcleo in el Manager de Tarjetas usando las palabras clave "
 "especificadas."
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr "Busca un núcleo in el Manager de Tarjetas."
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr "FQBN seleccionado: %s"
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr "Sentencia: %s"
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr "El servidor respondió con: %s"
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr "Muestra todos los núcleos disponibles."
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 "Muestra los núcleos y librerías obsoletas después de una actualización de "
 "índice"
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1985,44 +1998,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr "Tamaño (bytes):"
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2038,7 +2051,7 @@ msgstr ""
 "El Sketch usa %[1]s bytes (%[3]s%%) del espacio de almacenamiento de "
 "programa. El máximo es %[2]s bytes."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2076,33 +2089,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2112,23 +2125,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2138,7 +2151,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2146,7 +2159,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2167,39 +2180,39 @@ msgstr "La herramienta %s se desinstaló"
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr "Habilitar el modo verbose."
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "Tipo"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr "Tipos: %s"
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr "URL:"
 
@@ -2220,7 +2233,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr "No es posible abrir el archivo para el logging: %s"
 
@@ -2238,7 +2251,7 @@ msgstr "Desinstalando %s"
 msgid "Uninstalling %s, tool is no more required"
 msgstr "Desinstalando %s, la herramienta ya no es requerida"
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
@@ -2246,11 +2259,11 @@ msgstr ""
 "Desinstalar uno o más núcleos y sus herramientas correspondientes si ya no "
 "son usadas."
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr "Desinstalar una o más librerías."
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2258,27 +2271,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2286,32 +2299,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2319,40 +2332,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr "Subir el binario después de la compilación."
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr "Cargar el bootloader en la placa usando un programador externo."
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr "Cargar el bootloader."
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr "Uso:"
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr "Use %spara más información acerca de un comando."
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2360,12 +2373,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "Usado: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2400,29 +2407,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "Utilizando archivo previamente compilado: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr "VERSIÓN"
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2430,7 +2437,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2465,51 +2472,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr "Sitio web: %s"
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2521,6 +2524,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2529,14 +2536,14 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
-msgstr "Placa no encontrada"
-
-#: cli/board/listall.go:38 cli/board/search.go:37
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
 msgid "boardname"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
+msgstr ""
+
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
 #: arduino/discovery/discovery.go:353 arduino/discovery/discovery.go:392
 #: arduino/discovery/discovery.go:418
@@ -2551,7 +2558,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2584,7 +2591,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr "comando"
 
@@ -2607,12 +2614,12 @@ msgstr "comando fallido: %s"
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2623,10 +2630,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2639,23 +2651,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2675,15 +2687,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2695,11 +2707,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr "identificador de placa vacío"
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2707,19 +2715,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2727,19 +2735,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2751,7 +2759,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr "banderas"
 
@@ -2759,36 +2767,38 @@ msgstr "banderas"
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2813,11 +2823,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2829,7 +2835,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2841,7 +2851,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2849,31 +2859,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2881,19 +2891,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr "ítem inválido %s"
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2909,23 +2919,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2933,11 +2943,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2945,6 +2955,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2953,32 +2969,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr "Palabras clave"
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr "La librería ya está instalada"
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -3005,8 +3016,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -3039,15 +3050,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3067,7 +3078,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3076,7 +3088,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3096,7 +3108,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3108,7 +3120,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3116,7 +3128,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3128,11 +3144,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3176,11 +3192,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3188,11 +3204,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3208,7 +3224,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3219,7 +3235,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3227,11 +3243,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3255,10 +3271,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3272,12 +3284,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3288,7 +3300,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3308,15 +3320,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3324,15 +3345,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3353,7 +3374,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3383,7 +3404,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3391,7 +3412,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3412,7 +3433,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3440,19 +3461,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3460,6 +3481,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3468,10 +3501,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr "versión %s no encontrada"
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr "Escribiendo metadata del proyecto %[1]s: %[2]s"
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr "Error de formato en la respuesta del servidor"
diff --git a/i18n/data/fr.po b/i18n/data/fr.po
index d05c272f634..91a126065f4 100644
--- a/i18n/data/fr.po
+++ b/i18n/data/fr.po
@@ -11,7 +11,7 @@ msgstr ""
 "Language: fr\n"
 "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr ""
 
@@ -25,7 +25,7 @@ msgstr ""
 msgid "%[1]s invalid, rebuilding all"
 msgstr ""
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr ""
 
@@ -49,7 +49,7 @@ msgstr ""
 msgid "%[1]s, protocol version: %[2]d"
 msgstr ""
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%s déjà téléchargé"
 
@@ -61,7 +61,7 @@ msgstr "%set%sne peuvent pas être téléchargé."
 msgid "%s installed"
 msgstr ""
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr ""
 
@@ -74,7 +74,7 @@ msgstr ""
 msgid "%s is not managed by package manager"
 msgstr ""
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr ""
 
@@ -86,7 +86,7 @@ msgstr ""
 msgid "'%s' has an invalid signature"
 msgstr ""
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr ""
 
@@ -94,19 +94,23 @@ msgstr ""
 msgid "(legacy)"
 msgstr "(héritage)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr ""
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr ""
 
@@ -114,32 +118,32 @@ msgstr ""
 msgid "A programmer is required to upload"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr "Manuel d'Arduino Command Line"
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr "Aide supplémentaire sur les sujets :"
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr "Ajouter une autre valeur à un réglage."
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr "Alias :"
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr "Tous les cœurs sont à jours vers la dernière version."
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr "Déjà installé %s"
 
@@ -155,15 +159,15 @@ msgstr ""
 msgid "An error occurred detecting libraries"
 msgstr ""
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "Architecture : %s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr "L'archive existe déjà"
 
@@ -171,55 +175,51 @@ msgstr "L'archive existe déjà"
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "Archivage du noyau construit (mise en cache) dans: %[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr "Arduino CLI croquis commandes."
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI."
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr ""
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -231,32 +231,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr ""
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr ""
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr ""
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr ""
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -264,14 +260,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "Fichier du bootloader spécifié mais absent: %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -280,7 +272,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -293,31 +285,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -333,11 +330,7 @@ msgstr "Impossible de créer le fichier temporaire"
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -357,53 +350,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr "Croquis compilé introuvable %s"
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr "Compilation des croquis Arduino."
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -411,24 +400,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "Compilation du croquis..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr ""
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -436,19 +425,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr "Configuration de la plateforme."
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr "Connecté"
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -464,145 +453,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "Défaut"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr "Téléchargement %s"
 
@@ -635,27 +633,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -663,44 +661,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -733,42 +731,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -780,7 +778,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -788,48 +786,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr "Erreur lors de l'installation de la librairie Zip : %v"
 
@@ -848,15 +846,15 @@ msgstr "Erreur lors de l'installation de la plateforme %s"
 msgid "Error installing tool %s"
 msgstr "Erreur lors de l’installation de l'outil %s."
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
-msgstr "Erreur lors du listage des librairies : %v"
-
-#: cli/board/listall.go:64
+#: internal/cli/board/listall.go:63
 msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
+msgstr ""
+
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -877,19 +875,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -897,7 +895,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -905,11 +903,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -925,15 +923,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -941,23 +943,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -983,40 +985,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1024,10 +1027,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1044,19 +1043,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1064,7 +1063,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1072,20 +1071,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1096,15 +1095,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1112,23 +1111,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1145,46 +1145,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "Les variables globales utilisent %[1]s octets de mémoire dynamique."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "Installé"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1201,11 +1202,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1217,19 +1218,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1242,8 +1243,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1251,10 +1253,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1263,7 +1261,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1275,11 +1273,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1287,11 +1285,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1307,7 +1305,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1315,30 +1313,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1346,7 +1344,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1376,57 +1375,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1439,7 +1438,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1449,15 +1448,15 @@ msgstr ""
 "La mémoire disponible faible, des problèmes de stabilité pourraient "
 "survenir."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1474,7 +1473,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1494,7 +1497,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1502,38 +1505,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "Plusieurs bibliothèque trouvées pour \"%[1]s\""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1541,14 +1548,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1567,110 +1570,118 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr "Non utilisé: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1688,7 +1699,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1706,39 +1717,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1754,12 +1765,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "Port"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1771,23 +1782,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1799,15 +1810,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1815,19 +1826,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1835,19 +1846,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1857,102 +1868,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1961,44 +1974,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2014,7 +2027,7 @@ msgstr ""
 "Le croquis utilise %[1]s octets (%[3]s%%) de l'espace de stockage de "
 "programmes. Le maximum est de %[2]s octets."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2052,33 +2065,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2088,23 +2101,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2114,7 +2127,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2122,7 +2135,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2141,39 +2154,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr ""
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2194,7 +2207,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2212,17 +2225,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2230,27 +2243,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2258,32 +2271,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2291,40 +2304,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2332,12 +2345,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "Utilisé: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2375,29 +2382,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "Utilisation du fichier déjà compilé: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2405,7 +2412,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2440,51 +2447,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2496,6 +2499,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2504,12 +2511,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2526,7 +2533,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2559,7 +2566,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2582,12 +2589,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2598,10 +2605,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2614,23 +2626,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2650,15 +2662,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2670,11 +2682,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2682,19 +2690,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2702,19 +2710,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2726,7 +2734,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2734,36 +2742,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2788,11 +2798,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2804,7 +2810,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2816,7 +2826,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2824,31 +2834,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2856,19 +2866,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2884,23 +2894,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2908,11 +2918,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2920,6 +2930,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2928,32 +2944,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2980,8 +2991,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -3014,15 +3025,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3042,7 +3053,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3051,7 +3063,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3071,7 +3083,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3083,7 +3095,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3091,7 +3103,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3103,11 +3119,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3151,11 +3167,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3163,11 +3179,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3183,7 +3199,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3194,7 +3210,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3202,11 +3218,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3230,10 +3246,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3247,12 +3259,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3263,7 +3275,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3283,15 +3295,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3299,15 +3320,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3328,7 +3349,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3358,7 +3379,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3366,7 +3387,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3387,7 +3408,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3415,19 +3436,19 @@ msgstr "paquet inconnu %s"
 msgid "unknown platform %s:%s"
 msgstr "plateforme inconnue %s:%s"
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr "extension de croquis inconnue '%s' "
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr "algorithme de hachage non supporté"
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr "mise à jour de arduino:samd vers la dernière version"
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr "tout mettre à jour tout vers la dernière version"
 
@@ -3435,6 +3456,18 @@ msgstr "tout mettre à jour tout vers la dernière version"
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3443,10 +3476,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/he.po b/i18n/data/he.po
index ba7ab00a3e2..f4d92238599 100644
--- a/i18n/data/he.po
+++ b/i18n/data/he.po
@@ -9,7 +9,7 @@ msgstr ""
 "Language: he\n"
 "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr "%[1]s%[2]s גרסה: %[3]s קומיט: %[4]sתאריך: %[5]s"
 
@@ -21,7 +21,7 @@ msgstr ""
 msgid "%[1]s invalid, rebuilding all"
 msgstr ""
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr ""
 
@@ -45,7 +45,7 @@ msgstr ""
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, גרסאת פרוטוקול: %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr ""
 
@@ -57,7 +57,7 @@ msgstr ""
 msgid "%s installed"
 msgstr "%s מותקן"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr ""
 
@@ -70,7 +70,7 @@ msgstr "%s אינו תיקייה"
 msgid "%s is not managed by package manager"
 msgstr "%s אינו מנוהל על ידי מנהל ההתקנות"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr ""
 
@@ -82,7 +82,7 @@ msgstr ""
 msgid "'%s' has an invalid signature"
 msgstr ""
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(מוסתר)"
 
@@ -90,19 +90,23 @@ msgstr "(מוסתר)"
 msgid "(legacy)"
 msgstr ""
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr ""
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr ""
 
@@ -110,32 +114,32 @@ msgstr ""
 msgid "A programmer is required to upload"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr ""
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr ""
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr ""
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr ""
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr ""
 
@@ -151,15 +155,15 @@ msgstr ""
 msgid "An error occurred detecting libraries"
 msgstr ""
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "ארכיטקטורה: %s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr ""
 
@@ -167,55 +171,51 @@ msgstr ""
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr ""
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr "פקודות סקיצה בשורת הפקודה של ארדואינו."
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "שורת הפקודה של ארדואינו."
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr "פקודות לוח של ארדואינו."
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -227,32 +227,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr ""
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr ""
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr ""
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr ""
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -260,14 +256,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr ""
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -276,7 +268,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -289,31 +281,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -329,11 +326,7 @@ msgstr ""
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -353,53 +346,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr ""
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -407,24 +396,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr ""
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr ""
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -432,19 +421,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr ""
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -460,145 +449,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr ""
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr ""
 
@@ -631,27 +629,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -659,44 +657,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -729,42 +727,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -776,7 +774,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -784,48 +782,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -844,15 +842,15 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr ""
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
+#: internal/cli/board/listall.go:63
+msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/board/listall.go:64
-msgid "Error listing boards: %v"
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -873,19 +871,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -893,7 +891,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -901,11 +899,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -921,15 +919,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -937,23 +939,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -979,40 +981,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1020,10 +1023,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1040,19 +1039,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1060,7 +1059,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1068,20 +1067,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1092,15 +1091,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1108,23 +1107,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1138,46 +1138,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr ""
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr ""
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1194,11 +1195,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1210,19 +1211,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1235,8 +1236,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1244,10 +1246,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1256,7 +1254,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1268,11 +1266,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1280,11 +1278,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1300,7 +1298,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1308,30 +1306,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1339,7 +1337,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1369,57 +1368,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1432,7 +1431,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1440,15 +1439,15 @@ msgstr ""
 msgid "Low memory available, stability problems may occur."
 msgstr ""
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1465,7 +1464,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1485,7 +1488,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1493,38 +1496,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr ""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1532,14 +1539,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1556,110 +1559,118 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr ""
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1677,7 +1688,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1695,39 +1706,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1743,12 +1754,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr ""
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1760,23 +1771,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1788,15 +1799,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1804,19 +1815,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1824,19 +1835,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1846,102 +1857,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1950,44 +1963,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2001,7 +2014,7 @@ msgid ""
 " bytes."
 msgstr ""
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2039,33 +2052,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2075,23 +2088,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2101,7 +2114,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2109,7 +2122,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2128,39 +2141,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr ""
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2181,7 +2194,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2199,17 +2212,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2217,27 +2230,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2245,32 +2258,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2278,40 +2291,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2319,12 +2332,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2359,29 +2366,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2389,7 +2396,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2419,51 +2426,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2475,6 +2478,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2483,12 +2490,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2505,7 +2512,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2538,7 +2545,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2561,12 +2568,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2577,10 +2584,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2593,23 +2605,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2629,15 +2641,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2649,11 +2661,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2661,19 +2669,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2681,19 +2689,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2705,7 +2713,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2713,36 +2721,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2767,11 +2777,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2783,7 +2789,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2795,7 +2805,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2803,31 +2813,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2835,19 +2845,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2863,23 +2873,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2887,11 +2897,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2899,6 +2909,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2907,32 +2923,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2959,8 +2970,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -2993,15 +3004,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3021,7 +3032,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3030,7 +3042,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3050,7 +3062,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3062,7 +3074,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3070,7 +3082,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3082,11 +3098,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3130,11 +3146,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3142,11 +3158,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3162,7 +3178,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3173,7 +3189,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3181,11 +3197,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3209,10 +3225,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3226,12 +3238,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3242,7 +3254,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3262,15 +3274,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3278,15 +3299,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3307,7 +3328,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3337,7 +3358,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3345,7 +3366,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3366,7 +3387,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3394,19 +3415,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3414,6 +3435,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3422,10 +3455,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/it_IT.po b/i18n/data/it_IT.po
index d84391a6993..5872155f336 100644
--- a/i18n/data/it_IT.po
+++ b/i18n/data/it_IT.po
@@ -5,17 +5,18 @@
 # Alessandro Ranellucci <alessandro@pintle.it>, 2021
 # Cristian Maglie <c.maglie@arduino.cc>, 2022
 # Gaia Castronovo <g.castronovo@arduino.cc>, 2022
+# Gabriel F., 2022
 # CLI team <prj_cli_team@arduino.cc>, 2022
-# Giovanni Scafora <scafora.giovanni@gmail.com>, 2022
+# Giovanni Scafora <scafora.giovanni@gmail.com>, 2023
 # 
 msgid ""
 msgstr ""
-"Last-Translator: Giovanni Scafora <scafora.giovanni@gmail.com>, 2022\n"
+"Last-Translator: Giovanni Scafora <scafora.giovanni@gmail.com>, 2023\n"
 "Language-Team: Italian (Italy) (https://www.transifex.com/arduino-1/teams/108174/it_IT/)\n"
 "Language: it_IT\n"
 "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr "%[1]s %[2]s Versione: %[3]s Commit: %[4]s Data: %[5]s"
 
@@ -27,11 +28,11 @@ msgstr ""
 
 #: legacy/builder/wipeout_build_path_if_build_options_changed.go:49
 msgid "%[1]s invalid, rebuilding all"
-msgstr "%[1]s non è valido, ricompilo tutto."
+msgstr "%[1]s non è valido, ricompilo tutto"
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
-msgstr "%[1]s è richiesto ma %[2]s è attualmente installato."
+msgstr "%[1]s è richiesto ma %[2]s risulta attualmente installato."
 
 #: legacy/builder/builder_utils/utils.go:433
 msgid "%[1]s pattern is missing"
@@ -53,7 +54,7 @@ msgstr "%[1]s, porte: %[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, versione protocollo: %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr " %s già scaricato"
 
@@ -65,7 +66,7 @@ msgstr "%s e %s non possono essere usati insieme"
 msgid "%s installed"
 msgstr "%s installato"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%s è già installato."
 
@@ -78,7 +79,7 @@ msgstr "%s non è una directory"
 msgid "%s is not managed by package manager"
 msgstr "%s non è gestito dal gestore pacchetti"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "%s deve essere installato."
 
@@ -90,7 +91,7 @@ msgstr "Manca il pattern %s"
 msgid "'%s' has an invalid signature"
 msgstr "'%s' ha una firma invalida"
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(nascosto)"
 
@@ -98,7 +99,7 @@ msgstr "(nascosto)"
 msgid "(legacy)"
 msgstr "(ereditato)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
@@ -106,7 +107,7 @@ msgstr ""
 "--git-url e --zip-path sono disabilitati per impostazione predefinita, per "
 "maggiori informazioni vedere: %v"
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
@@ -114,7 +115,11 @@ msgstr ""
 "I flag --git-url e --zip-path consentono l'installazione di file non "
 "attendibili, utilizzateli a vostro rischio e pericolo."
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ".ino file già esiste"
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr "È disponibile una nuova versione di Arduino CLI:"
 
@@ -122,32 +127,32 @@ msgstr "È disponibile una nuova versione di Arduino CLI:"
 msgid "A programmer is required to upload"
 msgstr "Per caricare è necessario un programmatore"
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr "ARCH"
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr "MANUALE DELLA LINEA DI COMANDO ARDUINO"
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr "Informazioni aggiuntive:"
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr "Aggiunge uno o più valori a un'impostazione."
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr "Alias:"
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr "Tutti i core sono già all'ultima versione"
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr "Già installato %s"
 
@@ -163,15 +168,15 @@ msgstr "Si è verificato un errore durante l'aggiunta di un prototipo"
 msgid "An error occurred detecting libraries"
 msgstr "Si è verificato un errore durante il rilevamento delle librerie"
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
-msgstr "Aggiungi il logging di debug al file specificato"
+msgstr "Aggiungi il log di debug in coda al file specificato"
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "Architettura: %s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr "L'archivio è esistente"
 
@@ -179,55 +184,51 @@ msgstr "L'archivio è esistente"
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "Archivio il core compilato (caching) in: %[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr "Comandi degli sketch di Arduino CLI."
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI"
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr "Interfaccia a linea di comando di Arduino (arduino-cli)."
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr "Comandi delle schede Arduino."
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr "Comandi della cache Arduino."
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr "Comandi Arduino riguardo le librerie."
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr "Comandi di configurazione Arduino."
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr "Operazioni core Arduino"
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr "Errore di argomenti: %v"
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr "Errore di connessione alla scheda: %v"
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr "Collega uno sketch ad una scheda."
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr "Autore: %s"
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -243,49 +244,41 @@ msgstr ""
 "La disinstallazione automatica delle librerie non può essere eseguita, "
 "rimuovile manualmente."
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr "Disponibile"
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr "Comandi disponibili:"
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr "File binario da caricare."
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr "Nome scheda"
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr "Scheda trovata: %s"
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr "Nome scheda:"
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr "Versione scheda:"
 
 #: legacy/builder/merge_sketch_with_bootloader.go:69
 msgid "Bootloader file specified but missing: %[1]s"
-msgstr "Il file del bootloader è specificato ma mancante: %[1]s"
+msgstr "Il file del bootloader specificato è inesistente: %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 "Le build di 'core.a' vengono salvate in questo percorso per essere "
 "memorizzate nella cache e riutilizzate."
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr "La directory delle librerie integrate non è stata impostata"
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr "Non è possibile creare la directory dei dati %s"
@@ -294,7 +287,7 @@ msgstr "Non è possibile creare la directory dei dati %s"
 msgid "Can't create sketch"
 msgstr "Non è possibile creare lo sketch"
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr "Non è possibile scaricare la libreria"
 
@@ -307,32 +300,37 @@ msgstr "Dipendenze per la piattaforma %s non trovate"
 msgid "Can't open sketch"
 msgstr "Non è possibile aprire lo sketch"
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr "Non è possibile impostare valori multipli nella chiave %v"
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
-msgstr "Impossibile utilizzare i flag %s contemporaneamente."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
+msgstr "Non è possibile utilizzare insieme i seguenti flag: %s"
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr "Non è possibile salvare il file di configurazione: %v"
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr "Non è possibile scrivere il log di debug: %s"
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr "Non è possibile creare la directory di build della cache."
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr "Non è possibile creare la directory per la build"
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 "Non è stato possibile creare la directory del file di configurazione: %v"
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr "Non è possibile creare il file di configurazione: %v"
 
@@ -348,11 +346,7 @@ msgstr "Non è possibile creare il file temporaneo"
 msgid "Cannot execute debug tool"
 msgstr "Non è possibile eseguire lo strumento di debug"
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr "Non è possibile esportare i medatati dello sketch"
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr "Percorso assoluto non trovato: %v"
 
@@ -372,36 +366,32 @@ msgstr "Non è possibile effettuare il reset della porta: %s"
 msgid "Cannot upgrade platform"
 msgstr "Non è possibile aggiornare la piattaforma"
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr "Categoria: %s"
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr "Controllare lo stato delle dipendenze per la libreria specificata."
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr "Controllo dei prerequisiti per installazione della lib"
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr "Il checksum è diverso dal checksum in package.json"
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr "Checksum:"
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr "Pulire le cache."
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 "Elenco separato da virgole degli URL aggiuntivi per il Boards Manager."
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
@@ -409,19 +399,19 @@ msgstr ""
 "Il comando continua a funzionare e stampa l'elenco delle schede collegate "
 "ogni volta che viene apportata una modifica."
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr "Sketch compilato non trovato in %s"
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr "Compilazione sketch Arduino"
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr "Compilazione core..."
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr "Compilazione librerie..."
 
@@ -429,26 +419,26 @@ msgstr "Compilazione librerie..."
 msgid "Compiling library \"%[1]s\""
 msgstr "Compilazione libreria \"%[1]s\""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "Compilazione sketch..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 "Il file di configurazione esiste già, usa --overwrite per sovrascrivere "
 "quello esistente."
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr "File di configurazione scritto su: %s"
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr "Configurazione della porta."
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr "Opzioni di configurazione per %s"
 
@@ -456,19 +446,19 @@ msgstr "Opzioni di configurazione per %s"
 msgid "Configuring platform."
 msgstr "Configurazione della piattaforma."
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr "Connesso"
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr "Connesso a %s! Premere CTRL-C per uscire."
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr "Core"
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr "Non è possibile connettersi via HTTP"
 
@@ -485,23 +475,23 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr "Non è possibile determinare la dimensione del programma"
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr "Impossibile ottenere la directory di lavoro corrente: %v"
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr "Crea un nuovo Sketch"
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr "Crea e stampa una configurazione del profilo dalla build."
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr "Crea un file zip contenente tutti gli sketch."
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
@@ -509,7 +499,7 @@ msgstr ""
 "Crea o aggiorna il file di configurazione nella directory dei dati o nella "
 "directory personalizzata con le impostazioni di configurazione correnti."
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
@@ -517,46 +507,54 @@ msgstr ""
 "Attualmente, i profili di compilazione supportano solo le librerie "
 "disponibili tramite Arduino Library Manager."
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr "DEPRECATO"
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr "Deamon è ora in ascolto su %s:%s"
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr "Eseguire il debug degli sketch di Arduino"
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 "Eseguire il debug degli sketch di Arduino. (questo comando apre una sessione"
 " gdb interattiva)"
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr "Interprete di debug, ad esempio: %s"
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr "Debugging non supportato per la scheda %s"
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr "Debugging supportato:"
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "Predefinito"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr "FQBN predefinito impostato su"
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr "Porta predefinita impostata su"
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr "Elimina la cache delle Schede/Gestire di download delle Librerie"
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
@@ -565,37 +563,37 @@ msgstr ""
 "archivio sono organizzati durante l'installazione delle librerie e delle "
 "schede. "
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 "Elimina una chiave delle impostazioni e tutte le sue chiavi secondarie."
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr "Dipendenze: %s"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr "Descrizione"
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr "Rilevamento delle librerie utilizzate in corso..."
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr "Rileva e visualizza un elenco di schede collegate al computer."
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr "Directory contenente i binari per il debug."
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr "Directory contenente i file binari da caricare."
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
@@ -603,41 +601,42 @@ msgstr ""
 "Directory in cui salvare i file generati. L'impostazione predefinita è "
 "'./docs', la directory deve esistere."
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 "Disabilita la descrizione del completamento per le shell che la supportano."
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr "Disconnesso"
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr "Visualizza solo le chiamate gRPC fornite"
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr "Non installare le dipendenze."
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr "Non sovrascrivere le librerie già installate."
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr "Non sovrascrivere le piattaforme già installate."
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 "Non eseguire il caricamento vero e proprio, ma solo le azioni di logout."
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr "Non terminare il processo del demone se il processo principale muore"
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr "Sto scaricando %s"
 
@@ -670,27 +669,27 @@ msgstr "Sto scaricando la piattaforma %s"
 msgid "Downloading tool %s"
 msgstr "Sto scaricando il tool %s"
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr "Scarica uno o più core e le corrispondenti dipendenze dei tool."
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr "Scarica uno o più librerie, senza installarle."
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr "Abilita il debug logging delle chiamate gRPC"
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr "Immettere il percorso del file zip"
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr "Immettere l'url del git delle librerie ospitate nei repository"
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 "Si è verificato un errore durante l'aggiunta del file all'archivio dello "
@@ -702,47 +701,47 @@ msgstr ""
 "Si è verificato un errore durante l'archiviazione del core compilato "
 "(caching) in %[1]s: %[2]s"
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr "Errore durante l'archiviazione: %v"
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 "Si è verificato un errore durante il calcolo del percorso relativo del file"
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr "Si è verificato un errore durante la pulizia della cache: %v"
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr "Si è verificato un errore durante la copia del file di output %s"
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr "Si è verificato un errore durante la creazione dell'istanza: %v"
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 "Si è verificato un errore durante la creazione della cartella di output"
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 "Si è verificato un errore durante la creazione dell'archivio dello sketch"
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr "Errore durante la creazione dello sketch: %v"
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr "Si è verificato un errore durante il rilevamento delle schede: %v"
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr "Si è verificato un errore durante lo scaricamento di %[1]s:%[2]v"
 
@@ -777,42 +776,42 @@ msgstr "Errore durante il download della piattaforma %s"
 msgid "Error downloading tool %s"
 msgstr "Errore durante il download del tool %s"
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr "Errore durante il debug: %v"
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr "Si è verificato un errore durante il rilevamento FQBN: %v"
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr "Si è verificato un errore durante la codifica JSON dell'output: %v"
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr "Errore durante il caricamento di: %v"
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr "Si è verificato un errore durante la codifica YAML dell'output: %v"
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr "Si è verificato un errore durante la compilazione: %v"
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr "Errore durante l'installazione: %v"
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr "Si è verificato un errore durante la disintallazione: %v"
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr "Si è verificato un errore durante l'aggiornamento: %v"
 
@@ -825,7 +824,7 @@ msgid "Error finding build artifacts"
 msgstr ""
 "Si è verificato un errore durante la ricerca degli artefatti di compilazione"
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 "Si è verificato un errore durante l'acquisizione delle informazioni di "
@@ -837,58 +836,58 @@ msgstr ""
 "Si è verificato un errore nell'acquisizione del percorso assoluto "
 "dell'archivio degli sketch"
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr "Impossibile ottenere i dettagli della scheda: %v"
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-"Si è verificato un errore durante l'acquisizione delle informazioni sulla "
-"scheda da Arduino Cloud"
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 "Si è verificato un errore durante l'acquisizione della directory corrente "
 "per il database di compilazione: %s"
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 "Si è verificato un errore durante l'acquisizione delle informazioni della "
 "libreria %s"
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr "Impossibile ottenere le informazioni sulle librerie: %v"
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 "Si è verificato un errore durante l'acquisizione dei metadati della porta: "
 "%v"
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 "Si è verificato un errore durante l'acquisizione dei dettagli delle "
 "impostazioni della porta: %s"
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+"Si è verificato un errore durante la ricezione dell'input da parte "
+"dell'utente"
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr "Si è verificato un errore durante l'inizializzazione dell'istanza: %v"
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr "Errore durante l'installazione %s: %v"
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr "Errore durante l'installazione della libreria Git: %v"
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 "Si è verificato un errore durante l'installazione della libreria zip: %v"
@@ -909,19 +908,17 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr "Errore durante l'installazione del tool %s"
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
-msgstr ""
-"Si è verificato un errore durante la visualizzazione dell'elenco delle "
-"librerie: %v"
-
-#: cli/board/listall.go:64
+#: internal/cli/board/listall.go:63
 msgid "Error listing boards: %v"
 msgstr ""
 "Si è verificato un errore durante la visualizzazione dell'elenco delle "
 "schede: %v"
 
-#: cli/core/list.go:64
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
+msgstr ""
+
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 "Si è verificato un errore durante la visualizzazione dell'elenco delle "
@@ -947,22 +944,22 @@ msgstr "Si è verificato un errore durante il caricamento dell'indice %s"
 msgid "Error opening %s"
 msgstr "Si è verificato un errore durante l'apertura di %s"
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 "Si è verificato un errore durante l'apertura del file di log di debug: %s"
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr "Si è verificato un errore durante l'apertura dello sketch: %v"
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 "Si è verificato un errore durante l'apertura del codice sorgente che "
 "sovrascrive i file: %v"
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 "Si è verificato un errore durante la lettura della directory di compilazione"
@@ -971,7 +968,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr "Errore durante la lettura del file di configurazione: %v"
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr "Si è verificato un errore durante la lettura dei file degli sketch"
 
@@ -979,13 +976,13 @@ msgstr "Si è verificato un errore durante la lettura dei file degli sketch"
 msgid "Error resolving FQBN"
 msgstr "Si è verificato un errore durante la risoluzione di FQBN"
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 "Si è verificato un errore durante la risoluzione delle dipendenze di %[1]s: "
 "%[2]s"
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 "Si è verificato un errore durante il recupero dell'elenco dei core: %v "
@@ -1005,15 +1002,19 @@ msgstr ""
 "Si è verificato un errore durante il salvataggio della firma dell'indice "
 "scaricato"
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr "Errore nel salvataggio dei metadata"
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr "Si è verificato un errore durante la ricerca delle schede: %v"
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr "Si è verificato un errore durante la ricerca delle librerie: %v"
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr "Si è verificato un errore durante la ricerca delle piattaforme: %v"
 
@@ -1023,25 +1024,25 @@ msgstr ""
 "Si è verificato un errore durante la serializzazione del database di "
 "compilazione: %s"
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr "Si è verificato un errore durante l'avvio della rilevazione: %v"
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr "Si è verificato un errore durante la disinstallazione di %[1]s: %[2]v"
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr "Si è verificato un errore durante l'aggiornamento degli indici: %v"
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 "Si è verificato un errore durante l'aggiornamento dell'indice della "
 "libreria: %v"
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr "Si è verificato un errore durante l'aggiornamento delle librerie"
 
@@ -1074,42 +1075,43 @@ msgstr ""
 "Si è verificato un errore durante la scrittura del database di compilazione:"
 " %s"
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr "Errore: la descrizione del comando non è supportata da %v"
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr "Errore: il codice sorgente non è valido e sovrascrive i dati: %v"
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr "Evento"
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr "Esempi della libreria %s"
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr "Esempi:"
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr "Eseguibile per il debug"
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 "Ci si aspettava che lo sketch compilato fosse nella directory %s, invece è "
 "un file"
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr "FQBN"
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr "FQBN:"
 
@@ -1117,10 +1119,6 @@ msgstr "FQBN:"
 msgid "Failed chip erase"
 msgstr "Impossibile cancellare il chip"
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr "Impossibile scegliere la porta, indirizzo: %s"
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr "Programmazione non riuscita"
@@ -1137,22 +1135,22 @@ msgstr "Impossibile creare la directory dei dati"
 msgid "Failed to create downloads directory"
 msgstr "Impossibile creare la directory degli scaricamenti"
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 "Impossibile ascoltare sulla porta TCP: %[1]s. %[2]s non è una porta valida."
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 "Impossibile ascoltare sulla porta TCP: %[1]s. %[2]s è un nome sconosciuto."
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 "Impossibile ascoltare sulla porta TCP: %[1]s. Errore imprevisto: %[2]v"
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr "Impossibile ascoltare sulla porta TCP: %s. L'indirizzo è già in uso."
 
@@ -1160,7 +1158,7 @@ msgstr "Impossibile ascoltare sulla porta TCP: %s. L'indirizzo è già in uso."
 msgid "Failed uploading"
 msgstr "Caricamento non riuscito"
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr "File:"
 
@@ -1168,22 +1166,22 @@ msgstr "File:"
 msgid "First message must contain debug request, not data"
 msgstr "Il primo messaggio deve contenere la richiesta di debug, non i dati."
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
-msgstr "Il flag %[1]s è obbligatorio se usato insieme al flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
+msgstr "Il flag %[1]s è obbligatorio se usato insieme a: %[2]s"
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr "Flag:"
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 "Forza l'esecuzione degli script post-install (se la CLI non è in esecuzione "
 "interattiva)."
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1198,15 +1196,15 @@ msgstr ""
 "Trovata %d piattaforma di riferimento \"%s\":\n"
 "%s"
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr "Fully Qualified Board Name, ad esempio: arduino:avr:uno"
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr "Percorso del server GDB"
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr "Tipo di server GDB"
 
@@ -1214,23 +1212,24 @@ msgstr "Tipo di server GDB"
 msgid "GDB server '%s' is not supported"
 msgstr "Il server GDB '%s' non è supportato"
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr "Genera il completamento di bash e le pagine man dei comandi."
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr "Genera gli script di completamento"
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr "Genera gli script di completamento per varie shell"
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr "Sto generando i prototipi di funzione..."
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr "Flag globali:"
 
@@ -1247,23 +1246,24 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "Le variabili globali usano %[1]s byte di memoria dinamica."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr "ID"
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr "Id"
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr "Proprietà identificative:"
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr "Se impostato, i binari saranno esportati nella cartella degli sketch."
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
@@ -1271,25 +1271,25 @@ msgstr ""
 "Se impostato, restituisce tutti i core installabili e installati, compresi "
 "quelli installati manualmente."
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 "Include le librerie integrate (dalle piattaforme e dall'IDE) nell'elenco."
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr "Include %s directory nell'archivio."
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "Installato"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr "Installato %s"
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr "Installazione %s"
 
@@ -1306,11 +1306,11 @@ msgstr "Sto installando la piattaforma %s"
 msgid "Installing tool %s"
 msgstr "Sto installando il tool %s"
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr "Installa uno o più core e le corrispondenti dipendenze dei tool."
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr "Installa nel sistema una o più librerie specificate."
 
@@ -1322,21 +1322,21 @@ msgstr "Errore interno alla cache"
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr "La proprietà '%[1]s' non è valida: %[2]s"
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 "Chiamata non valida: dovrebbe mostrare la guida, ma è disponibile solo in "
 "modalità testo."
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr "Il formato URL del dispositivo non è valido"
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr "FQBN non è valido"
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr "Indirizzo TCP non valido: manca la porta"
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr "URL non è valido"
@@ -1350,8 +1350,9 @@ msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 "L' archivio non è valido: il file %{1} non è presente nell'archivio %{2}s"
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr "L' argomento passato non è valido: %v"
 
@@ -1359,10 +1360,6 @@ msgstr "L' argomento passato non è valido: %v"
 msgid "Invalid data size regexp: %s"
 msgstr "La dimensione dei dati della regexp non è valida: %s"
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr "Tipo di porta del dispositivo non valido"
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr "La dimensione della eeprom della regexp non è valida: %s"
@@ -1371,7 +1368,7 @@ msgstr "La dimensione della eeprom della regexp non è valida: %s"
 msgid "Invalid instance"
 msgstr "Istanza non è valida"
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr "Oggetto invalido %s"
 
@@ -1383,11 +1380,11 @@ msgstr "Libreria non è valida"
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr "network.proxy '%[1]s' non è valido: %[2]s"
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr "Opzione non valida per --log-level: %s"
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr "Formato di output non valido: %s"
 
@@ -1395,11 +1392,11 @@ msgstr "Formato di output non valido: %s"
 msgid "Invalid package index in %s"
 msgstr "Indice del pacchetto non valido in %s"
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr "Il parametro %s non è valido: versione non consentita"
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr "Il valore pid non è valido: '%s'"
 
@@ -1415,7 +1412,7 @@ msgstr "Scrittura non valida in platform.txt"
 msgid "Invalid size regexp: %s"
 msgstr "La dimensione della regexp non è valida: %s"
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr "Timeout non valido: %s"
 
@@ -1423,11 +1420,11 @@ msgstr "Timeout non valido: %s"
 msgid "Invalid version"
 msgstr "Versione non è valida"
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr "Il valore di vid non è valido: '%s'"
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
@@ -1435,20 +1432,20 @@ msgstr ""
 "Produce solo il database di compilazione, senza compilare. Tutti i comandi "
 "di compilazione vengono saltati, ad eccezione dei pre* hooks."
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr "LIBNAME"
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr "LIBRERIA"
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr "LIBRARY_NAME"
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr "Ultimo"
 
@@ -1456,7 +1453,8 @@ msgstr "Ultimo"
 msgid "Library %[1]s has been declared precompiled:"
 msgstr "La libreria %[1]s è stata dichiarata precompilata:"
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1489,19 +1487,19 @@ msgstr ""
 msgid "Library install failed"
 msgstr "Impossibile installare la libreria"
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr "La libreria è stata installata"
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr "Licenza: %s"
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr "Collegare tutto insieme..."
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
@@ -1509,15 +1507,15 @@ msgstr ""
 "Elenca tutte le schede in cui è installata la piattaforma di supporto. È possibile cercare\n"
 "una scheda specifica, se si specifica il nome della scheda"
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr "Elenca tutte le schede conosciute e il corrispondente FQBN."
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr "Lista delle schede connesse."
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
@@ -1525,7 +1523,7 @@ msgstr ""
 "Elenco delle opzioni della scheda separate da virgole. Oppure può essere "
 "usato più volte per più opzioni."
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
@@ -1533,19 +1531,19 @@ msgstr ""
 "Elenco delle proprietà di costruzione personalizzate separate da virgole. "
 "Oppure può essere usato più volte per più proprietà."
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr "Lista delle libreria con update disponibili."
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr "Lista delle piattaforme con update disponibili."
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr "Lista di tutte le schede connesse."
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr "Elenca i core e le librerie che possono essere aggiornati"
 
@@ -1558,7 +1556,7 @@ msgstr "Sto caricando il file dell'indice: %v"
 msgid "Loading libraries: %v"
 msgstr "Caricamento librerie: %v"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr "Posizione"
 
@@ -1567,16 +1565,16 @@ msgid "Low memory available, stability problems may occur."
 msgstr ""
 "Poca memoria disponibile, potrebbero presentarsi problemi di stabilità"
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr "Manutentore: %s"
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 "Tempo massimo di attesa per la rilevazione della porta, ad es: 30s, 1m"
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1595,7 +1593,11 @@ msgstr "FQBN mancante (Fully Qualified Board Name)"
 msgid "Missing port"
 msgstr "Porta mancante"
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr "Porta di comunicazione non trovata"
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr "Manca il protocollo della porta"
 
@@ -1615,7 +1617,7 @@ msgstr "Manca il percorso dello sketch"
 msgid "Monitor '%s' not found"
 msgstr "Impossibile trovare il monitor '%s'"
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr "Impostazioni sulla porta del monitor:"
 
@@ -1623,32 +1625,36 @@ msgstr "Impostazioni sulla porta del monitor:"
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "Più di una libreria trovata per \"%[1]s\""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr "Nome"
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr "Nome: \"%s\""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr "Nessuna scheda trovata."
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr "Nessuna porta predefinita o FQBN impostato"
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr "Nessuna libreria trovata."
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr "Nessuna libreria installata."
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr "Non ci sono librerie corrispondenti alla tua ricerca."
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
@@ -1656,7 +1662,7 @@ msgstr ""
 "Non ci sono biblioteche corrispondenti alla tua ricerca.\n"
 "Intendevi dire...\n"
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr "Non sono disponibili aggiornamenti per le librerie."
 
@@ -1664,14 +1670,10 @@ msgstr "Non sono disponibili aggiornamenti per le librerie."
 msgid "No monitor available for the port protocol %s"
 msgstr "Nessun monitor disponibile per il protocollo della porta %s"
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr "Non ci sono piattaforme corrispondenti alla tua ricerca."
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr "Non è stata trovata alcuna scheda supportata in %s"
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1691,51 +1693,51 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr "Non usata: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr "Sistema Operativo:"
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr "Scheda Arduino ufficiale:"
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr "Apre una porta di comunicazione con una scheda."
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr "Opzione:"
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 "Facoltativo, può essere: %s. Utilizzato per indicare a gcc quale livello di "
 "warning utilizzare (flag -W)."
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 "Facoltativo, ripulisce la cartella di build e non usa nessuna build in "
 "cache."
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 "Facoltativo, ottimizza l'output di compilazione per il debug, piuttosto che "
 "per il rilascio."
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr "Facoltativo, sopprime quasi tutti gli output."
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr "Facoltativo, attiva la modalità verbosa."
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
@@ -1743,7 +1745,7 @@ msgstr ""
 "Facoltativo. Percorso di un file .json che contiene una serie di "
 "sostituzioni del codice sorgente dello sketch."
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
@@ -1751,44 +1753,52 @@ msgstr ""
 "Sovrascrive una proprietà di build con un valore personalizzato. Può essere "
 "usato più volte per più proprietà."
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr "Sovrascrivi la configurazione corrente del file."
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr "Sovrascrivi un archivio già esistente"
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr "Sovrascrivi il file sketch .ino esistente"
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr "PACKAGER"
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr "URL pacchetto:"
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr "Manutentore del pacchetto: "
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr "Nome pacchetto:"
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr "Aiuto in linea del pacchetto:"
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr "Website pacchetto:"
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr "Paragrafo: %s"
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr "Percorso"
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
@@ -1796,7 +1806,7 @@ msgstr ""
 "Percorso di un gruppo di librerie. Può essere usato più volte o le voci "
 "possono essere separate da virgole."
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
@@ -1804,11 +1814,11 @@ msgstr ""
 "Percorso della cartella principale di una singola libreria. Può essere usato"
 " più volte o le voci possono essere separate da virgole."
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr "Percorso del file in cui verranno scritti i log."
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1828,7 +1838,7 @@ msgstr "La piattaforma %s è già installata"
 msgid "Platform %s installed"
 msgstr "La piattaforma %s è installata"
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1848,39 +1858,39 @@ msgstr "La piattaforma '%s' è già aggiornata all'ultima versione"
 msgid "Platform '%s' not found"
 msgstr "Impossibile trovare la piattaforma '%s'"
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr "ID piattaforma"
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr "L' ID della piattaforma non è esatto"
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr "URL piattaforma:"
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr "Architettura della piattaforma:"
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr "Categoria della piattaforma:"
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr "Checksum della piattaforma:"
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr "Nome del file della piattaforma:"
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr "Nome piattaforma:"
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr "Dimensione della piattaforma (bytes):"
 
@@ -1900,13 +1910,13 @@ msgstr ""
 "Specificare un FQBN. La scheda sulla porta %[1]s con protocollo %[2]s non "
 "può essere identificata"
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "Porta"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
-msgstr "Porta chiusa:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
+msgstr "Porta chiusa: %v"
 
 #: arduino/errors.go:632
 msgid "Port monitor error"
@@ -1917,23 +1927,23 @@ msgstr "Errore di monitoraggio della porta"
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr "Impossibile trovare la libreria precompilata in \"%[1]s\""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr "Visualizza i dettagli di una scheda."
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr "Stampa il codice preelaborato su stdout invece di compilarlo."
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr "Stampa i log sull'output standard."
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr "Stampa la configurazione attuale"
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr "Stampa la configurazione attuale."
 
@@ -1945,15 +1955,15 @@ msgstr "Impossibile trovare il profilo '%s'"
 msgid "Programmer '%s' not found"
 msgstr "Impossibile trovare il programmatore '%s'"
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr "Nome del programmatore"
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr "Programmatore da utilizzare, ad esempio: atmel_ice"
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr "Programmatori:"
 
@@ -1961,19 +1971,19 @@ msgstr "Programmatori:"
 msgid "Property '%s' is undefined"
 msgstr "La proprietà '%s' non è definita"
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr "Protocollo"
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr "La dotazione comprende: %s"
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr "Rimuove uno o più valori da un'impostazione."
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr "Sostituire %[1]s con %[2]s"
 
@@ -1981,20 +1991,20 @@ msgstr "Sostituire %[1]s con %[2]s"
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr "Sto sostituendo la piattaforma %[1]s con %[2]s"
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr "Tool richiesto:"
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr "Avvio come demone sulla porta: %s"
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 "Avvio in modalità silenziosa, mostra solo l'ingresso e l'uscita del monitor."
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -2006,80 +2016,85 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr "Esecuzione della normale compilazione del core..."
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr "Salva gli artefatti di compilazione in questa directory."
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 "Cerca un core nel gestore delle schede, usando le parole chiave specificate."
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr "Cerca un core nel gestore delle schede."
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 "Ricerca di uno o più dati di librerie (ricerca senza distinzione tra "
 "maiuscole e minuscole)."
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr "Cerca i dati di una o più librerie."
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr "fqbn selezionato: %s"
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr "Frase: %s"
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr "Il server ha risposto con: %s"
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr "Imposta un valore di regolazione."
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+"Imposta i valori predefiniti per porta e FQBN. Se non viene specificata "
+"alcuna porta o FQBN, vengono visualizzati la porta e l'FQBN predefiniti "
+"correnti."
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr "Imposta dove salvare il file di configurazione."
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr "Impostazioni"
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr "La chiave delle impostazioni non esiste"
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr "Mostra tutte le versioni del core disponibili."
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 "Mostra tutte le proprietà di build utilizzate al posto della compilazione."
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr "Mostra tutte le impostazioni della porta di comunicazione."
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 "Mostra anche le schede contrassegnate come 'nascoste' nella piattaforma."
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr "Mostra tutti i dettagli delle schede"
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
@@ -2087,30 +2102,30 @@ msgstr ""
 "Visualizza informazioni dettagliate riguardanti una scheda, in particolare "
 "se ci sono opzioni che possono essere specificate tramite FQBN."
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr "Mostra solo i nomi delle librerie."
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr "Mostra l'elenco dei programmatori disponibili"
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 "Mostra i metadati della sessione di debug invece di avviare il debugger."
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 "Mostra i core e le librerie non aggiornate dopo l'aggiornamento dell'indice"
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr "Mostra la lista delle librerie installate."
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -2124,15 +2139,15 @@ msgstr ""
 "libreria. Per impostazione predefinita, le librerie fornite come built-in da piattaforme/core non\n"
 "sono elencate, ma possono essere elencate aggiungendo il flag --all."
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr "Mostra l'elenco delle piattaforme installate."
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr "Mostra l'elenco degli esempi delle librerie."
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
@@ -2140,21 +2155,21 @@ msgstr ""
 "Mostra l'elenco degli esempi delle librerie. È possibile indicare un nome "
 "come argomento per cercare una libreria specifica."
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 "Mostra il numero di versione di Arduino CLI installato sul tuo sistema."
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr "Mostra il numero di versione di Arduino CLI."
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr "Dimensione (bytes):"
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
@@ -2162,11 +2177,11 @@ msgstr ""
 "Lo sketch non si trova nel percorso di compilazione. Specificare un percorso"
 " di compilazione diverso"
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr "Sketch è stato creato in: %s"
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr "Profilo dello sketch da utilizzare"
 
@@ -2184,7 +2199,7 @@ msgstr ""
 "Lo sketch usa %[1]s byte (%[3]s%%) dello spazio disponibile per i programmi."
 " Il massimo è %[2]s byte."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2226,29 +2241,31 @@ msgstr "Salta: %[1]s"
 msgid "Some indexes could not be updated."
 msgstr "Non è stato possibile aggiornare alcuni indici."
 
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
+msgstr ""
+"Alcuni aggiornamenti non sono andati a buon fine, controlla l'output per i "
+"dettagli."
+
 #: arduino/serialutils/serialutils.go:133
 msgid "TOUCH: error during reset: %s"
 msgstr "TOUCH: si è verificato un errore durante il reset: %s"
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
-msgstr "L'indirizzo IP su cui il demone si metterà in ascolto"
-
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr "La porta TCP su cui il demone si metterà in ascolto"
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 "Il file di configurazione personalizzato (se non specificato, verrà "
 "utilizzato quello predefinito)."
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr "Il flag --debug-file deve essere usato con --debug."
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
@@ -2256,7 +2273,7 @@ msgstr ""
 "La chiave '%[1]v' non è un elenco di elementi, non può essere aggiunta.\n"
 "Forse si può usare '%[2]s'?"
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2268,7 +2285,7 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr "La libreria %s richiede altre installazioni:"
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
@@ -2277,7 +2294,7 @@ msgstr ""
 "crittografare un binario durante il processo di compilazione. Utilizzata "
 "solo dalle piattaforme che la supportano."
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
@@ -2286,11 +2303,11 @@ msgstr ""
 " durante il processo di compilazione. Utilizzata solo dalle piattaforme che "
 "la supportano."
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr "Il formato di output dei log può essere: %s"
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2303,7 +2320,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr "La piattaforma non supporta '%[1]s' per le librerie precompilate."
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2315,7 +2332,7 @@ msgstr ""
 " vengono forniti argomenti, il comando aggiorna tutte le librerie installate"
 " per le quali è disponibile un aggiornamento."
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2336,39 +2353,39 @@ msgstr "Il tool %s è disinstallato"
 msgid "Toolchain '%s' is not supported"
 msgstr "La toolchain '%s' non è supportata"
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr "Configurazioni personalizzate della toolchain"
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr "Il percorso della toolchain"
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr "Il prefisso della toolchain"
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr "Il tipo della toolchain"
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr "Prova ad eseguire %s"
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr "Attiva la modalità verbosa."
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "Tipo"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr "Tipi: %s"
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr "URL:"
 
@@ -2391,7 +2408,7 @@ msgstr "Impossibile ottenere la cartella dati dell'app locale: %v"
 msgid "Unable to get user home dir: %v"
 msgstr "Impossibile ottenere la home directory dell'utente: %v"
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr "Impossibile aprire il file per il logging: %s"
 
@@ -2409,7 +2426,7 @@ msgstr "Disinstallazione di %s"
 msgid "Uninstalling %s, tool is no more required"
 msgstr "Disinstallazione di %s, il tool non è più necessario."
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
@@ -2417,11 +2434,11 @@ msgstr ""
 "Disinstalla uno o più core e le corrispondenti dipendenze dei tool se non "
 "vengono più utilizzati."
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr "Disinstalla una o più librerie."
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr "Sconosciuto"
 
@@ -2429,28 +2446,28 @@ msgstr "Sconosciuto"
 msgid "Unknown FQBN"
 msgstr "FQBN sconosciuto"
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr "Aggiorna l'indice dei core e delle librerie"
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 "Aggiorna l'indice dei core e delle librerie alle versioni più recenti."
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr "Aggiorna l'indice dei core alla versione più recente."
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr "Aggiorna l'indice dei core."
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr "Aggiorna l'indice delle librerie alla versione più recente."
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr "Aggiorna l'indice delle librerie."
 
@@ -2458,34 +2475,34 @@ msgstr "Aggiorna l'indice delle librerie."
 msgid "Upgrade doesn't accept parameters with version"
 msgstr "L'aggiornamento non accetta parametri con la versione"
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr "Aggiorna i core e le librerie installate alla versione più recente."
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr "Aggiorna i core e le librerie installate."
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr "Aggiorna le librerie installate."
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr "Aggiorna una o tutte le piattaforme alla versione più recente."
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr "Carica gli sketch di Arduino."
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 "Carica gli sketch di Arduino. Questo NON compila lo sketch prima del "
 "caricamento."
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr "Indirizzo della porta di caricamento, ad esempio: COM3 o /dev/ttyACM2"
 
@@ -2493,43 +2510,43 @@ msgstr "Indirizzo della porta di caricamento, ad esempio: COM3 o /dev/ttyACM2"
 msgid "Upload port found on %s"
 msgstr "Porta di caricamento trovata su %s"
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr "Protocollo della porta di caricamento, ad esempio: seriale"
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr "Carica il binario dopo la compilazione."
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 "Carica il bootloader sulla scheda utilizzando un programmatore esterno."
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr "Carica il bootloader."
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 "Il caricamento sulla scheda specificata tramite il protocollo %s richiede le"
 " seguenti informazioni:"
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr "Uso: "
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr "Usa %s  per ulteriori informazioni su un comando."
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr "Libreria utilizzata"
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr "Piattaforma utilizzata"
 
@@ -2537,12 +2554,6 @@ msgstr "Piattaforma utilizzata"
 msgid "Used: %[1]s"
 msgstr "Usata: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr "Directory utente non impostata"
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr "Utilizzo della scheda '%[1]s' dalla piattaforma nella cartella: %[2]s"
@@ -2578,29 +2589,29 @@ msgstr "Utilizzo della libreria precompilata in %[1]s"
 msgid "Using previously compiled file: %[1]s"
 msgstr "Uso il file precedentemente compilato: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr "VERSIONE"
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr "VERSION_NUMBER"
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr "Valori"
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr "Verifica dei binari dopo il caricamento."
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr "Versione"
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr "Versioni: %s"
 
@@ -2608,7 +2619,7 @@ msgstr "Versioni: %s"
 msgid "WARNING cannot configure platform: %s"
 msgstr "ATTENZIONE: non è possibile configurare la piattaforma: %s"
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 "ATTENZIONE: lo sketch è compilato utilizzando una o più librerie "
@@ -2650,11 +2661,11 @@ msgstr ""
 "Attenzione: il tool '%s' non è installato. Potrebbe non essere disponibile "
 "per il tuo sistema operativo."
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr "Sito web: %s"
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
@@ -2662,11 +2673,11 @@ msgstr ""
 "Se specificato, vengono utilizzate le proprietà di compilazione specifiche "
 "di VID/PID, se la scheda le supporta."
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr "Scrive la configurazione corrente in un file di configurazione."
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
@@ -2674,34 +2685,32 @@ msgstr ""
 "Scrive la configurazione corrente nel file di configurazione nella directory"
 " dei dati."
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr "Scrittura del file di configurazione: %v"
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr "Non puoi usare il flag %[1]s insieme a %[2]s."
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 "Non puoi utilizzare il flag %s durante la compilazione con un profilo."
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr "e"
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr "L'hash dell'archivio è diverso dall'hash dell'indice"
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 "l'archivio non è valido: sono stati trovati più file nel livello superiore "
 "del file zip"
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+"l'archivio non è valido: nessun file trovato nella cartella principale del "
+"file zip"
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr "percorso dell'archivio"
 
@@ -2713,6 +2722,10 @@ msgstr "Manca il pattern arduino-preprocessor"
 msgid "autodetect build artifact: %s"
 msgstr "rileva automaticamente l'artefatto di compilazione: %s"
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr "disponibile solo in formato testo"
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr "file binario non trovato in %s"
@@ -2721,14 +2734,14 @@ msgstr "file binario non trovato in %s"
 msgid "board %s not found"
 msgstr "la scheda %s non è stata trovata"
 
-#: commands/board/list.go:43
-msgid "board not found"
-msgstr "scheda non trovata"
-
-#: cli/board/listall.go:38 cli/board/search.go:37
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
 msgid "boardname"
 msgstr "nomescheda"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
+msgstr "la directory delle librerie integrate non è configurata"
+
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
 #: arduino/discovery/discovery.go:353 arduino/discovery/discovery.go:392
 #: arduino/discovery/discovery.go:418
@@ -2743,7 +2756,7 @@ msgstr "Impossibile trovare l'ultima versione di %s"
 msgid "can't find latest release of tool %s"
 msgstr "Impossibile trovare l'ultima versione del tool %s"
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr "Impossibile trovare il file principale dello sketch in %s"
 
@@ -2776,7 +2789,7 @@ msgstr "Sto controllando l'integrità dell'archivio locale"
 msgid "cleaning build path"
 msgstr "pulizia del percorso di compilazione"
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr "comando"
 
@@ -2799,14 +2812,13 @@ msgstr "il comando non è andato a buon fine: %s"
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr "comunicazione fuori sincronia, atteso '%[1]s', ricevuto '%[2]s'"
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr "calcolo dell'hash: %s"
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
-msgstr ""
-"Impossibile creare la directory %s: esiste un file with lo stesso nome!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
+msgstr "copia della libreria nella directory di destinazione:"
 
 #: commands/upload/upload.go:623
 msgid "could not find a valid build artifact"
@@ -2816,10 +2828,15 @@ msgstr "impossibile trovare un artefatto di compilazione valido"
 msgid "could not overwrite"
 msgstr "impossibile sovrascrivere"
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr "Impossibile rimuovere la vecchia libreria"
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr "non è stato possibile aggiornare il file di progetto"
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr "creazione di installed.json in %[1]s: %[2]s"
@@ -2832,24 +2849,24 @@ msgstr "creazione di una directory temporanea per l'estrazione: %s"
 msgid "data section exceeds available space in board"
 msgstr "la sezione dati supera lo spazio disponibile nella scheda"
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr "decodifica dei metadati dello sketch: %s"
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr "la dipendenza '%s' non è disponibile"
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr "la destinazione esiste già"
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 "La directory di destinazione %s esiste già, non è possibile installare"
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr "il percorse della directory è già esistente"
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr "la directory non esiste: %s"
 
@@ -2869,15 +2886,15 @@ msgstr "il rilevamento %s non è installato"
 msgid "discovery release not found: %s"
 msgstr "il rilascio del rilevamento non è stato trovato: %s"
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr "scarica una versione specifica (in questo caso la 1.6.9)."
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr "scarica l'ultima versione del core SAMD di Arduino."
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr "scaricato"
 
@@ -2889,11 +2906,7 @@ msgstr "sto scaricando il tool %[1]s: %[2]s"
 msgid "empty board identifier"
 msgstr "identificativo della scheda vuoto"
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr "codifica dei metadati dello sketch: %s"
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 "si è verificato un errore durante il caricamento del file di progetto dello "
@@ -2903,20 +2916,20 @@ msgstr ""
 msgid "error opening %s"
 msgstr "si è verificato un errore durante l'apertura di %s"
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr "valore di parsing dell'errore: %v"
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr "si è verificato un errore durante il parsing dei vincoli di versione"
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 "si è verificato un errore durante l'elaborazione della risposta del server"
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 "si è verificato un errore durante l'interrogazione di Arduino Cloud Api"
@@ -2925,19 +2938,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr "estrazione dell'archivio: %s"
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr "estrazione dell'archivio: %w"
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr "Impossibile calcolare l'hash del file \"%s\""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr "Impossibile inizializzare il client http"
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 "La dimensione dell'archivio recuperato differisce dalla dimensione "
@@ -2951,7 +2964,7 @@ msgstr "i file dell'archivio devono essere collocati in una sottodirectory"
 msgid "finding absolute path of %s"
 msgstr "sto cercando il percorso assoluto di %s"
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr "flag"
 
@@ -2959,36 +2972,38 @@ msgstr "flag"
 msgid "following symlink %s"
 msgstr "il seguente collegamento simbolico %s"
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr "per una specifica versione."
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr "per la versione più recente."
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr "per la specifica versione."
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr "sto generando installation.id: %w"
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr "sto generando installation.secret: %w"
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr "sto recuperando le informazioni sui file dell'archivio: %s"
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr "sto recuperando le informazioni sull'archivio: %s"
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr "sto recuperando il percorso dell'archivio: %s"
@@ -3017,11 +3032,7 @@ msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 "sto recuperando le dipendenze dei tool per la piattaforma %[1]s: %[2]s"
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr "sto importando i metadati dello sketch: %s"
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr "La directory di installazione non è stata impostata"
 
@@ -3033,7 +3044,12 @@ msgstr "Sto installando il tool %[1]s: %[2]s"
 msgid "installing platform %[1]s: %[2]s"
 msgstr "Sto installando la piattaforma %[1]s: %[2]s"
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+"il terminale interattivo non è supportato per il formato dell'output  '%s'"
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr "la direttiva '%s' non è valida"
 
@@ -3045,7 +3061,7 @@ msgstr "il messaggio 'add' non è valido: porta mancante"
 msgid "invalid 'remove' message: missing port"
 msgstr "il messaggio 'remove' non è valido: porta mancante"
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr "il formato del checksum non è valido: %s"
 
@@ -3053,31 +3069,31 @@ msgstr "il formato del checksum non è valido: %s"
 msgid "invalid config option: %s"
 msgstr "l'opzione di configurazione non è valida: %s"
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr "l'architettura del core vuota non è valida '%s'"
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr "l'argomento del core vuoto non è valido"
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr "il nome del core vuoto non è valido '%s'"
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr "il riferimento al core vuoto non è valido '%s'"
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr "la versione del core vuota non è valida: '%s'"
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr "il nome della libreria vuoto non è valido"
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr "la versione della libreria vuota non è valida: %s"
 
@@ -3085,19 +3101,19 @@ msgstr "la versione della libreria vuota non è valida: %s"
 msgid "invalid empty option found"
 msgstr "è stata trovata un'opzione vuota non valida"
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr "url git non è valido"
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr "hash non valido '%[1]s': %[2]s"
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr "elemento non valido %s"
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr "la direttiva della libreria non è valida:"
 
@@ -3113,27 +3129,27 @@ msgstr "la posizione della libreria non è valida: %s"
 msgid "invalid option '%s'"
 msgstr "l'opzione '%s' non è valida"
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 "il percorso della creazione della cartella di configurazione non è valido: "
 "%[1]s error: %[2]w"
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 "il percorso per la scrittura del file di inventario non è valido: %[1]s "
 "error: %[2]w"
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr "la dimensione dell'archivio della piattaforma non è valida: %s"
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr "l'identificatore della piattaforma non è valido"
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr "URL dell'indice della piattaforma non è valido:"
 
@@ -3141,11 +3157,11 @@ msgstr "URL dell'indice della piattaforma non è valido:"
 msgid "invalid pluggable monitor reference: %s"
 msgstr "il riferimento al monitor collegabile non è valido: %s"
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr "il valore di configurazione della porta non è valido per %s: %s"
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr "la configurazione della porta non è valida: %s"
 
@@ -3153,6 +3169,12 @@ msgstr "la configurazione della porta non è valida: %s"
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr "scrittura non valida '%[1]s': %[2]s"
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr "il valore '%[1]s' non è valido per l'opzione '%[2]s'"
@@ -3161,32 +3183,27 @@ msgstr "il valore '%[1]s' non è valido per l'opzione '%[2]s'"
 msgid "invalid version directory %s"
 msgstr "la directory della versione non è valida %s"
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr "la versione non è valida:"
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr "la chiave non è stata trovata nelle impostazioni"
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr "parole chiave"
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr "la libreria %s è già installata"
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr "la libreria è già installata"
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr "la libreria non è valida"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr "il percorso della libreria non esiste: %s"
 
@@ -3213,8 +3230,8 @@ msgstr "caricamento dei tool in dotazione da %s"
 msgid "loading json index file %[1]s: %[2]s"
 msgstr "caricamento del file indice json %[1]s: %[2]s"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr "caricamento della libreria da %[1]s: %[2]s"
 
@@ -3247,15 +3264,15 @@ msgstr "rilascio del tool di caricamento in %s"
 msgid "looking for boards.txt in %s"
 msgstr "sto cercando boards.txt in %s"
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr "il file principale manca dallo sketch: %s"
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr "Manca la direttiva '%s'"
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr "manca il checksum di: %s"
 
@@ -3277,7 +3294,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr "release del monitor non è stata trovata: %s"
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr "sto spostando l'archivio estratto nella directory di destinazione: %s"
@@ -3286,7 +3304,7 @@ msgstr "sto spostando l'archivio estratto nella directory di destinazione: %s"
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr "sono stati trovati più artefatti di compilazione: '%[1]s' e '%[2]s'"
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr "Sono stati trovati più file di sketch principale (%[1]v, %[2]v)"
 
@@ -3308,7 +3326,7 @@ msgstr "non è stata specificata alcuna istanza"
 msgid "no sketch or build directory/file specified"
 msgstr "non è stata specificata alcuna directory/file di sketch o di build"
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr "nessun file o directory di questo tipo"
 
@@ -3322,7 +3340,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr "Non è stata fornita alcuna porta di upload"
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr "Non è stato trovato uno sketch valido in %[1]s: manca %[2]s"
 
@@ -3330,7 +3348,11 @@ msgstr "Non è stato trovato uno sketch valido in %[1]s: manca %[2]s"
 msgid "no versions available for the current OS"
 msgstr "nessuna versione disponibile per il sistema operativo corrente"
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr "non è in esecuzione in un terminale"
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr "apertura del file di archivio: %s"
 
@@ -3342,11 +3364,11 @@ msgstr "apertura di boards.txt"
 msgid "opening port at 1200bps"
 msgstr "apertura della porta a 1200bps"
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr "apertura del file della firma: %s"
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr "apertura del file di destinazione: %s"
 
@@ -3390,11 +3412,11 @@ msgstr "la piattaforma %s non è installata"
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr "piattaforma non installata"
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr "utilizza invece --build-property."
 
@@ -3402,11 +3424,11 @@ msgstr "utilizza invece --build-property."
 msgid "pluggable discovery already added: %s"
 msgstr "rilevamento collegabile già aggiunto: %s"
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr "porta"
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr "la porta non è stata trovata: %[1]s %[2]s"
 
@@ -3423,7 +3445,7 @@ msgstr "la versione del protocollo non è supportata: richiesta 1, ottenuta %d"
 msgid "reading %[1]s: %[2]s"
 msgstr "lettura di %[1]s: %[2]s"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr "lettura della directory %[1]s: %[2]s"
 
@@ -3434,7 +3456,7 @@ msgstr "lettura della directory %[1]s: %[2]s"
 msgid "reading directory %s"
 msgstr "lettura cartella %s"
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr "lettura del contenuto della directory %s: %w"
 
@@ -3442,11 +3464,11 @@ msgstr "lettura del contenuto della directory %s: %w"
 msgid "reading file %[1]s: %[2]s"
 msgstr "lettura del file %[1]s: %[2]s"
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr "Lettura dei file: %v"
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr "lettura del file di inventario: %w"
 
@@ -3470,10 +3492,6 @@ msgstr "lettura di library_index.json: %s"
 msgid "reading package root dir: %s"
 msgstr "lettura della directory principale del pacchetto: %s"
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr "lettura dei metadati dello sketch %[1]s: %[2]s"
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr "scrittura non trovata '%s'"
@@ -3487,13 +3505,13 @@ msgstr "il rilascio %[1]s non è stato trovato per il tool %[2]s"
 msgid "release cannot be nil"
 msgstr "il rilascio non può essere nullo"
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr "sto rimuovendo il file di archivio danneggiato: %s"
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
-msgstr "sto rimuovendo la directory lib: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
+msgstr "rimozione directory della libreria: %s"
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
 msgid "removing platform files: %s"
@@ -3504,7 +3522,7 @@ msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 "la versione richiesta %[1]s non è stata trovata per la piattaforma %[2]s"
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr "sto recuperando le chiavi pubbliche di Arduino: %s"
 
@@ -3524,15 +3542,24 @@ msgstr "ricerca nella directory principale del pacchetto: %s"
 msgid "setting DTR to OFF"
 msgstr "sto impostando DTR su OFF"
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr "il percorso dello sketch non è valido"
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr "percorso dello sketch"
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr "la sorgente non è una directory"
 
@@ -3540,15 +3567,15 @@ msgstr "la sorgente non è una directory"
 msgid "starting discovery %s"
 msgstr "Avvio della rilevazione %s"
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr "verifica del checksum dell'archivio: %s"
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr "verifica delle dimensioni dell'archivio: %s"
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr "verifica se l'archivio è memorizzato nella cache: %s"
 
@@ -3569,7 +3596,7 @@ msgstr "il database di compilazione potrebbe essere incompleto o impreciso"
 msgid "the platform has no releases"
 msgstr "la piattaforma non ha rilasci"
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr "il server ha risposto con lo stato %s"
 
@@ -3599,7 +3626,7 @@ msgid "tool not installed"
 msgstr "Il tool non è installato"
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr "il rilascio del tool non è stato trovato: %s"
 
@@ -3607,7 +3634,7 @@ msgstr "il rilascio del tool non è stato trovato: %s"
 msgid "tool version %s not found"
 msgstr "la versione %s del tool non è stata trovata"
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3630,7 +3657,7 @@ msgstr "non è possibile creare una cartella per salvare gli sketch"
 msgid "unable to create the folder containing the item"
 msgstr "non è possibile creare la cartella contenente l'elemento"
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 "non è possibile eseguire il marshalling della configurazione in YAML: %v"
@@ -3659,19 +3686,19 @@ msgstr "pacchetto sconosciuto %s"
 msgid "unknown platform %s:%s"
 msgstr "piattaforma sconosciuta %s:%s"
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr "estensione sconosciuta per il file sketch \"%s\""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr "l'algoritmo dell'hash non è supportato: %s"
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr "aggiorna arduino:samd all'ultima versione"
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr "aggiornare tutto con l'ultima versione disponibile"
 
@@ -3679,6 +3706,18 @@ msgstr "aggiornare tutto con l'ultima versione disponibile"
 msgid "uploading error: %s"
 msgstr "errore durante il caricamento: %s"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr "la directory dell'utente non è configurata"
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr "l'input dell'utente non è supportato per il formato dell'output '%s'"
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr "l'input dell'utente non è supportato nella modalità non interattiva"
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr "la versione %s non è disponibile per questo sistema operativo"
@@ -3687,10 +3726,6 @@ msgstr "la versione %s non è disponibile per questo sistema operativo"
 msgid "version %s not found"
 msgstr "la versione %s non è stata trovata"
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr "scrittura dei metadata dello sketch %[1]s: %[2]s"
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr "formato errato nella risposta del server"
diff --git a/i18n/data/ja.po b/i18n/data/ja.po
index 868211e0362..cbf06892657 100644
--- a/i18n/data/ja.po
+++ b/i18n/data/ja.po
@@ -11,7 +11,7 @@ msgstr ""
 "Language: ja\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr ""
 
@@ -23,7 +23,7 @@ msgstr ""
 msgid "%[1]s invalid, rebuilding all"
 msgstr ""
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr ""
 
@@ -47,7 +47,7 @@ msgstr "%[1]s, ポート: %[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, プロトコルバージョン: %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%sはすでにダウンロードされています"
 
@@ -59,7 +59,7 @@ msgstr "%sと%sは同時に利用できません"
 msgid "%s installed"
 msgstr "%sをインストールしました"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%sはすでにインストールされています。"
 
@@ -72,7 +72,7 @@ msgstr "%sはディレクトリではありません"
 msgid "%s is not managed by package manager"
 msgstr ""
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr ""
 
@@ -84,7 +84,7 @@ msgstr ""
 msgid "'%s' has an invalid signature"
 msgstr ""
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr ""
 
@@ -92,19 +92,23 @@ msgstr ""
 msgid "(legacy)"
 msgstr "(レガシー)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr ""
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr ""
 
@@ -112,32 +116,32 @@ msgstr ""
 msgid "A programmer is required to upload"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr ""
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr ""
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr ""
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr ""
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr ""
 
@@ -153,15 +157,15 @@ msgstr ""
 msgid "An error occurred detecting libraries"
 msgstr ""
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr ""
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr ""
 
@@ -169,55 +173,51 @@ msgstr ""
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "%[1]sにビルドされたコア(キャッシュ)をアーカイブ中です"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr ""
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI."
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr ""
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -229,32 +229,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr ""
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr ""
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr ""
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr ""
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -262,14 +258,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "ブートローダのファイルが指定されましたが次が不足しています:%[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -278,7 +270,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -291,31 +283,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -331,11 +328,7 @@ msgstr ""
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -355,53 +348,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr ""
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -409,24 +398,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "スケッチをコンパイルしています..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr ""
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -434,19 +423,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr ""
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -462,145 +451,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "初期値"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr ""
 
@@ -633,27 +631,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -661,44 +659,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -731,42 +729,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -778,7 +776,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -786,48 +784,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -846,15 +844,15 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr ""
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries:  %v"
+#: internal/cli/board/listall.go:63
+msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/board/listall.go:64
-msgid "Error listing boards: %v"
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -875,19 +873,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -895,7 +893,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -903,11 +901,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -923,15 +921,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries:  %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -939,23 +941,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -981,40 +983,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1022,10 +1025,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1042,19 +1041,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1062,7 +1061,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1070,20 +1069,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1094,15 +1093,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1110,23 +1109,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1141,46 +1141,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "グローバル変数は%[1]sバイトのRAMを使用しています。"
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "インストール済"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1197,11 +1198,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1213,19 +1214,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1238,8 +1239,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1247,10 +1249,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1259,7 +1257,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1271,11 +1269,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1283,11 +1281,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1303,7 +1301,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1311,30 +1309,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1342,7 +1340,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1372,57 +1371,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1432,10 +1431,10 @@ msgid "Loading index file: %v"
 msgstr ""
 
 #: commands/instances.go:442
-msgid "Loading libraries:  %v"
+msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1443,15 +1442,15 @@ msgstr ""
 msgid "Low memory available, stability problems may occur."
 msgstr "スケッチが使用できるメモリが少なくなっています。動作が不安定になる可能性があります。"
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1468,7 +1467,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1488,7 +1491,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1496,38 +1499,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "「%[1]s」に対して複数のライブラリが見つかりました"
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1535,14 +1542,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1559,110 +1562,118 @@ msgstr "スケッチが使用するメモリが足りません。メモリを節
 msgid "Not used: %[1]s"
 msgstr "未使用:%[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1680,7 +1691,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1698,39 +1709,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1746,12 +1757,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "シリアルポート"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1763,23 +1774,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1791,15 +1802,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1807,19 +1818,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1827,19 +1838,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1849,102 +1860,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1953,44 +1966,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2004,7 +2017,7 @@ msgid ""
 " bytes."
 msgstr "最大%[2]sバイトのフラッシュメモリのうち、スケッチが%[1]sバイト(%[3]s%%)を使っています。"
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2042,33 +2055,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2078,23 +2091,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2104,7 +2117,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2112,7 +2125,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2131,39 +2144,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "タイプ"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2184,7 +2197,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2202,17 +2215,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2220,27 +2233,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2248,32 +2261,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2281,40 +2294,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2322,12 +2335,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "使用済:%[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2362,29 +2369,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "以前コンパイルされたファイルを使用中:%[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2392,7 +2399,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2424,51 +2431,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2480,6 +2483,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2488,12 +2495,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2510,7 +2517,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2543,7 +2550,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2566,12 +2573,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2582,10 +2589,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2598,23 +2610,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2634,15 +2646,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2654,11 +2666,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2666,19 +2674,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2686,19 +2694,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2710,7 +2718,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2718,36 +2726,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2772,11 +2782,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2788,7 +2794,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2800,7 +2810,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2808,31 +2818,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2840,19 +2850,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2868,23 +2878,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2892,11 +2902,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2904,6 +2914,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2912,32 +2928,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2964,8 +2975,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -2998,15 +3009,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3026,7 +3037,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3035,7 +3047,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3055,7 +3067,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3067,7 +3079,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3075,7 +3087,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3087,11 +3103,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3135,11 +3151,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3147,11 +3163,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3167,7 +3183,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3178,7 +3194,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3186,11 +3202,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3214,10 +3230,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3231,12 +3243,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3247,7 +3259,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3267,15 +3279,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3283,15 +3304,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3312,7 +3333,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3342,7 +3363,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3350,7 +3371,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3371,7 +3392,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3399,19 +3420,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3419,6 +3440,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3427,10 +3460,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/ko.po b/i18n/data/ko.po
index a5d06447c69..54f8c8ae22a 100644
--- a/i18n/data/ko.po
+++ b/i18n/data/ko.po
@@ -9,7 +9,7 @@ msgstr ""
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr ""
 
@@ -21,7 +21,7 @@ msgstr ""
 msgid "%[1]s invalid, rebuilding all"
 msgstr ""
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr ""
 
@@ -45,7 +45,7 @@ msgstr ""
 msgid "%[1]s, protocol version: %[2]d"
 msgstr ""
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr ""
 
@@ -57,7 +57,7 @@ msgstr ""
 msgid "%s installed"
 msgstr ""
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr ""
 
@@ -70,7 +70,7 @@ msgstr ""
 msgid "%s is not managed by package manager"
 msgstr ""
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr ""
 
@@ -82,7 +82,7 @@ msgstr ""
 msgid "'%s' has an invalid signature"
 msgstr ""
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr ""
 
@@ -90,19 +90,23 @@ msgstr ""
 msgid "(legacy)"
 msgstr "(레거시)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr ""
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr ""
 
@@ -110,32 +114,32 @@ msgstr ""
 msgid "A programmer is required to upload"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr ""
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr ""
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr ""
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr ""
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr ""
 
@@ -151,15 +155,15 @@ msgstr ""
 msgid "An error occurred detecting libraries"
 msgstr ""
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr ""
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr ""
 
@@ -167,55 +171,51 @@ msgstr ""
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr ""
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr ""
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr ""
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr ""
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -227,32 +227,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr ""
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr ""
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr ""
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr ""
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -260,14 +256,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "부트로더 파일이 지정되었으나 누락됨: %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -276,7 +268,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -289,31 +281,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -329,11 +326,7 @@ msgstr ""
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -353,53 +346,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr ""
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -407,24 +396,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "스케치를 컴파일 중…"
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr ""
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -432,19 +421,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr ""
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -460,145 +449,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "디폴트"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr ""
 
@@ -631,27 +629,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -659,44 +657,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -729,42 +727,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -776,7 +774,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -784,48 +782,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -844,15 +842,15 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr ""
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
+#: internal/cli/board/listall.go:63
+msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/board/listall.go:64
-msgid "Error listing boards: %v"
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -873,19 +871,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -893,7 +891,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -901,11 +899,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -921,15 +919,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -937,23 +939,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -979,40 +981,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1020,10 +1023,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1040,19 +1039,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1060,7 +1059,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1068,20 +1067,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1092,15 +1091,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1108,23 +1107,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1139,46 +1139,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "전역 변수는 %[1]s 바이트의 동적 메모리를 사용."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "설치됨"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1195,11 +1196,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1211,19 +1212,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1236,8 +1237,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1245,10 +1247,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1257,7 +1255,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1269,11 +1267,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1281,11 +1279,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1301,7 +1299,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1309,30 +1307,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1340,7 +1338,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1370,57 +1369,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1433,7 +1432,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1441,15 +1440,15 @@ msgstr ""
 msgid "Low memory available, stability problems may occur."
 msgstr "사용 가능한 메모리 부족, 안정성에 문제가 생길 수 있습니다."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1466,7 +1465,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1486,7 +1489,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1494,38 +1497,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "\"%[1]s\"를 위한 복수개의 라이브러리가 발견되었습니다"
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1533,14 +1540,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1557,110 +1560,118 @@ msgstr "메모리가 충분하지 않음; 메모리를 줄이기 위한 팁을 
 msgid "Not used: %[1]s"
 msgstr "사용되지 않음: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1678,7 +1689,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1696,39 +1707,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1744,12 +1755,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "포트"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1761,23 +1772,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1789,15 +1800,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1805,19 +1816,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1825,19 +1836,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1847,102 +1858,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1951,44 +1964,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2002,7 +2015,7 @@ msgid ""
 " bytes."
 msgstr "스케치는 프로그램 저장 공간 %[1]s 바이트(%[3]s%%)를 사용. 최대 %[2]s 바이트."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2040,33 +2053,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2076,23 +2089,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2102,7 +2115,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2110,7 +2123,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2129,39 +2142,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "타입"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2182,7 +2195,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2200,17 +2213,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2218,27 +2231,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2246,32 +2259,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2279,40 +2292,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2320,12 +2333,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "사용됨: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2360,29 +2367,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "이전에 컴파일된 파일: %[1]s 사용"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2390,7 +2397,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2423,51 +2430,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2479,6 +2482,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2487,12 +2494,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2509,7 +2516,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2542,7 +2549,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2565,12 +2572,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2581,10 +2588,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2597,23 +2609,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2633,15 +2645,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2653,11 +2665,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2665,19 +2673,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2685,19 +2693,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2709,7 +2717,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2717,36 +2725,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2771,11 +2781,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2787,7 +2793,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2799,7 +2809,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2807,31 +2817,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2839,19 +2849,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2867,23 +2877,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2891,11 +2901,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2903,6 +2913,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2911,32 +2927,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2963,8 +2974,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -2997,15 +3008,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3025,7 +3036,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3034,7 +3046,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3054,7 +3066,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3066,7 +3078,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3074,7 +3086,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3086,11 +3102,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3134,11 +3150,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3146,11 +3162,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3166,7 +3182,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3177,7 +3193,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3185,11 +3201,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3213,10 +3229,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3230,12 +3242,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3246,7 +3258,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3266,15 +3278,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3282,15 +3303,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3311,7 +3332,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3341,7 +3362,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3349,7 +3370,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3370,7 +3391,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3398,19 +3419,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3418,6 +3439,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3426,10 +3459,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/my_MM.po b/i18n/data/my_MM.po
index 0bf61f92866..1da89618f73 100644
--- a/i18n/data/my_MM.po
+++ b/i18n/data/my_MM.po
@@ -5,7 +5,7 @@ msgstr ""
 "Language: my_MM\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr ""
 
@@ -17,7 +17,7 @@ msgstr ""
 msgid "%[1]s invalid, rebuilding all"
 msgstr ""
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr ""
 
@@ -41,7 +41,7 @@ msgstr ""
 msgid "%[1]s, protocol version: %[2]d"
 msgstr ""
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr ""
 
@@ -53,7 +53,7 @@ msgstr ""
 msgid "%s installed"
 msgstr ""
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr ""
 
@@ -66,7 +66,7 @@ msgstr ""
 msgid "%s is not managed by package manager"
 msgstr ""
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr ""
 
@@ -78,7 +78,7 @@ msgstr ""
 msgid "'%s' has an invalid signature"
 msgstr ""
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr ""
 
@@ -86,19 +86,23 @@ msgstr ""
 msgid "(legacy)"
 msgstr ""
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr ""
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr ""
 
@@ -106,32 +110,32 @@ msgstr ""
 msgid "A programmer is required to upload"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr ""
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr ""
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr ""
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr ""
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr ""
 
@@ -147,15 +151,15 @@ msgstr ""
 msgid "An error occurred detecting libraries"
 msgstr ""
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr ""
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr ""
 
@@ -163,55 +167,51 @@ msgstr ""
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr ""
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr ""
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr ""
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr ""
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -223,32 +223,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr ""
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr ""
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr ""
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr ""
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -256,14 +252,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr ""
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -272,7 +264,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -285,31 +277,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -325,11 +322,7 @@ msgstr ""
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -349,53 +342,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr ""
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -403,24 +392,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr ""
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr ""
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -428,19 +417,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr ""
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -456,145 +445,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr ""
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr ""
 
@@ -627,27 +625,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -655,44 +653,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -725,42 +723,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -772,7 +770,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -780,48 +778,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -840,15 +838,15 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr ""
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
+#: internal/cli/board/listall.go:63
+msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/board/listall.go:64
-msgid "Error listing boards: %v"
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -869,19 +867,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -889,7 +887,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -897,11 +895,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -917,15 +915,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -933,23 +935,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -975,40 +977,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1016,10 +1019,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1036,19 +1035,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1056,7 +1055,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1064,20 +1063,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1088,15 +1087,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1104,23 +1103,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1134,46 +1134,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr ""
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr ""
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1190,11 +1191,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1206,19 +1207,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1231,8 +1232,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1240,10 +1242,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1252,7 +1250,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1264,11 +1262,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1276,11 +1274,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1296,7 +1294,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1304,30 +1302,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1335,7 +1333,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1365,57 +1364,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1428,7 +1427,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1436,15 +1435,15 @@ msgstr ""
 msgid "Low memory available, stability problems may occur."
 msgstr ""
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1461,7 +1460,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1481,7 +1484,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1489,38 +1492,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr ""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1528,14 +1535,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1552,110 +1555,118 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr ""
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1673,7 +1684,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1691,39 +1702,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1739,12 +1750,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr ""
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1756,23 +1767,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1784,15 +1795,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1800,19 +1811,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1820,19 +1831,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1842,102 +1853,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1946,44 +1959,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -1997,7 +2010,7 @@ msgid ""
 " bytes."
 msgstr ""
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2035,33 +2048,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2071,23 +2084,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2097,7 +2110,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2105,7 +2118,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2124,39 +2137,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr ""
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2177,7 +2190,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2195,17 +2208,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2213,27 +2226,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2241,32 +2254,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2274,40 +2287,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2315,12 +2328,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2355,29 +2362,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2385,7 +2392,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2415,51 +2422,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2471,6 +2474,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2479,12 +2486,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2501,7 +2508,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2534,7 +2541,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2557,12 +2564,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2573,10 +2580,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2589,23 +2601,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2625,15 +2637,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2645,11 +2657,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2657,19 +2665,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2677,19 +2685,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2701,7 +2709,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2709,36 +2717,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2763,11 +2773,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2779,7 +2785,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2791,7 +2801,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2799,31 +2809,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2831,19 +2841,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2859,23 +2869,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2883,11 +2893,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2895,6 +2905,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2903,32 +2919,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2955,8 +2966,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -2989,15 +3000,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3017,7 +3028,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3026,7 +3038,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3046,7 +3058,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3058,7 +3070,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3066,7 +3078,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3078,11 +3094,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3126,11 +3142,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3138,11 +3154,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3158,7 +3174,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3169,7 +3185,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3177,11 +3193,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3205,10 +3221,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3222,12 +3234,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3238,7 +3250,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3258,15 +3270,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3274,15 +3295,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3303,7 +3324,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3333,7 +3354,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3341,7 +3362,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3362,7 +3383,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3390,19 +3411,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3410,6 +3431,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3418,10 +3451,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/pl.po b/i18n/data/pl.po
index d0c288f4965..ef833b49fdd 100644
--- a/i18n/data/pl.po
+++ b/i18n/data/pl.po
@@ -11,7 +11,7 @@ msgstr ""
 "Language: pl\n"
 "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr ""
 
@@ -23,7 +23,7 @@ msgstr "%[1]sfolder nie jest już wspierany,.Zobacz %[2]spo więcej informacji"
 msgid "%[1]s invalid, rebuilding all"
 msgstr "%[1]snieprawidłowe, przebudowywuję całość"
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr "%[1]sjest wymagane ale %[2]s jest obecnie zaistalowane"
 
@@ -47,7 +47,7 @@ msgstr "%[1]s, porty: %[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, wersja protokołu %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%sjuż pobrane"
 
@@ -59,7 +59,7 @@ msgstr "%s oraz %s nie mogą być razem użyte"
 msgid "%s installed"
 msgstr "%s zainstalowane"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%sjuż jest zainstalowane"
 
@@ -72,7 +72,7 @@ msgstr "%snie jest "
 msgid "%s is not managed by package manager"
 msgstr "%snie jest zarządzane przez zarządcę paczek"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "%smusi byc zainstalowane"
 
@@ -84,7 +84,7 @@ msgstr "%s brakuje wzoru"
 msgid "'%s' has an invalid signature"
 msgstr "'%s' posiada niewłaściwy podpis"
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(ukryte)"
 
@@ -92,19 +92,23 @@ msgstr "(ukryte)"
 msgid "(legacy)"
 msgstr "(przestarzałe)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr ""
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr ""
 
@@ -112,32 +116,32 @@ msgstr ""
 msgid "A programmer is required to upload"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr ""
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr ""
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr ""
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr ""
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr ""
 
@@ -153,15 +157,15 @@ msgstr ""
 msgid "An error occurred detecting libraries"
 msgstr ""
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "Architektura: %s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr ""
 
@@ -169,55 +173,51 @@ msgstr ""
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "Archiwizowanie budowanego rdzenia (buforowanie) w: %[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr ""
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI."
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr ""
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr "Autor: %s"
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -229,32 +229,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr "Dostępne"
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr ""
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr ""
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr "Nazwa płytki:"
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -262,14 +258,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "Podany nieistniejący plik programu rozruchowego: %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -278,7 +270,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -291,31 +283,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -331,11 +328,7 @@ msgstr ""
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -355,53 +348,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr ""
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -409,24 +398,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "Kompilowanie szkicu..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr ""
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -434,19 +423,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr ""
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -462,145 +451,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "Domyślne"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr ""
 
@@ -633,27 +631,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -661,44 +659,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -731,42 +729,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -778,7 +776,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -786,48 +784,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -846,15 +844,15 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr ""
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
+#: internal/cli/board/listall.go:63
+msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/board/listall.go:64
-msgid "Error listing boards: %v"
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -875,19 +873,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -895,7 +893,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -903,11 +901,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -923,15 +921,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -939,23 +941,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -981,40 +983,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1022,10 +1025,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1042,19 +1041,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1062,7 +1061,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1070,20 +1069,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1094,15 +1093,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1110,23 +1109,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1143,46 +1143,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "Zmienne globalne używają %[1]s bajtów pamięci dynamicznej."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "Zainstalowany"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1199,11 +1200,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1215,19 +1216,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1240,8 +1241,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1249,10 +1251,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1261,7 +1259,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1273,11 +1271,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1285,11 +1283,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1305,7 +1303,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1313,30 +1311,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1344,7 +1342,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1374,57 +1373,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1437,7 +1436,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1446,15 +1445,15 @@ msgid "Low memory available, stability problems may occur."
 msgstr ""
 "Niski poziom dostępnej pamięci, mogą wystąpić problemy ze stabilnością."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1471,7 +1470,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1491,7 +1494,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1499,38 +1502,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "Znaleziono wiele bibliotek w \"%[1]s\""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1538,14 +1545,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1564,110 +1567,118 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr "Niewykorzystane: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1685,7 +1696,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1703,39 +1714,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1751,12 +1762,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "Port"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1768,23 +1779,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1796,15 +1807,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1812,19 +1823,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1832,19 +1843,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1854,102 +1865,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1958,44 +1971,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2011,7 +2024,7 @@ msgstr ""
 "Szkic używa %[1]s bajtów (%[3]s%%) pamięci programu. Maksimum to %[2]s "
 "bajtów."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2049,33 +2062,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2085,23 +2098,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2111,7 +2124,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2119,7 +2132,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2138,39 +2151,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "Wpisz"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2191,7 +2204,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2209,17 +2222,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2227,27 +2240,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2255,32 +2268,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2288,40 +2301,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2329,12 +2342,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "Wykorzystane: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2369,29 +2376,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "Użycie wcześniej skompilowanego pliku: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2399,7 +2406,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2434,51 +2441,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2490,6 +2493,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2498,12 +2505,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2520,7 +2527,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2553,7 +2560,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2576,12 +2583,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2592,10 +2599,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2608,23 +2620,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2644,15 +2656,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2664,11 +2676,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2676,19 +2684,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2696,19 +2704,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2720,7 +2728,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2728,36 +2736,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2782,11 +2792,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2798,7 +2804,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2810,7 +2820,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2818,31 +2828,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2850,19 +2860,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2878,23 +2888,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2902,11 +2912,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2914,6 +2924,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2922,32 +2938,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2974,8 +2985,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -3008,15 +3019,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3036,7 +3047,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3045,7 +3057,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3065,7 +3077,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3077,7 +3089,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3085,7 +3097,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3097,11 +3113,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3145,11 +3161,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3157,11 +3173,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3177,7 +3193,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3188,7 +3204,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3196,11 +3212,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3224,10 +3240,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3241,12 +3253,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3257,7 +3269,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3277,15 +3289,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3293,15 +3314,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3322,7 +3343,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3352,7 +3373,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3360,7 +3381,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3381,7 +3402,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3409,19 +3430,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3429,6 +3450,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3437,10 +3470,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/pt.po b/i18n/data/pt.po
index 75449837558..25591895690 100644
--- a/i18n/data/pt.po
+++ b/i18n/data/pt.po
@@ -10,7 +10,7 @@ msgstr ""
 "Language: pt\n"
 "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr "%[1]s%[5]s%[4]sData%[3]scomprometer%[2]sVersão"
 
@@ -22,7 +22,7 @@ msgstr "%[1]spasta não é mais suportada! Ver%[2]sPara maiores informações"
 msgid "%[1]s invalid, rebuilding all"
 msgstr "%[1]sinválido, refazendo tudo"
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr "%[1]s‎é necessário, mas‎%[2]snão é instalado em nenhum momento."
 
@@ -46,7 +46,7 @@ msgstr "%[1]sportas:%[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[2]d%[1]s, versão do protocolo:"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%s‎já baixado‎"
 
@@ -58,7 +58,7 @@ msgstr "%se%s‎não pode ser usado em conjunto‎"
 msgid "%s installed"
 msgstr "%sinstalado"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%s‎já está instalado.‎"
 
@@ -71,7 +71,7 @@ msgstr "%s‎não é um diretório‎"
 msgid "%s is not managed by package manager"
 msgstr "%s‎não é gerenciado pelo gerente de pacotes‎"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "%s‎deve ser instalado.‎"
 
@@ -83,7 +83,7 @@ msgstr "%spadrão está faltando"
 msgid "'%s' has an invalid signature"
 msgstr "%s‎tem uma assinatura inválida‎"
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "‎(oculto)‎"
 
@@ -91,7 +91,7 @@ msgstr "‎(oculto)‎"
 msgid "(legacy)"
 msgstr "‎(legado)‎"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
@@ -99,7 +99,7 @@ msgstr ""
 "%v‎--git-url e --zip-path são desativados por padrão, para obter mais "
 "informações, consulte:‎"
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
@@ -107,7 +107,11 @@ msgstr ""
 "‎--git-url e --zip-path autorizaram a instalação de arquivos não confiáveis,"
 " use por sua conta e risco.‎"
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr "‎Uma nova atualização do Arduino CLI está disponível:‎"
 
@@ -115,32 +119,32 @@ msgstr "‎Uma nova atualização do Arduino CLI está disponível:‎"
 msgid "A programmer is required to upload"
 msgstr "‎É necessário um programador para carregar‎"
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr "ARCH"
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr ""
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr ""
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr ""
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr ""
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr "%s‎Já instalado‎"
 
@@ -156,15 +160,15 @@ msgstr "‎Ocorreu um erro ao adicionar os protótipos‎"
 msgid "An error occurred detecting libraries"
 msgstr "‎Ocorreu um erro na detecção de bibliotecas‎"
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr "‎Registro de depuração de anexação ao arquivo especificado‎"
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "%sArquitetura:‎"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr "O Arquivo já existe"
 
@@ -172,55 +176,51 @@ msgstr "O Arquivo já existe"
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "%[1]sArquivando núcleo construído (cache) em:"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr ""
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr ""
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr ""
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr "%vErro nos argumentos:"
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr "%vErro ao adicionar placa:"
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr "‎Anexa um sketch a uma placa.‎"
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr "%sAltor"
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -232,32 +232,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr "Disponível‎"
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr "‎Arquivo binário para carregar.‎"
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr "Nome da Placa"
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr "%s‎Placa encontrada:‎"
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr ""
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -265,14 +261,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr ""
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -281,7 +273,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -294,31 +286,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -334,11 +331,7 @@ msgstr ""
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -358,53 +351,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr ""
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -412,24 +401,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr "%[1]s‎Biblioteca de compilação‎ \"\""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "Compilando sketch..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr "%s‎Arquivo Config escrito para:‎"
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr "Configuração da porta.‎"
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -437,19 +426,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr ""
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -465,145 +454,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr ""
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr ""
 
@@ -636,27 +634,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -664,44 +662,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -734,42 +732,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -781,7 +779,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -789,48 +787,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -849,15 +847,15 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr ""
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
+#: internal/cli/board/listall.go:63
+msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/board/listall.go:64
-msgid "Error listing boards: %v"
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -878,19 +876,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -898,7 +896,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -906,11 +904,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -926,15 +924,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -942,23 +944,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -984,40 +986,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1025,10 +1028,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1045,19 +1044,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1065,7 +1064,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1073,20 +1072,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1097,15 +1096,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1113,23 +1112,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1145,46 +1145,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "Variáveis globais usam %[1]s bytes de memória dinâmica."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr ""
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1201,11 +1202,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1217,19 +1218,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1242,8 +1243,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1251,10 +1253,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1263,7 +1261,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1275,11 +1273,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1287,11 +1285,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1307,7 +1305,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1315,30 +1313,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1346,7 +1344,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1376,57 +1375,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1439,7 +1438,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1447,15 +1446,15 @@ msgstr ""
 msgid "Low memory available, stability problems may occur."
 msgstr "Pouca memória disponível, podem ocorrer problemas de estabilidade."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1472,7 +1471,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1492,7 +1495,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1500,38 +1503,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr ""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1539,14 +1546,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1565,110 +1568,118 @@ msgstr ""
 msgid "Not used: %[1]s"
 msgstr "Não utilizado: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1686,7 +1697,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1704,39 +1715,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1752,12 +1763,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "Porta"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1769,23 +1780,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1797,15 +1808,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1813,19 +1824,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1833,19 +1844,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1855,102 +1866,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1959,44 +1972,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2014,7 +2027,7 @@ msgstr ""
 "O rascunho usa %[1]s bytes (%[3]s%%) do espaço de armazenamento do programa."
 " O máximo é %[2]s bytes."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2052,33 +2065,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2088,23 +2101,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2114,7 +2127,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2122,7 +2135,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2141,39 +2154,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr ""
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2194,7 +2207,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2212,17 +2225,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2230,27 +2243,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2258,32 +2271,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2291,40 +2304,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2332,12 +2345,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "Utilizado: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2372,29 +2379,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "A usar o ficheiro previamente compilado: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2402,7 +2409,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2435,51 +2442,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2491,6 +2494,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2499,12 +2506,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2521,7 +2528,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2554,7 +2561,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2577,12 +2584,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2593,10 +2600,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2609,23 +2621,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2645,15 +2657,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2665,11 +2677,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2677,19 +2685,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2697,19 +2705,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2721,7 +2729,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2729,36 +2737,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2783,11 +2793,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2799,7 +2805,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2811,7 +2821,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2819,31 +2829,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2851,19 +2861,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2879,23 +2889,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2903,11 +2913,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2915,6 +2925,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2923,32 +2939,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2975,8 +2986,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -3009,15 +3020,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3037,7 +3048,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3046,7 +3058,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3066,7 +3078,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3078,7 +3090,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3086,7 +3098,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3098,11 +3114,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3146,11 +3162,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3158,11 +3174,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3178,7 +3194,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3189,7 +3205,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3197,11 +3213,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3225,10 +3241,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3242,12 +3254,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3258,7 +3270,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3278,15 +3290,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3294,15 +3315,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3323,7 +3344,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3353,7 +3374,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3361,7 +3382,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3385,7 +3406,7 @@ msgstr "‎não é possível criar uma pasta para salvar o sketch"
 msgid "unable to create the folder containing the item"
 msgstr "‎não é possível criar a pasta contendo o item‎"
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3413,19 +3434,19 @@ msgstr "%spacote desconhecido"
 msgid "unknown platform %s:%s"
 msgstr "%splataforma desconhecida%s:"
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr "%s‎extensão do arquivo sketch é desconhecido‎' '"
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr "%s não há suporte ‎algoritmo hash:‎"
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr "‎atualizar arduino: samd para a versão mais recente‎"
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr "‎atualizar tudo para a versão mais recente‎"
 
@@ -3433,6 +3454,18 @@ msgstr "‎atualizar tudo para a versão mais recente‎"
 msgid "uploading error: %s"
 msgstr "%serro ao carregar"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr "%sversão ‎não disponível para este sistema operacional‎"
@@ -3441,10 +3474,6 @@ msgstr "%sversão ‎não disponível para este sistema operacional‎"
 msgid "version %s not found"
 msgstr "%s versão não encontrada"
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr "‎formato errado na resposta do servidor‎"
diff --git a/i18n/data/ru.po b/i18n/data/ru.po
index 31b8cd070f7..c32de5f5ef0 100644
--- a/i18n/data/ru.po
+++ b/i18n/data/ru.po
@@ -11,7 +11,7 @@ msgstr ""
 "Language: ru\n"
 "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr "%[1]s%[2]s Версия: %[3]s Фиксация: %[4]s Дата: %[5]s"
 
@@ -23,7 +23,7 @@ msgstr "Папка %[1]s более не поддерживается! Боле
 msgid "%[1]s invalid, rebuilding all"
 msgstr ""
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr "Требуется %[1]s, но в данный момент устанавливается %[2]s"
 
@@ -47,7 +47,7 @@ msgstr "%[1]s, порты: %[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s, версия протокола: %[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%s уже скачана"
 
@@ -59,7 +59,7 @@ msgstr "%s не может быть использована вместе с %s"
 msgid "%s installed"
 msgstr "%s установлен"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%s уже установлено."
 
@@ -72,7 +72,7 @@ msgstr "%s не является директорией"
 msgid "%s is not managed by package manager"
 msgstr ""
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "%s должен быть установлен."
 
@@ -84,7 +84,7 @@ msgstr ""
 msgid "'%s' has an invalid signature"
 msgstr "'%s' имеет неправильную сигнатуру "
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(скрытый)"
 
@@ -92,20 +92,24 @@ msgstr "(скрытый)"
 msgid "(legacy)"
 msgstr "(устаревшее)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr ""
 "--git-url и --zip-path отключены по умолчанию, для подробностей смотрите: %v"
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr ""
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ""
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr "Доступен новый релиз Arduino CLI:"
 
@@ -113,32 +117,32 @@ msgstr "Доступен новый релиз Arduino CLI:"
 msgid "A programmer is required to upload"
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr "ИНСТРУКЦИЯ КОМАНДНОЙ СТРОКИ ARDUINO"
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr ""
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr ""
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr ""
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr ""
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr ""
 
@@ -154,15 +158,15 @@ msgstr ""
 msgid "An error occurred detecting libraries"
 msgstr ""
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr ""
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr ""
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr ""
 
@@ -170,55 +174,51 @@ msgstr ""
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "Архивирование откомпилированного ядра (кэширование) в: %[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr ""
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr ""
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr ""
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr ""
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr ""
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr ""
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr ""
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr ""
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr ""
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr ""
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr ""
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
@@ -230,32 +230,28 @@ msgid ""
 " remove them."
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr ""
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr ""
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr ""
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr ""
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr ""
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr ""
 
@@ -263,14 +259,10 @@ msgstr ""
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "Файл загрузчика указан но не существует: %[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr ""
-
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
 msgstr ""
@@ -279,7 +271,7 @@ msgstr ""
 msgid "Can't create sketch"
 msgstr ""
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr ""
 
@@ -292,31 +284,36 @@ msgstr ""
 msgid "Can't open sketch"
 msgstr ""
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr ""
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
 msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr ""
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr ""
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr ""
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr ""
 
@@ -332,11 +329,7 @@ msgstr ""
 msgid "Cannot execute debug tool"
 msgstr ""
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr ""
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr ""
 
@@ -356,53 +349,49 @@ msgstr ""
 msgid "Cannot upgrade platform"
 msgstr ""
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr ""
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr ""
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr ""
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr ""
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr ""
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr ""
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr ""
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr ""
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr ""
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr ""
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr ""
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr ""
 
@@ -410,24 +399,24 @@ msgstr ""
 msgid "Compiling library \"%[1]s\""
 msgstr ""
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "Компиляция скетча..."
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr ""
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr ""
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr ""
 
@@ -435,19 +424,19 @@ msgstr ""
 msgid "Configuring platform."
 msgstr ""
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr ""
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr ""
 
@@ -463,145 +452,154 @@ msgstr ""
 msgid "Couldn't determine program size"
 msgstr ""
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr ""
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr ""
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr ""
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr ""
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr ""
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr ""
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr ""
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr ""
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr ""
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr ""
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr ""
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr ""
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "По умолчанию"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr ""
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr ""
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr ""
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
 msgstr ""
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr ""
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr ""
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr ""
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr ""
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr ""
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr ""
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr ""
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr ""
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr ""
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr ""
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr ""
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr ""
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr ""
 
@@ -634,27 +632,27 @@ msgstr ""
 msgid "Downloading tool %s"
 msgstr ""
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr ""
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr ""
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr ""
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr ""
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr ""
 
@@ -662,44 +660,44 @@ msgstr ""
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr ""
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr ""
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr ""
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr ""
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr ""
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr ""
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr ""
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr ""
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr ""
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr ""
 
@@ -732,42 +730,42 @@ msgstr ""
 msgid "Error downloading tool %s"
 msgstr ""
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr ""
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr ""
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
 msgstr ""
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr ""
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr ""
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr ""
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr ""
 
@@ -779,7 +777,7 @@ msgstr ""
 msgid "Error finding build artifacts"
 msgstr ""
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr ""
 
@@ -787,48 +785,48 @@ msgstr ""
 msgid "Error getting absolute path of sketch archive"
 msgstr ""
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr ""
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr ""
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr ""
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr ""
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr ""
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr ""
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr ""
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr ""
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr ""
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr ""
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
 msgstr ""
 
@@ -847,15 +845,15 @@ msgstr ""
 msgid "Error installing tool %s"
 msgstr ""
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
+#: internal/cli/board/listall.go:63
+msgid "Error listing boards: %v"
 msgstr ""
 
-#: cli/board/listall.go:64
-msgid "Error listing boards: %v"
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
 msgstr ""
 
-#: cli/core/list.go:64
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr ""
 
@@ -876,19 +874,19 @@ msgstr ""
 msgid "Error opening %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr ""
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr ""
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr ""
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr ""
 
@@ -896,7 +894,7 @@ msgstr ""
 msgid "Error reading config file: %v"
 msgstr ""
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr ""
 
@@ -904,11 +902,11 @@ msgstr ""
 msgid "Error resolving FQBN"
 msgstr ""
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr ""
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr ""
 
@@ -924,15 +922,19 @@ msgstr ""
 msgid "Error saving downloaded index signature"
 msgstr ""
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr ""
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr ""
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
 msgstr ""
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr ""
 
@@ -940,23 +942,23 @@ msgstr ""
 msgid "Error serializing compilation database: %s"
 msgstr ""
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr ""
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr ""
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr ""
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr ""
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr ""
 
@@ -982,40 +984,41 @@ msgstr ""
 msgid "Error writing compilation database: %s"
 msgstr ""
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr ""
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr ""
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr ""
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr ""
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr ""
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr ""
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr ""
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr ""
 
@@ -1023,10 +1026,6 @@ msgstr ""
 msgid "Failed chip erase"
 msgstr ""
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr ""
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr ""
@@ -1043,19 +1042,19 @@ msgstr ""
 msgid "Failed to create downloads directory"
 msgstr ""
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
 msgstr ""
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
 msgstr ""
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
 msgstr ""
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
 msgstr ""
 
@@ -1063,7 +1062,7 @@ msgstr ""
 msgid "Failed uploading"
 msgstr ""
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr ""
 
@@ -1071,20 +1070,20 @@ msgstr ""
 msgid "First message must contain debug request, not data"
 msgstr ""
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
 msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr ""
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr ""
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr ""
@@ -1095,15 +1094,15 @@ msgid ""
 "%s"
 msgstr ""
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr ""
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr ""
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr ""
 
@@ -1111,23 +1110,24 @@ msgstr ""
 msgid "GDB server '%s' is not supported"
 msgstr ""
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr ""
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr ""
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr ""
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr ""
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr ""
 
@@ -1143,46 +1143,47 @@ msgstr ""
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "Глобальные переменные используют %[1]s байт динамической памяти."
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr ""
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr ""
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr ""
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr ""
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr ""
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr ""
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr ""
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "Установлено"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr ""
 
@@ -1199,11 +1200,11 @@ msgstr ""
 msgid "Installing tool %s"
 msgstr ""
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr ""
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr ""
 
@@ -1215,19 +1216,19 @@ msgstr ""
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr ""
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr ""
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr ""
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr ""
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr ""
@@ -1240,8 +1241,9 @@ msgstr ""
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr ""
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr ""
 
@@ -1249,10 +1251,6 @@ msgstr ""
 msgid "Invalid data size regexp: %s"
 msgstr ""
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr ""
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr ""
@@ -1261,7 +1259,7 @@ msgstr ""
 msgid "Invalid instance"
 msgstr ""
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr ""
 
@@ -1273,11 +1271,11 @@ msgstr ""
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr ""
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr ""
 
@@ -1285,11 +1283,11 @@ msgstr ""
 msgid "Invalid package index in %s"
 msgstr ""
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr ""
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr ""
 
@@ -1305,7 +1303,7 @@ msgstr ""
 msgid "Invalid size regexp: %s"
 msgstr ""
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr ""
 
@@ -1313,30 +1311,30 @@ msgstr ""
 msgid "Invalid version"
 msgstr ""
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
 msgstr ""
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr ""
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr ""
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr ""
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr ""
 
@@ -1344,7 +1342,8 @@ msgstr ""
 msgid "Library %[1]s has been declared precompiled:"
 msgstr ""
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr ""
@@ -1374,57 +1373,57 @@ msgstr ""
 msgid "Library install failed"
 msgstr ""
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr ""
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr ""
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr ""
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr ""
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr ""
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr ""
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr ""
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr ""
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr ""
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr ""
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr ""
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr ""
 
@@ -1437,7 +1436,7 @@ msgstr ""
 msgid "Loading libraries: %v"
 msgstr ""
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr ""
 
@@ -1445,15 +1444,15 @@ msgstr ""
 msgid "Low memory available, stability problems may occur."
 msgstr "Недостаточно памяти, программа может работать нестабильно."
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr ""
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr ""
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr ""
@@ -1470,7 +1469,11 @@ msgstr ""
 msgid "Missing port"
 msgstr ""
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr ""
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr ""
 
@@ -1490,7 +1493,7 @@ msgstr ""
 msgid "Monitor '%s' not found"
 msgstr ""
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr ""
 
@@ -1498,38 +1501,42 @@ msgstr ""
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "Несколько библиотек найдено для \"%[1]s\""
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr ""
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr ""
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr ""
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr ""
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr ""
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr ""
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr ""
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
 msgstr ""
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
 msgstr ""
 
@@ -1537,14 +1544,10 @@ msgstr ""
 msgid "No monitor available for the port protocol %s"
 msgstr ""
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr ""
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr ""
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr ""
@@ -1561,110 +1564,118 @@ msgstr "Недостаточно памяти; прочитайте %[1]s"
 msgid "Not used: %[1]s"
 msgstr "Не используется: %[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr ""
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr ""
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr ""
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr ""
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr ""
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr ""
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr ""
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr ""
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr ""
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr ""
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr ""
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr ""
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr ""
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr ""
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr ""
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr ""
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr ""
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr ""
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr ""
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr ""
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr ""
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr ""
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr ""
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr ""
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr ""
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1682,7 +1693,7 @@ msgstr ""
 msgid "Platform %s installed"
 msgstr ""
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1700,39 +1711,39 @@ msgstr ""
 msgid "Platform '%s' not found"
 msgstr ""
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr ""
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr ""
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr ""
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr ""
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr ""
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr ""
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr ""
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr ""
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr ""
 
@@ -1748,12 +1759,12 @@ msgid ""
 " identified"
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "Порт"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
 msgstr ""
 
 #: arduino/errors.go:632
@@ -1765,23 +1776,23 @@ msgstr ""
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr ""
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr ""
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr ""
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr ""
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr ""
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr ""
 
@@ -1793,15 +1804,15 @@ msgstr ""
 msgid "Programmer '%s' not found"
 msgstr ""
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr ""
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr ""
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr ""
 
@@ -1809,19 +1820,19 @@ msgstr ""
 msgid "Property '%s' is undefined"
 msgstr ""
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr ""
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr ""
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr ""
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr ""
 
@@ -1829,19 +1840,19 @@ msgstr ""
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr ""
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr ""
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr ""
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1851,102 +1862,104 @@ msgstr ""
 msgid "Running normal build of the core..."
 msgstr ""
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr ""
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr ""
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr ""
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr ""
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr ""
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr ""
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr ""
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr ""
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr ""
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr ""
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr ""
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr ""
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr ""
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr ""
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr ""
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr ""
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr ""
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr ""
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr ""
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr ""
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr ""
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr ""
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr ""
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1955,44 +1968,44 @@ msgid ""
 "not listed, they can be listed by adding the --all flag."
 msgstr ""
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr ""
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr ""
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr ""
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr ""
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr ""
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr ""
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr ""
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr ""
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr ""
 
@@ -2008,7 +2021,7 @@ msgstr ""
 "Скетч использует %[1]s байт (%[3]s%%) памяти устройства. Всего доступно "
 "%[2]s байт."
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2046,33 +2059,33 @@ msgstr ""
 msgid "Some indexes could not be updated."
 msgstr ""
 
-#: arduino/serialutils/serialutils.go:133
-msgid "TOUCH: error during reset: %s"
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
+#: arduino/serialutils/serialutils.go:133
+msgid "TOUCH: error during reset: %s"
 msgstr ""
 
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr ""
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr ""
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr ""
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
 msgstr ""
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2082,23 +2095,23 @@ msgstr ""
 msgid "The library %s has multiple installations:"
 msgstr ""
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr ""
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr ""
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2108,7 +2121,7 @@ msgstr ""
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2116,7 +2129,7 @@ msgid ""
 "update is available."
 msgstr ""
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2135,39 +2148,39 @@ msgstr ""
 msgid "Toolchain '%s' is not supported"
 msgstr ""
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr ""
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr ""
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr ""
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr ""
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr ""
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "Тип"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr ""
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr ""
 
@@ -2188,7 +2201,7 @@ msgstr ""
 msgid "Unable to get user home dir: %v"
 msgstr ""
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr ""
 
@@ -2206,17 +2219,17 @@ msgstr ""
 msgid "Uninstalling %s, tool is no more required"
 msgstr ""
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr ""
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr ""
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr ""
 
@@ -2224,27 +2237,27 @@ msgstr ""
 msgid "Unknown FQBN"
 msgstr ""
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr ""
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr ""
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr ""
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr ""
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr ""
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr ""
 
@@ -2252,32 +2265,32 @@ msgstr ""
 msgid "Upgrade doesn't accept parameters with version"
 msgstr ""
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr ""
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr ""
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr ""
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr ""
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr ""
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr ""
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr ""
 
@@ -2285,40 +2298,40 @@ msgstr ""
 msgid "Upload port found on %s"
 msgstr ""
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr ""
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr ""
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr ""
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr ""
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr ""
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr ""
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr ""
 
@@ -2326,12 +2339,6 @@ msgstr ""
 msgid "Used: %[1]s"
 msgstr "Используется: %[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr ""
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr ""
@@ -2366,29 +2373,29 @@ msgstr ""
 msgid "Using previously compiled file: %[1]s"
 msgstr "Используем предварительно скомпилированный файл: %[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr ""
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr ""
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr ""
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr ""
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr ""
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr ""
 
@@ -2396,7 +2403,7 @@ msgstr ""
 msgid "WARNING cannot configure platform: %s"
 msgstr ""
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr ""
 
@@ -2430,51 +2437,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr ""
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr ""
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr ""
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr ""
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr ""
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr ""
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr ""
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr ""
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr ""
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr ""
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr ""
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr ""
 
@@ -2486,6 +2489,10 @@ msgstr ""
 msgid "autodetect build artifact: %s"
 msgstr ""
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr ""
@@ -2494,12 +2501,12 @@ msgstr ""
 msgid "board %s not found"
 msgstr ""
 
-#: commands/board/list.go:43
-msgid "board not found"
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
+msgid "boardname"
 msgstr ""
 
-#: cli/board/listall.go:38 cli/board/search.go:37
-msgid "boardname"
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
 msgstr ""
 
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
@@ -2516,7 +2523,7 @@ msgstr ""
 msgid "can't find latest release of tool %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr ""
 
@@ -2549,7 +2556,7 @@ msgstr ""
 msgid "cleaning build path"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr ""
 
@@ -2572,12 +2579,12 @@ msgstr ""
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
 msgstr ""
 
 #: commands/upload/upload.go:623
@@ -2588,10 +2595,15 @@ msgstr ""
 msgid "could not overwrite"
 msgstr ""
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
 msgstr ""
 
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr ""
+
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
 msgstr ""
@@ -2604,23 +2616,23 @@ msgstr ""
 msgid "data section exceeds available space in board"
 msgstr ""
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr ""
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr ""
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr ""
 
@@ -2640,15 +2652,15 @@ msgstr ""
 msgid "discovery release not found: %s"
 msgstr ""
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr ""
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr ""
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
 msgstr ""
 
@@ -2660,11 +2672,7 @@ msgstr ""
 msgid "empty board identifier"
 msgstr ""
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr ""
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr ""
 
@@ -2672,19 +2680,19 @@ msgstr ""
 msgid "error opening %s"
 msgstr ""
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr ""
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr ""
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr ""
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr ""
 
@@ -2692,19 +2700,19 @@ msgstr ""
 msgid "extracting archive: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr ""
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr ""
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr ""
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr ""
 
@@ -2716,7 +2724,7 @@ msgstr ""
 msgid "finding absolute path of %s"
 msgstr ""
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr ""
 
@@ -2724,36 +2732,38 @@ msgstr ""
 msgid "following symlink %s"
 msgstr ""
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr ""
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr ""
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr ""
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr ""
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr ""
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr ""
@@ -2778,11 +2788,7 @@ msgstr ""
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr ""
 
@@ -2794,7 +2800,11 @@ msgstr ""
 msgid "installing platform %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr ""
 
@@ -2806,7 +2816,7 @@ msgstr ""
 msgid "invalid 'remove' message: missing port"
 msgstr ""
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr ""
 
@@ -2814,31 +2824,31 @@ msgstr ""
 msgid "invalid config option: %s"
 msgstr ""
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr ""
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
 msgstr ""
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr ""
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr ""
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr ""
 
@@ -2846,19 +2856,19 @@ msgstr ""
 msgid "invalid empty option found"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
 msgstr ""
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr ""
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr ""
 
@@ -2874,23 +2884,23 @@ msgstr ""
 msgid "invalid option '%s'"
 msgstr ""
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr ""
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr ""
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr ""
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr ""
 
@@ -2898,11 +2908,11 @@ msgstr ""
 msgid "invalid pluggable monitor reference: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr ""
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr ""
 
@@ -2910,6 +2920,12 @@ msgstr ""
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr ""
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr ""
@@ -2918,32 +2934,27 @@ msgstr ""
 msgid "invalid version directory %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr ""
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr ""
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr ""
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr ""
 
@@ -2970,8 +2981,8 @@ msgstr ""
 msgid "loading json index file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr ""
 
@@ -3004,15 +3015,15 @@ msgstr ""
 msgid "looking for boards.txt in %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr ""
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr ""
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr ""
 
@@ -3032,7 +3043,8 @@ msgstr ""
 msgid "monitor release not found: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr ""
@@ -3041,7 +3053,7 @@ msgstr ""
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr ""
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr ""
 
@@ -3061,7 +3073,7 @@ msgstr ""
 msgid "no sketch or build directory/file specified"
 msgstr ""
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr ""
 
@@ -3073,7 +3085,7 @@ msgstr ""
 msgid "no upload port provided"
 msgstr ""
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr ""
 
@@ -3081,7 +3093,11 @@ msgstr ""
 msgid "no versions available for the current OS"
 msgstr ""
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr ""
 
@@ -3093,11 +3109,11 @@ msgstr ""
 msgid "opening port at 1200bps"
 msgstr ""
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr ""
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr ""
 
@@ -3141,11 +3157,11 @@ msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr ""
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr ""
 
@@ -3153,11 +3169,11 @@ msgstr ""
 msgid "pluggable discovery already added: %s"
 msgstr ""
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr ""
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr ""
 
@@ -3173,7 +3189,7 @@ msgstr ""
 msgid "reading %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr ""
 
@@ -3184,7 +3200,7 @@ msgstr ""
 msgid "reading directory %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr ""
 
@@ -3192,11 +3208,11 @@ msgstr ""
 msgid "reading file %[1]s: %[2]s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr ""
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr ""
 
@@ -3220,10 +3236,6 @@ msgstr ""
 msgid "reading package root dir: %s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr ""
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr ""
@@ -3237,12 +3249,12 @@ msgstr ""
 msgid "release cannot be nil"
 msgstr ""
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr ""
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
 msgstr ""
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
@@ -3253,7 +3265,7 @@ msgstr ""
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr ""
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr ""
 
@@ -3273,15 +3285,24 @@ msgstr ""
 msgid "setting DTR to OFF"
 msgstr ""
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr ""
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr ""
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr ""
 
@@ -3289,15 +3310,15 @@ msgstr ""
 msgid "starting discovery %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
 msgstr ""
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
 msgstr ""
 
@@ -3318,7 +3339,7 @@ msgstr ""
 msgid "the platform has no releases"
 msgstr ""
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr ""
 
@@ -3348,7 +3369,7 @@ msgid "tool not installed"
 msgstr ""
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr ""
 
@@ -3356,7 +3377,7 @@ msgstr ""
 msgid "tool version %s not found"
 msgstr ""
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr ""
@@ -3377,7 +3398,7 @@ msgstr ""
 msgid "unable to create the folder containing the item"
 msgstr ""
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr ""
 
@@ -3405,19 +3426,19 @@ msgstr ""
 msgid "unknown platform %s:%s"
 msgstr ""
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr ""
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr ""
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr ""
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr ""
 
@@ -3425,6 +3446,18 @@ msgstr ""
 msgid "uploading error: %s"
 msgstr ""
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr ""
@@ -3433,10 +3466,6 @@ msgstr ""
 msgid "version %s not found"
 msgstr ""
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr ""
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr ""
diff --git a/i18n/data/zh.po b/i18n/data/zh.po
index 953d2acd43f..4d688a315db 100644
--- a/i18n/data/zh.po
+++ b/i18n/data/zh.po
@@ -2,17 +2,17 @@
 # Translators:
 # CLI team <prj_cli_team@arduino.cc>, 2022
 # Kuo Szu-Wei, 2022
-# cike567, 2022
 # ZW, 2022
+# cike567, 2022
 # 
 msgid ""
 msgstr ""
-"Last-Translator: ZW, 2022\n"
+"Last-Translator: cike567, 2022\n"
 "Language-Team: Chinese (https://www.transifex.com/arduino-1/teams/108174/zh/)\n"
 "Language: zh\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: version/version.go:53
+#: version/version.go:59
 msgid "%[1]s %[2]s Version: %[3]s Commit: %[4]s Date: %[5]s"
 msgstr "%[1]s %[2]s 版本:%[3]s 提交:%[4]s 日期:%[5]s"
 
@@ -24,7 +24,7 @@ msgstr "%[1]s 文件夹不再受支持!有关详细信息,请参见 %[2]s"
 msgid "%[1]s invalid, rebuilding all"
 msgstr "%[1]s 无效,全部重建"
 
-#: cli/lib/check_deps.go:113
+#: internal/cli/lib/check_deps.go:111
 msgid "%[1]s is required but %[2]s is currently installed."
 msgstr "%[1]s 是必需的,但当前已安装 %[2]s。"
 
@@ -48,7 +48,7 @@ msgstr "%[1]s,端口:%[2]s"
 msgid "%[1]s, protocol version: %[2]d"
 msgstr "%[1]s,协议版本:%[2]d"
 
-#: arduino/resources/download.go:48
+#: arduino/resources/download.go:49
 msgid "%s already downloaded"
 msgstr "%s 已经下载"
 
@@ -60,7 +60,7 @@ msgstr "%s 和 %s 不能一起使用"
 msgid "%s installed"
 msgstr "%s 已安装"
 
-#: cli/lib/check_deps.go:110
+#: internal/cli/lib/check_deps.go:108
 msgid "%s is already installed."
 msgstr "%s 已安装"
 
@@ -73,7 +73,7 @@ msgstr "%s 不是目录"
 msgid "%s is not managed by package manager"
 msgstr "%s 不是由软件包管理器管理的"
 
-#: cli/lib/check_deps.go:107
+#: internal/cli/lib/check_deps.go:105
 msgid "%s must be installed."
 msgstr "%s 必须安装"
 
@@ -85,7 +85,7 @@ msgstr "%s 模式丢失"
 msgid "'%s' has an invalid signature"
 msgstr "‘%s’ 的签名无效"
 
-#: cli/board/listall.go:91 cli/board/search.go:89
+#: internal/cli/board/listall.go:89 internal/cli/board/search.go:87
 msgid "(hidden)"
 msgstr "(隐藏)"
 
@@ -93,19 +93,23 @@ msgstr "(隐藏)"
 msgid "(legacy)"
 msgstr "(遗留)"
 
-#: cli/lib/install.go:82
+#: internal/cli/lib/install.go:80
 msgid ""
 "--git-url and --zip-path are disabled by default, for more information see: "
 "%v"
 msgstr "--git-url 和 --zip-path 默认是禁用的,更多信息参考: %v"
 
-#: cli/lib/install.go:85
+#: internal/cli/lib/install.go:82
 msgid ""
 "--git-url and --zip-path flags allow installing untrusted files, use it at "
 "your own risk."
 msgstr "--git-url 和 --zip-path 参数允许安装不受信任的文件,使用该标志风险自负。"
 
-#: cli/updater/updater.go:70
+#: commands/sketch/new.go:63
+msgid ".ino file already exists"
+msgstr ".ino 文件已存在"
+
+#: internal/cli/updater/updater.go:71
 msgid "A new release of Arduino CLI is available:"
 msgstr "新版本的 Arduino CLI 可用:"
 
@@ -113,32 +117,32 @@ msgstr "新版本的 Arduino CLI 可用:"
 msgid "A programmer is required to upload"
 msgstr "需要编译器上传"
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "ARCH"
 msgstr "ARCH"
 
-#: cli/generatedocs/generatedocs.go:80
+#: internal/cli/generatedocs/generatedocs.go:80
 msgid "ARDUINO COMMAND LINE MANUAL"
 msgstr "ARDUINO 命令行手册"
 
-#: cli/usage.go:32
+#: internal/cli/usage.go:32
 msgid "Additional help topics:"
 msgstr "更多帮助:"
 
-#: cli/config/add.go:74 cli/config/add.go:75
+#: internal/cli/config/add.go:73 internal/cli/config/add.go:74
 msgid "Adds one or more values to a setting."
 msgstr "将一个或多个值添加到设置中。"
 
-#: cli/usage.go:27
+#: internal/cli/usage.go:27
 msgid "Aliases:"
 msgstr "别名:"
 
-#: cli/core/upgrade.go:75
+#: internal/cli/core/upgrade.go:72
 msgid "All the cores are already at the latest version"
 msgstr "所有内核都是最新版本"
 
-#: commands/lib/install.go:87 commands/lib/install.go:132
+#: commands/lib/install.go:86
 msgid "Already installed %s"
 msgstr "已经安装 %s"
 
@@ -154,15 +158,15 @@ msgstr "添加原型时出错"
 msgid "An error occurred detecting libraries"
 msgstr "检测库时出错"
 
-#: cli/daemon/daemon.go:67
+#: internal/cli/daemon/daemon.go:62
 msgid "Append debug logging to the specified file"
 msgstr "附加除错日志到特定文件"
 
-#: cli/lib/search.go:164
+#: internal/cli/lib/search.go:159
 msgid "Architecture: %s"
 msgstr "架构:%s"
 
-#: commands/sketch/archive.go:70
+#: commands/sketch/archive.go:71
 msgid "Archive already exists"
 msgstr "存档已经存在"
 
@@ -170,92 +174,84 @@ msgstr "存档已经存在"
 msgid "Archiving built core (caching) in: %[1]s"
 msgstr "存档构建代码(缓存):%[1]s"
 
-#: cli/sketch/sketch.go:31 cli/sketch/sketch.go:32
+#: internal/cli/sketch/sketch.go:31 internal/cli/sketch/sketch.go:32
 msgid "Arduino CLI sketch commands."
 msgstr "Arduino CLI 项目命令"
 
-#: cli/cli.go:72
+#: internal/cli/cli.go:70
 msgid "Arduino CLI."
 msgstr "Arduino CLI。"
 
-#: cli/cli.go:73
+#: internal/cli/cli.go:71
 msgid "Arduino Command Line Interface (arduino-cli)."
 msgstr "Arduino 命令行界面 (arduino-cli)"
 
-#: cli/board/board.go:31 cli/board/board.go:32
+#: internal/cli/board/board.go:31 internal/cli/board/board.go:32
 msgid "Arduino board commands."
 msgstr "Arduino 开发板命令"
 
-#: cli/cache/cache.go:31 cli/cache/cache.go:32
+#: internal/cli/cache/cache.go:31 internal/cli/cache/cache.go:32
 msgid "Arduino cache commands."
 msgstr "Arduino 缓存命令。"
 
-#: cli/lib/lib.go:31 cli/lib/lib.go:32
+#: internal/cli/lib/lib.go:31 internal/cli/lib/lib.go:32
 msgid "Arduino commands about libraries."
 msgstr "Arduino 关于库的命令。"
 
-#: cli/config/config.go:33
+#: internal/cli/config/config.go:33
 msgid "Arduino configuration commands."
 msgstr "Arduino 配置命令。"
 
-#: cli/core/core.go:31 cli/core/core.go:32
+#: internal/cli/core/core.go:31 internal/cli/core/core.go:32
 msgid "Arduino core operations."
 msgstr "Arduino 内核操作。"
 
-#: cli/lib/check_deps.go:57 cli/lib/install.go:128
+#: internal/cli/lib/check_deps.go:56 internal/cli/lib/install.go:122
 msgid "Arguments error: %v"
 msgstr "参数错误:%v"
 
-#: cli/board/attach.go:81
-msgid "Attach board error: %v"
-msgstr "写入开发板错误:%v"
-
-#: cli/board/attach.go:41 cli/board/attach.go:42 cli/board/board.go:35
+#: internal/cli/board/attach.go:31
 msgid "Attaches a sketch to a board."
 msgstr "将项目写入开发板上。"
 
-#: cli/lib/search.go:155
+#: internal/cli/lib/search.go:150
 msgid "Author: %s"
 msgstr "作者:%s"
 
-#: arduino/libraries/librariesmanager/install.go:77
+#: arduino/libraries/librariesmanager/install.go:78
 msgid ""
 "Automatic library install can't be performed in this case, please manually "
 "remove all duplicates and retry."
-msgstr ""
+msgstr "在这种情况下不能进行自动安装库,请手动删除所有重复的库并重试。"
 
 #: commands/lib/uninstall.go:57
 msgid ""
 "Automatic library uninstall can't be performed in this case, please manually"
 " remove them."
-msgstr ""
+msgstr "在这种情况下不能进行自动卸载库,请手动删除它们。"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Available"
 msgstr "可用"
 
-#: cli/usage.go:29
+#: internal/cli/usage.go:29
 msgid "Available Commands:"
 msgstr "可用命令:"
 
-#: cli/upload/upload.go:72
+#: internal/cli/upload/upload.go:71
 msgid "Binary file to upload."
 msgstr "要上传的二进制文件。"
 
-#: cli/board/list.go:91 cli/board/list.go:131 cli/board/listall.go:87
-#: cli/board/search.go:85
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "Board Name"
 msgstr "开发板名"
 
-#: commands/board/attach.go:95
-msgid "Board found: %s"
-msgstr "找到开发板:%s"
-
-#: cli/board/details.go:119
+#: internal/cli/board/details.go:118
 msgid "Board name:"
 msgstr "开发板名:"
 
-#: cli/board/details.go:121
+#: internal/cli/board/details.go:120
 msgid "Board version:"
 msgstr "开发板版本:"
 
@@ -263,13 +259,9 @@ msgstr "开发板版本:"
 msgid "Bootloader file specified but missing: %[1]s"
 msgstr "已指定引导加载程序文件,缺少:%[1]s"
 
-#: cli/compile/compile.go:103
+#: internal/cli/compile/compile.go:100
 msgid "Builds of 'core.a' are saved into this path to be cached and reused."
-msgstr "‘core.a’的构建被保存到这个路径中,以便被缓存和重复使用。"
-
-#: arduino/libraries/librariesmanager/install.go:58
-msgid "Builtin libraries directory not set"
-msgstr "未设置内置库目录"
+msgstr "‘core.a’ 的构建被保存到这个路径中,以便被缓存和重复使用。"
 
 #: arduino/resources/index.go:45
 msgid "Can't create data directory %s"
@@ -279,7 +271,7 @@ msgstr "无法新建 %s 数据目录"
 msgid "Can't create sketch"
 msgstr "无法新建项目"
 
-#: commands/lib/download.go:62 commands/lib/download.go:65
+#: commands/lib/download.go:63 commands/lib/download.go:66
 msgid "Can't download library"
 msgstr "无法下载库"
 
@@ -292,31 +284,36 @@ msgstr "找不到 %s 平台的依赖"
 msgid "Can't open sketch"
 msgstr "无法打开项目"
 
-#: cli/config/set.go:55
+#: internal/cli/config/set.go:54
 msgid "Can't set multiple values in key %v"
 msgstr "无法在 %v 键中设置多个值"
 
-#: cli/arguments/arguments.go:37
-msgid "Can't use %s flags at the same time."
-msgstr "不能同时使用 %s 参数"
+#: internal/cli/arguments/arguments.go:36
+msgid "Can't use the following flags together: %s"
+msgstr ""
 
-#: cli/config/add.go:104 cli/config/delete.go:72 cli/config/remove.go:70
+#: internal/cli/config/add.go:103 internal/cli/config/delete.go:70
+#: internal/cli/config/remove.go:69
 msgid "Can't write config file: %v"
 msgstr "无法写入配置文件:%v"
 
-#: commands/compile/compile.go:160
+#: internal/cli/daemon/daemon.go:91
+msgid "Can't write debug log: %s"
+msgstr ""
+
+#: commands/compile/compile.go:160 commands/compile/compile.go:163
 msgid "Cannot create build cache directory"
 msgstr "无法新建构建缓存目录"
 
-#: commands/compile/compile.go:135
+#: commands/compile/compile.go:136
 msgid "Cannot create build directory"
 msgstr "无法新建构建目录"
 
-#: cli/config/init.go:97
+#: internal/cli/config/init.go:93
 msgid "Cannot create config file directory: %v"
 msgstr "无法新建配置文件目录:%v"
 
-#: cli/config/init.go:106
+#: internal/cli/config/init.go:101
 msgid "Cannot create config file: %v"
 msgstr "无法新建配置文件:%v"
 
@@ -332,11 +329,7 @@ msgstr "无法新建临时文件"
 msgid "Cannot execute debug tool"
 msgstr "无法运行调试工具"
 
-#: commands/board/attach.go:108
-msgid "Cannot export sketch metadata"
-msgstr "无法导出项目元数据"
-
-#: cli/config/init.go:72 cli/config/init.go:83
+#: internal/cli/config/init.go:71 internal/cli/config/init.go:81
 msgid "Cannot find absolute path: %v"
 msgstr "找不到绝对路径:%v"
 
@@ -356,53 +349,49 @@ msgstr "无法执行端口重置:%s"
 msgid "Cannot upgrade platform"
 msgstr "无法升级平台"
 
-#: cli/lib/search.go:163
+#: internal/cli/lib/search.go:158
 msgid "Category: %s"
 msgstr "类别:%s"
 
-#: cli/lib/check_deps.go:38 cli/lib/check_deps.go:39
+#: internal/cli/lib/check_deps.go:37 internal/cli/lib/check_deps.go:38
 msgid "Check dependencies status for the specified library."
 msgstr "检查指定库的依赖状态。"
 
-#: commands/lib/install.go:137
-msgid "Checking lib install prerequisites"
-msgstr "检查依赖安装前提条件"
-
-#: arduino/resources/checksums.go:168
+#: arduino/resources/checksums.go:167
 msgid "Checksum differs from checksum in package.json"
 msgstr "校验码与 package.json 中的校验码不同"
 
-#: cli/board/details.go:167
+#: internal/cli/board/details.go:168
 msgid "Checksum:"
 msgstr "校验码:"
 
-#: cli/cache/cache.go:33
+#: internal/cli/cache/cache.go:33
 msgid "Clean caches."
 msgstr "清理缓存。"
 
-#: cli/cli.go:125
+#: internal/cli/cli.go:124
 msgid "Comma-separated list of additional URLs for the Boards Manager."
 msgstr "以逗号分隔的开发板管理器附加地址列表。"
 
-#: cli/board/list.go:51
+#: internal/cli/board/list.go:53
 msgid ""
 "Command keeps running and prints list of connected boards whenever there is "
 "a change."
 msgstr "命令保持运行,并在发生更改时打印已连接开发板的列表。"
 
-#: commands/debug/debug_info.go:123 commands/upload/upload.go:369
+#: commands/debug/debug_info.go:125 commands/upload/upload.go:369
 msgid "Compiled sketch not found in %s"
 msgstr "在 %s 中找不到已编译项目"
 
-#: cli/compile/compile.go:87 cli/compile/compile.go:88
+#: internal/cli/compile/compile.go:84 internal/cli/compile/compile.go:85
 msgid "Compiles Arduino sketches."
 msgstr "编译 Arduino 项目"
 
-#: legacy/builder/builder.go:74
+#: legacy/builder/builder.go:73
 msgid "Compiling core..."
 msgstr "正在编译内核。。。"
 
-#: legacy/builder/builder.go:68
+#: legacy/builder/builder.go:67
 msgid "Compiling libraries..."
 msgstr "正在编译库。。。"
 
@@ -410,24 +399,24 @@ msgstr "正在编译库。。。"
 msgid "Compiling library \"%[1]s\""
 msgstr "正在编译 “%[1]s” 库"
 
-#: legacy/builder/builder.go:63
+#: legacy/builder/builder.go:62
 msgid "Compiling sketch..."
 msgstr "正在编译项目。。。"
 
-#: cli/config/init.go:90
+#: internal/cli/config/init.go:87
 msgid ""
 "Config file already exists, use --overwrite to discard the existing one."
 msgstr "配置文件已经存在,使用 --overwrite 弃用现有的配置文件。"
 
-#: cli/config/init.go:110
+#: internal/cli/config/init.go:104
 msgid "Config file written to: %s"
 msgstr "配置文件写入:%s"
 
-#: cli/monitor/monitor.go:63
+#: internal/cli/monitor/monitor.go:62
 msgid "Configuration of the port."
 msgstr "端口配置。"
 
-#: cli/debug/debug.go:145
+#: internal/cli/debug/debug.go:146
 msgid "Configuration options for %s"
 msgstr "%s 的配置选项"
 
@@ -435,19 +424,19 @@ msgstr "%s 的配置选项"
 msgid "Configuring platform."
 msgstr "配置平台。"
 
-#: cli/board/list.go:191
+#: internal/cli/board/list.go:197
 msgid "Connected"
 msgstr "已连接"
 
-#: cli/monitor/monitor.go:177
+#: internal/cli/monitor/monitor.go:174
 msgid "Connected to %s! Press CTRL-C to exit."
 msgstr "已连接到 %s!按 CTRL-C 退出。"
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Core"
 msgstr "内核"
 
-#: arduino/httpclient/httpclient.go:106
+#: arduino/httpclient/httpclient.go:112
 msgid "Could not connect via HTTP"
 msgstr "无法通过 HTTP 连接"
 
@@ -463,145 +452,154 @@ msgstr "无法深度缓存内核构建:%[1]s"
 msgid "Couldn't determine program size"
 msgstr "无法确定程序大小"
 
-#: cli/arguments/sketch.go:37 cli/lib/install.go:108
+#: internal/cli/arguments/sketch.go:36 internal/cli/lib/install.go:104
 msgid "Couldn't get current working directory: %v"
 msgstr "无法获得当前工作目录:%v"
 
-#: cli/sketch/new.go:36 cli/sketch/new.go:37
+#: internal/cli/sketch/new.go:37 internal/cli/sketch/new.go:38
 msgid "Create a new Sketch"
 msgstr "新建项目"
 
-#: cli/compile/compile.go:100
+#: internal/cli/compile/compile.go:97
 msgid "Create and print a profile configuration from the build."
 msgstr "从构建中创建并打印一个配置文件的内容。"
 
-#: cli/sketch/archive.go:39 cli/sketch/archive.go:40
+#: internal/cli/sketch/archive.go:38 internal/cli/sketch/archive.go:39
 msgid "Creates a zip file containing all sketch files."
 msgstr "新建包含所有项目文件的 zip 文件。"
 
-#: cli/config/init.go:43
+#: internal/cli/config/init.go:42
 msgid ""
 "Creates or updates the configuration file in the data directory or custom "
 "directory with the current configuration settings."
 msgstr "用当前的配置创建或更新数据目录或自定义目录中的配置文件。"
 
-#: cli/compile/compile.go:298
+#: internal/cli/compile/compile.go:281
 msgid ""
 "Currently, Build Profiles only support libraries available through Arduino "
 "Library Manager."
 msgstr "目前,Build Profiles 只支持通过 Arduino Library Manager 提供的库。"
 
-#: cli/core/list.go:91 cli/core/search.go:112
+#: internal/cli/core/list.go:89 internal/cli/core/search.go:108
 msgid "DEPRECATED"
 msgstr "已弃用"
 
-#: cli/daemon/daemon.go:184
+#: internal/cli/daemon/daemon.go:176
 msgid "Daemon is now listening on %s:%s"
 msgstr "守护进程正在监听 %s:%s"
 
-#: cli/debug/debug.go:52
+#: internal/cli/debug/debug.go:51
 msgid "Debug Arduino sketches."
 msgstr "调试 Arduino 项目"
 
-#: cli/debug/debug.go:53
+#: internal/cli/debug/debug.go:52
 msgid ""
 "Debug Arduino sketches. (this command opens an interactive gdb session)"
 msgstr "调试 Arduino 项目(此命令打开交互式 gdb 会话)"
 
-#: cli/debug/debug.go:62
+#: internal/cli/debug/debug.go:61
 msgid "Debug interpreter e.g.: %s"
 msgstr "调试解释器,例如:%s"
 
-#: commands/debug/debug_info.go:146
+#: commands/debug/debug_info.go:148
 msgid "Debugging not supported for board %s"
 msgstr "%s 开发板不支持调试"
 
-#: cli/board/details.go:123
+#: internal/cli/board/details.go:122
 msgid "Debugging supported:"
 msgstr "支持调试:"
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Default"
 msgstr "默认"
 
-#: cli/cache/clean.go:31
+#: internal/cli/board/attach.go:113
+msgid "Default FQBN set to"
+msgstr "默认的 FQBN 设置为"
+
+#: internal/cli/board/attach.go:112
+msgid "Default port set to"
+msgstr "默认的端口设置为"
+
+#: internal/cli/cache/clean.go:30
 msgid "Delete Boards/Library Manager download cache."
 msgstr "删除开发板/库管理器下载缓存"
 
-#: cli/cache/clean.go:32
+#: internal/cli/cache/clean.go:31
 msgid ""
 "Delete contents of the `directories.downloads` folder, where archive files "
 "are staged during installation of libraries and boards platforms."
-msgstr "删除下载文件夹内的内容,在安装库和开发板平台期间暂存归档文件。"
+msgstr "删除下载文件夹内的内容,在安装库和开发板平台期间暂存存档文件。"
 
-#: cli/config/delete.go:33 cli/config/delete.go:34
+#: internal/cli/config/delete.go:32 internal/cli/config/delete.go:33
 msgid "Deletes a settings key and all its sub keys."
 msgstr "删除设置键及其所有子键。"
 
-#: cli/lib/search.go:171
+#: internal/cli/lib/search.go:166
 msgid "Dependencies: %s"
 msgstr "依赖:%s"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Description"
 msgstr "说明"
 
-#: legacy/builder/builder.go:55
+#: legacy/builder/builder.go:54
 msgid "Detecting libraries used..."
 msgstr "正在检测使用的库。。。"
 
-#: cli/board/list.go:44
+#: internal/cli/board/list.go:45
 msgid ""
 "Detects and displays a list of boards connected to the current computer."
 msgstr "检测并显示连接到电脑的开发板的列表。"
 
-#: cli/debug/debug.go:63
+#: internal/cli/debug/debug.go:62
 msgid "Directory containing binaries for debug."
 msgstr "包含用于调试的二进制文件的目录。"
 
-#: cli/upload/upload.go:71
+#: internal/cli/upload/upload.go:70
 msgid "Directory containing binaries to upload."
 msgstr "包含用于上传的二进制文件的目录。"
 
-#: cli/generatedocs/generatedocs.go:45
+#: internal/cli/generatedocs/generatedocs.go:45
 msgid ""
 "Directory where to save generated files. Default is './docs', the directory "
 "must exist."
 msgstr "保存生成文件的目录。默认为 ./docs,该目录必须存在。"
 
-#: cli/completion/completion.go:45
+#: internal/cli/completion/completion.go:44
 msgid "Disable completion description for shells that support it"
 msgstr "对于支持完成描述的 shell,禁用完成描述"
 
-#: cli/board/list.go:192
+#: internal/cli/board/list.go:198
 msgid "Disconnected"
 msgstr "已断开连接"
 
-#: cli/daemon/daemon.go:68
+#: internal/cli/daemon/daemon.go:63
 msgid "Display only the provided gRPC calls"
 msgstr "只显示提供的 gRPC 调用"
 
-#: cli/lib/install.go:63
+#: internal/cli/lib/install.go:61
 msgid "Do not install dependencies."
 msgstr "不要安装依赖。"
 
-#: cli/lib/install.go:64
+#: internal/cli/lib/install.go:62
 msgid "Do not overwrite already installed libraries."
 msgstr "不要覆盖已经安装的库。"
 
-#: cli/core/install.go:57
+#: internal/cli/core/install.go:55
 msgid "Do not overwrite already installed platforms."
 msgstr "不要覆盖已经安装的平台。"
 
-#: cli/burnbootloader/burnbootloader.go:59 cli/upload/upload.go:76
+#: internal/cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/upload/upload.go:75
 msgid "Do not perform the actual upload, just log out actions"
 msgstr "不执行实际上传操作,只注销操作"
 
-#: cli/daemon/daemon.go:65
+#: internal/cli/daemon/daemon.go:60
 msgid "Do not terminate daemon process if the parent process dies"
 msgstr "如果父进程终止,则守护进程不终止。"
 
-#: commands/lib/download.go:59
+#: commands/lib/download.go:60
 msgid "Downloading %s"
 msgstr "正在下载 %s"
 
@@ -634,27 +632,27 @@ msgstr "正在下载 %s 平台"
 msgid "Downloading tool %s"
 msgstr "正在下载 %s 工具"
 
-#: cli/core/download.go:37 cli/core/download.go:38
+#: internal/cli/core/download.go:35 internal/cli/core/download.go:36
 msgid "Downloads one or more cores and corresponding tool dependencies."
 msgstr "下载一个或多个内核和相应的工具依赖"
 
-#: cli/lib/download.go:37 cli/lib/download.go:38
+#: internal/cli/lib/download.go:35 internal/cli/lib/download.go:36
 msgid "Downloads one or more libraries without installing them."
 msgstr "下载一个或多个库而不安装它们。"
 
-#: cli/daemon/daemon.go:66
+#: internal/cli/daemon/daemon.go:61
 msgid "Enable debug logging of gRPC calls"
 msgstr "启用 gRPC 调用的调试日志"
 
-#: cli/lib/install.go:66
+#: internal/cli/lib/install.go:64
 msgid "Enter a path to zip file"
 msgstr "输入压缩文件的路径"
 
-#: cli/lib/install.go:65
+#: internal/cli/lib/install.go:63
 msgid "Enter git url for libraries hosted on repositories"
 msgstr "输入在存储库上托管的库的 git 地址"
 
-#: commands/sketch/archive.go:105
+#: commands/sketch/archive.go:107
 msgid "Error adding file to sketch archive"
 msgstr "将文件添加到项目存档时出错"
 
@@ -662,44 +660,44 @@ msgstr "将文件添加到项目存档时出错"
 msgid "Error archiving built core (caching) in %[1]s: %[2]s"
 msgstr "在 %[1]s 中存档构建内核(缓存)时出错:%[2]s"
 
-#: cli/sketch/archive.go:79
+#: internal/cli/sketch/archive.go:80
 msgid "Error archiving: %v"
 msgstr "错误归档:%v"
 
-#: commands/sketch/archive.go:93
+#: commands/sketch/archive.go:95
 msgid "Error calculating relative file path"
 msgstr "计算相对文件路径时出错"
 
-#: cli/cache/clean.go:46
+#: internal/cli/cache/clean.go:45
 msgid "Error cleaning caches: %v"
 msgstr "清理缓存出错:%v"
 
-#: commands/compile/compile.go:260
+#: commands/compile/compile.go:279
 msgid "Error copying output file %s"
 msgstr "复制输出 %s 文件时出错"
 
-#: cli/core/search.go:65 cli/instance/instance.go:49
-#: cli/instance/instance.go:172 cli/lib/search.go:58
+#: internal/cli/core/search.go:63 internal/cli/instance/instance.go:46
+#: internal/cli/instance/instance.go:168 internal/cli/lib/search.go:56
 msgid "Error creating instance: %v"
 msgstr "新建实例时出错:%v"
 
-#: commands/compile/compile.go:240
+#: commands/compile/compile.go:259
 msgid "Error creating output dir"
 msgstr "新建输出目录时出错"
 
-#: commands/sketch/archive.go:81
+#: commands/sketch/archive.go:83
 msgid "Error creating sketch archive"
 msgstr "新建项目存档时出错"
 
-#: cli/sketch/new.go:52 cli/sketch/new.go:61
+#: internal/cli/sketch/new.go:69 internal/cli/sketch/new.go:82
 msgid "Error creating sketch: %v"
 msgstr "新建项目时出错:%v"
 
-#: cli/board/list.go:72 cli/board/list.go:83
+#: internal/cli/board/list.go:79 internal/cli/board/list.go:90
 msgid "Error detecting boards: %v"
 msgstr "检测开发板时出错:%v"
 
-#: cli/core/download.go:71 cli/lib/download.go:68
+#: internal/cli/core/download.go:68 internal/cli/lib/download.go:65
 msgid "Error downloading %[1]s: %[2]v"
 msgstr "下载 %[1]s 时出错:%[2]v"
 
@@ -732,42 +730,42 @@ msgstr "下载 %s 平台时出错"
 msgid "Error downloading tool %s"
 msgstr "下载 %s 工具时出错"
 
-#: cli/debug/debug.go:107
+#: internal/cli/debug/debug.go:109
 msgid "Error during Debug: %v"
 msgstr "调试时出错:%v"
 
-#: cli/arguments/port.go:157
+#: internal/cli/arguments/port.go:148
 msgid "Error during FQBN detection: %v"
-msgstr "检测FQBN时出错:%v"
+msgstr "检测 FQBN 时出错:%v"
 
-#: cli/feedback/feedback.go:160
+#: internal/cli/feedback/feedback.go:244 internal/cli/feedback/feedback.go:250
 msgid "Error during JSON encoding of the output: %v"
-msgstr "输出编码JSON过程时出错:%v"
+msgstr "输出编码 JSON 过程时出错:%v"
 
-#: cli/burnbootloader/burnbootloader.go:73
-#: cli/burnbootloader/burnbootloader.go:86 cli/compile/compile.go:245
-#: cli/compile/compile.go:277 cli/upload/upload.go:96 cli/upload/upload.go:113
-#: cli/upload/upload.go:164
+#: internal/cli/burnbootloader/burnbootloader.go:72
+#: internal/cli/burnbootloader/burnbootloader.go:85
+#: internal/cli/compile/compile.go:232 internal/cli/compile/compile.go:258
+#: internal/cli/upload/upload.go:95 internal/cli/upload/upload.go:111
 msgid "Error during Upload: %v"
 msgstr "上传时出错:%v"
 
-#: cli/feedback/feedback.go:171
+#: internal/cli/feedback/feedback.go:256
 msgid "Error during YAML encoding of the output: %v"
-msgstr "输出编码YAML过程时出错:%v"
+msgstr "输出编码 YAML 过程时出错:%v"
 
-#: cli/compile/compile.go:337
+#: internal/cli/compile/compile.go:325
 msgid "Error during build: %v"
 msgstr "构建时出错:%v"
 
-#: cli/core/install.go:82
+#: internal/cli/core/install.go:79
 msgid "Error during install: %v"
 msgstr "安装时出错:%v"
 
-#: cli/core/uninstall.go:72
+#: internal/cli/core/uninstall.go:68
 msgid "Error during uninstall: %v"
 msgstr "卸载时出错:%v"
 
-#: cli/core/upgrade.go:112
+#: internal/cli/core/upgrade.go:107
 msgid "Error during upgrade: %v"
 msgstr "升级时出错:%v"
 
@@ -779,7 +777,7 @@ msgstr "提取 %s 时出错"
 msgid "Error finding build artifacts"
 msgstr "查找构建项目时出错"
 
-#: cli/debug/debug.go:94
+#: internal/cli/debug/debug.go:93
 msgid "Error getting Debug info: %v"
 msgstr "获取调试信息时出错:%v"
 
@@ -787,50 +785,50 @@ msgstr "获取调试信息时出错:%v"
 msgid "Error getting absolute path of sketch archive"
 msgstr "获取项目存档的绝对路径时出错"
 
-#: cli/board/details.go:70
+#: internal/cli/board/details.go:69
 msgid "Error getting board details: %v"
 msgstr "获取开发板详细信息时出错:%v"
 
-#: commands/board/list.go:154
-msgid "Error getting board info from Arduino Cloud"
-msgstr "从 Arduino Cloud 获取开发板信息时出错"
-
 #: arduino/builder/compilation_database.go:78
 msgid "Error getting current directory for compilation database: %s"
 msgstr "获取编译数据库的当前目录时出错:%s"
 
-#: commands/compile/compile.go:208 commands/lib/list.go:109
+#: commands/compile/compile.go:227 commands/lib/list.go:112
 msgid "Error getting information for library %s"
 msgstr "获取 %s 库的信息时出错"
 
-#: cli/lib/examples.go:73
+#: internal/cli/lib/examples.go:72
 msgid "Error getting libraries info: %v"
 msgstr "获取库信息时出错:%v"
 
-#: cli/arguments/fqbn.go:99
+#: internal/cli/arguments/fqbn.go:93
 msgid "Error getting port metadata: %v"
 msgstr "获取端口元数据出错:%v"
 
-#: cli/monitor/monitor.go:90
+#: internal/cli/monitor/monitor.go:88
 msgid "Error getting port settings details: %s"
 msgstr "获取端口设置详细信息时出错:%s"
 
-#: cli/instance/instance.go:80 cli/instance/instance.go:95
-#: cli/instance/instance.go:112
+#: internal/cli/upload/upload.go:144
+msgid "Error getting user input"
+msgstr ""
+
+#: internal/cli/instance/instance.go:76 internal/cli/instance/instance.go:91
+#: internal/cli/instance/instance.go:108
 msgid "Error initializing instance: %v"
 msgstr "初始化实例时出错:%v"
 
-#: cli/lib/install.go:142
+#: internal/cli/lib/install.go:135
 msgid "Error installing %s: %v"
 msgstr "安装 %s 时出错:%v"
 
-#: cli/lib/install.go:119
+#: internal/cli/lib/install.go:114
 msgid "Error installing Git Library: %v"
 msgstr "安装 Git 库时出错:%v"
 
-#: cli/lib/install.go:96
+#: internal/cli/lib/install.go:93
 msgid "Error installing Zip Library: %v"
-msgstr "安装Zip库时出错:%v"
+msgstr "安装 Zip 库时出错:%v"
 
 #: commands/instances.go:429
 msgid "Error installing library %s"
@@ -847,15 +845,15 @@ msgstr "安装 %s 平台时出错"
 msgid "Error installing tool %s"
 msgstr "安装 %s 工具时出错"
 
-#: cli/lib/list.go:79
-msgid "Error listing libraries: %v"
-msgstr "列出库列表时出错:%v"
-
-#: cli/board/listall.go:64
+#: internal/cli/board/listall.go:63
 msgid "Error listing boards: %v"
 msgstr "列出开发板列表时出错:%v"
 
-#: cli/core/list.go:64
+#: internal/cli/lib/list.go:78
+msgid "Error listing libraries: %v"
+msgstr ""
+
+#: internal/cli/core/list.go:63
 msgid "Error listing platforms: %v"
 msgstr "列出平台列表时出错:%v"
 
@@ -876,19 +874,19 @@ msgstr "加载 %s 索引时出错"
 msgid "Error opening %s"
 msgstr "打开 %s 时出错"
 
-#: cli/daemon/daemon.go:91
+#: internal/cli/daemon/daemon.go:85
 msgid "Error opening debug logging file: %s"
 msgstr "打开调试日志文件出错:%s"
 
-#: cli/arguments/sketch.go:51
+#: internal/cli/arguments/sketch.go:49
 msgid "Error opening sketch: %v"
 msgstr "打开项目时出错:%v"
 
-#: cli/compile/compile.go:189
+#: internal/cli/compile/compile.go:180
 msgid "Error opening source code overrides data file: %v"
 msgstr "打开源代码覆盖数据文件时出错:%v"
 
-#: commands/compile/compile.go:250
+#: commands/compile/compile.go:269
 msgid "Error reading build directory"
 msgstr "读取构建目录时出错"
 
@@ -896,19 +894,19 @@ msgstr "读取构建目录时出错"
 msgid "Error reading config file: %v"
 msgstr "读取配置文件时出错:%v"
 
-#: commands/sketch/archive.go:75
+#: commands/sketch/archive.go:77
 msgid "Error reading sketch files"
 msgstr "读取项目文件时出错"
 
 #: legacy/builder/target_board_resolver.go:30
 msgid "Error resolving FQBN"
-msgstr "解析FQBN时出错"
+msgstr "解析 FQBN 时出错"
 
-#: cli/lib/check_deps.go:67
+#: internal/cli/lib/check_deps.go:65
 msgid "Error resolving dependencies for %[1]s: %[2]s"
 msgstr "解析 %[1]s 的依赖时出错:%[2]s"
 
-#: cli/core/upgrade.go:70
+#: internal/cli/core/upgrade.go:68
 msgid "Error retrieving core list: %v"
 msgstr "检索内核列表时出错:%v"
 
@@ -924,15 +922,19 @@ msgstr "保存下载的索引时出错"
 msgid "Error saving downloaded index signature"
 msgstr "保存已下载的索引签名时出错"
 
-#: cli/board/search.go:62
+#: internal/cli/board/attach.go:69 internal/cli/board/attach.go:78
+msgid "Error saving sketch metadata"
+msgstr "保存项目元数据时出现错误"
+
+#: internal/cli/board/search.go:61
 msgid "Error searching boards: %v"
 msgstr "搜索开发板时错误:%v"
 
-#: cli/lib/search.go:78
-msgid "Error searching for libraries: %v"
-msgstr ""
+#: internal/cli/lib/search.go:74
+msgid "Error searching for Libraries: %v"
+msgstr "搜索库时出现错误:%v"
 
-#: cli/core/search.go:87
+#: internal/cli/core/search.go:84
 msgid "Error searching for platforms: %v"
 msgstr "搜索平台时出错:%v"
 
@@ -940,23 +942,23 @@ msgstr "搜索平台时出错:%v"
 msgid "Error serializing compilation database: %s"
 msgstr "序列化编译数据库时出错:%s"
 
-#: cli/board/list.go:75
+#: internal/cli/board/list.go:82
 msgid "Error starting discovery: %v"
 msgstr "启动时发现出错:%v"
 
-#: cli/lib/uninstall.go:66
+#: internal/cli/lib/uninstall.go:63
 msgid "Error uninstalling %[1]s: %[2]v"
 msgstr "卸载 %[1]s 时出错:%[2]v"
 
-#: cli/instance/instance.go:181
+#: internal/cli/instance/instance.go:176
 msgid "Error updating indexes: %v"
 msgstr "更新索引时出错:%v"
 
-#: cli/lib/search.go:67 cli/lib/update_index.go:56
+#: internal/cli/lib/search.go:64 internal/cli/lib/update_index.go:54
 msgid "Error updating library index: %v"
 msgstr "更新库索引时出错:%v"
 
-#: cli/lib/upgrade.go:72
+#: internal/cli/lib/upgrade.go:71
 msgid "Error upgrading libraries"
 msgstr "升级库时出错"
 
@@ -982,40 +984,41 @@ msgstr "确定项目大小时出错:%s"
 msgid "Error writing compilation database: %s"
 msgstr "写入编译数据库时出错:%s"
 
-#: cli/completion/completion.go:53
+#: internal/cli/completion/completion.go:56
 msgid "Error: command description is not supported by %v"
 msgstr "错误:%v 不支持命令说明"
 
-#: cli/compile/compile.go:196
+#: internal/cli/compile/compile.go:186
 msgid "Error: invalid source code overrides data file: %v"
 msgstr "错误:无效的源代码覆盖了数据文件:%v"
 
-#: cli/board/list.go:91
+#: internal/cli/board/list.go:97
 msgid "Event"
 msgstr "事件"
 
-#: cli/lib/examples.go:122
+#: internal/cli/lib/examples.go:120
 msgid "Examples for library %s"
 msgstr "%s 库的示例"
 
-#: cli/usage.go:28
+#: internal/cli/usage.go:28
 msgid "Examples:"
 msgstr "示例:"
 
-#: cli/debug/debug.go:126
+#: internal/cli/debug/debug.go:127
 msgid "Executable to debug"
 msgstr "可执行调试"
 
-#: commands/debug/debug_info.go:126 commands/upload/upload.go:372
+#: commands/debug/debug_info.go:128 commands/upload/upload.go:372
 msgid "Expected compiled sketch in directory %s, but is a file instead"
 msgstr "应在 %s 目录中编译项目,但它是一个文件"
 
-#: cli/board/attach.go:40 cli/board/details.go:43 cli/board/list.go:91
-#: cli/board/list.go:131 cli/board/listall.go:87 cli/board/search.go:85
+#: internal/cli/board/attach.go:30 internal/cli/board/details.go:42
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
+#: internal/cli/board/listall.go:85 internal/cli/board/search.go:83
 msgid "FQBN"
 msgstr "FQBN"
 
-#: cli/board/details.go:120
+#: internal/cli/board/details.go:119
 msgid "FQBN:"
 msgstr "FQBN:"
 
@@ -1023,10 +1026,6 @@ msgstr "FQBN:"
 msgid "Failed chip erase"
 msgstr "芯片擦除失败"
 
-#: cli/daemon/daemon.go:158
-msgid "Failed choosing port, address: %s"
-msgstr "选择端口失败,地址:%s"
-
 #: commands/upload/upload.go:469
 msgid "Failed programming"
 msgstr "编译失败"
@@ -1043,27 +1042,27 @@ msgstr "新建数据目录失败"
 msgid "Failed to create downloads directory"
 msgstr "新建下载文件夹失败"
 
-#: cli/daemon/daemon.go:137
+#: internal/cli/daemon/daemon.go:132
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is an invalid port."
-msgstr "未能侦听TCP端口:%[1]s。%[2]s 是无效端口。"
+msgstr "未能侦听 TCP 端口:%[1]s。%[2]s 是无效端口。"
 
-#: cli/daemon/daemon.go:131
+#: internal/cli/daemon/daemon.go:127
 msgid "Failed to listen on TCP port: %[1]s. %[2]s is unknown name."
-msgstr "未能侦听TCP端口:%[1]s。%[2]s 是未知名称。"
+msgstr "未能侦听 TCP 端口:%[1]s。%[2]s 是未知名称。"
 
-#: cli/daemon/daemon.go:146
+#: internal/cli/daemon/daemon.go:139
 msgid "Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v"
-msgstr "未能侦听TCP端口:%[1]s。意外错误:%[2]v"
+msgstr "未能侦听 TCP 端口:%[1]s。意外错误:%[2]v"
 
-#: cli/daemon/daemon.go:143
+#: internal/cli/daemon/daemon.go:137
 msgid "Failed to listen on TCP port: %s. Address already in use."
-msgstr "未能侦听TCP端口:%s。地址已被使用。"
+msgstr "未能侦听 TCP 端口:%s。地址已被使用。"
 
 #: commands/upload/upload.go:473
 msgid "Failed uploading"
 msgstr "上传失败"
 
-#: cli/board/details.go:165
+#: internal/cli/board/details.go:166
 msgid "File:"
 msgstr "文件:"
 
@@ -1071,20 +1070,20 @@ msgstr "文件:"
 msgid "First message must contain debug request, not data"
 msgstr "第一条消息必须包含调试请求,而不是数据"
 
-#: cli/arguments/arguments.go:47
-msgid "Flag %[1]s is mandatory when used in conjunction with flag %[2]s."
-msgstr "当与参数 %[1]s 一起使用时,参数 %[2]s 是强制性的。"
+#: internal/cli/arguments/arguments.go:47
+msgid "Flag %[1]s is mandatory when used in conjunction with: %[2]s"
+msgstr ""
 
-#: cli/usage.go:30
+#: internal/cli/usage.go:30
 msgid "Flags:"
 msgstr "参数:"
 
-#: cli/arguments/post_install.go:35
+#: internal/cli/arguments/post_install.go:35
 msgid ""
 "Force run of post-install scripts (if the CLI is not running interactively)."
 msgstr "强制运行安装后脚本(如果 CLI 未以交互方式运行)。"
 
-#: cli/arguments/post_install.go:36
+#: internal/cli/arguments/post_install.go:36
 msgid ""
 "Force skip of post-install scripts (if the CLI is running interactively)."
 msgstr "强制跳过安装后脚本(如果 CLI 以交互方式运行)。"
@@ -1097,15 +1096,15 @@ msgstr ""
 "找到 %d 平台以供参考 “%s”:\n"
 "%s"
 
-#: cli/arguments/fqbn.go:40
+#: internal/cli/arguments/fqbn.go:38
 msgid "Fully Qualified Board Name, e.g.: arduino:avr:uno"
 msgstr "完全合格开发板名,例如:arduino:avr:uno"
 
-#: cli/debug/debug.go:140
+#: internal/cli/debug/debug.go:141
 msgid "GDB Server path"
 msgstr "GDB 服务器路径"
 
-#: cli/debug/debug.go:139
+#: internal/cli/debug/debug.go:140
 msgid "GDB Server type"
 msgstr "GDB 服务器类型"
 
@@ -1113,23 +1112,24 @@ msgstr "GDB 服务器类型"
 msgid "GDB server '%s' is not supported"
 msgstr "不支持 GDB 服务器 ‘%s’"
 
-#: cli/generatedocs/generatedocs.go:38 cli/generatedocs/generatedocs.go:39
+#: internal/cli/generatedocs/generatedocs.go:38
+#: internal/cli/generatedocs/generatedocs.go:39
 msgid "Generates bash completion and command manpages."
 msgstr "已生成 bash 和命令手册。"
 
-#: cli/completion/completion.go:39
+#: internal/cli/completion/completion.go:38
 msgid "Generates completion scripts"
 msgstr "已生成脚本"
 
-#: cli/completion/completion.go:40
+#: internal/cli/completion/completion.go:39
 msgid "Generates completion scripts for various shells"
 msgstr "已为各种 shell 生成脚本"
 
-#: legacy/builder/builder.go:60
+#: legacy/builder/builder.go:59
 msgid "Generating function prototypes..."
 msgstr "生成函数原型。。。"
 
-#: cli/usage.go:31
+#: internal/cli/usage.go:31
 msgid "Global Flags:"
 msgstr "全局参数:"
 
@@ -1143,46 +1143,47 @@ msgstr " 个全局变量使用 %[1]s 个字节(%[3]s%%)的动态内存,剩
 msgid "Global variables use %[1]s bytes of dynamic memory."
 msgstr "全局变量使用 %[1]s 字节的动态内存。"
 
-#: cli/core/list.go:87 cli/core/search.go:108 cli/monitor/monitor.go:195
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/monitor/monitor.go:192
 msgid "ID"
 msgstr "ID"
 
-#: cli/board/details.go:92 cli/board/details.go:193
+#: internal/cli/board/details.go:90
 msgid "Id"
 msgstr "Id"
 
-#: cli/board/details.go:134
+#: internal/cli/board/details.go:133
 msgid "Identification properties:"
 msgstr "标识属性:"
 
-#: cli/compile/compile.go:136
+#: internal/cli/compile/compile.go:133
 msgid "If set built binaries will be exported to the sketch folder."
 msgstr "如果设定,则构建的二进制文件将导出到项目文件夹。"
 
-#: cli/core/list.go:46
+#: internal/cli/core/list.go:45
 msgid ""
 "If set return all installable and installed cores, including manually "
 "installed."
 msgstr "如果设定,则返回所有可安装和已安装的内核,包括手动安装的内核。"
 
-#: cli/lib/list.go:52
+#: internal/cli/lib/list.go:51
 msgid "Include built-in libraries (from platforms and IDE) in listing."
 msgstr "在列表中包含内置库(来自平台和 IDE)。"
 
-#: cli/sketch/archive.go:51
+#: internal/cli/sketch/archive.go:50
 msgid "Includes %s directory in the archive."
 msgstr "在存档中包含 %s 目录。"
 
-#: cli/core/list.go:87 cli/lib/list.go:131
+#: internal/cli/core/list.go:85 internal/cli/lib/list.go:129
 msgid "Installed"
 msgstr "已安装"
 
-#: commands/lib/install.go:152
+#: commands/lib/install.go:137
 msgid "Installed %s"
 msgstr "已安装 %s"
 
 #: arduino/cores/packagemanager/install_uninstall.go:312
-#: commands/lib/install.go:128
+#: commands/lib/install.go:123
 msgid "Installing %s"
 msgstr "正在安装 %s"
 
@@ -1199,11 +1200,11 @@ msgstr "正在安装 %s 平台"
 msgid "Installing tool %s"
 msgstr "正在安装 %s 工具"
 
-#: cli/core/install.go:39 cli/core/install.go:40
+#: internal/cli/core/install.go:37 internal/cli/core/install.go:38
 msgid "Installs one or more cores and corresponding tool dependencies."
 msgstr "安装一个或多个内核和相应的工具依赖。"
 
-#: cli/lib/install.go:49 cli/lib/install.go:50
+#: internal/cli/lib/install.go:47 internal/cli/lib/install.go:48
 msgid "Installs one or more specified libraries into the system."
 msgstr "在系统中安装一个或多个指定的库。"
 
@@ -1215,19 +1216,19 @@ msgstr "缓存中的内部错误"
 msgid "Invalid '%[1]s' property: %[2]s"
 msgstr "无效的 ‘%[1]s’ 属性:%[2]s"
 
-#: cli/cli.go:268
+#: internal/cli/cli.go:248
 msgid ""
 "Invalid Call : should show Help, but it is available only in TEXT mode."
 msgstr "无效调用:应显示帮助,但仅在文本模式下可用。"
 
-#: commands/board/attach.go:67
-msgid "Invalid Device URL format"
-msgstr "设备地址格式无效"
-
 #: arduino/errors.go:62
 msgid "Invalid FQBN"
 msgstr "无效的 FQBN"
 
+#: internal/cli/daemon/daemon.go:150
+msgid "Invalid TCP address: port is missing"
+msgstr ""
+
 #: arduino/errors.go:80
 msgid "Invalid URL"
 msgstr "无效的地址"
@@ -1240,8 +1241,9 @@ msgstr "无效的附加地址:%v"
 msgid "Invalid archive: file %{1}s not found in archive %{2}s"
 msgstr "无效存档:在存档 %{1}s 中未找到文件 %{2}s"
 
-#: cli/core/download.go:58 cli/core/install.go:67 cli/core/uninstall.go:55
-#: cli/core/upgrade.go:88 cli/lib/download.go:56 cli/lib/uninstall.go:55
+#: internal/cli/core/download.go:56 internal/cli/core/install.go:65
+#: internal/cli/core/uninstall.go:53 internal/cli/core/upgrade.go:84
+#: internal/cli/lib/download.go:54 internal/cli/lib/uninstall.go:53
 msgid "Invalid argument passed: %v"
 msgstr "传递的参数无效:%v"
 
@@ -1249,10 +1251,6 @@ msgstr "传递的参数无效:%v"
 msgid "Invalid data size regexp: %s"
 msgstr "无效的数据大小正则表达式:%s"
 
-#: commands/board/attach.go:77
-msgid "Invalid device port type provided"
-msgstr "提供的设备端口类型无效"
-
 #: legacy/builder/phases/sizer.go:215
 msgid "Invalid eeprom size regexp: %s"
 msgstr "无效的 eeprom 大小正则表达式:%s"
@@ -1261,7 +1259,7 @@ msgstr "无效的 eeprom 大小正则表达式:%s"
 msgid "Invalid instance"
 msgstr "无效的实例"
 
-#: cli/core/upgrade.go:94
+#: internal/cli/core/upgrade.go:90
 msgid "Invalid item %s"
 msgstr "无效的 %s 条目"
 
@@ -1273,11 +1271,11 @@ msgstr "无效的库"
 msgid "Invalid network.proxy '%[1]s': %[2]s"
 msgstr "无效的 ‘%[1]s’ 网络代理: %[2]s"
 
-#: cli/cli.go:229
+#: internal/cli/cli.go:215
 msgid "Invalid option for --log-level: %s"
 msgstr "--log-level 选项无效:%s"
 
-#: cli/cli.go:246
+#: internal/cli/cli.go:227
 msgid "Invalid output format: %s"
 msgstr "无效的输出格式:%s"
 
@@ -1285,11 +1283,11 @@ msgstr "无效的输出格式:%s"
 msgid "Invalid package index in %s"
 msgstr "%s 中的软件包索引无效"
 
-#: cli/core/uninstall.go:61
+#: internal/cli/core/uninstall.go:58
 msgid "Invalid parameter %s: version not allowed"
 msgstr "无效 %s 参数:版本不允许"
 
-#: commands/board/list.go:59
+#: commands/board/list.go:78
 msgid "Invalid pid value: '%s'"
 msgstr "无效的pid值:‘%s’"
 
@@ -1305,7 +1303,7 @@ msgstr "platform.txt 中的方法无效"
 msgid "Invalid size regexp: %s"
 msgstr "无效的大小正则表达式:%s"
 
-#: cli/core/search.go:132
+#: internal/cli/core/search.go:128
 msgid "Invalid timeout: %s"
 msgstr "超时无效:%s"
 
@@ -1313,30 +1311,30 @@ msgstr "超时无效:%s"
 msgid "Invalid version"
 msgstr "无效的版本"
 
-#: commands/board/list.go:56
+#: commands/board/list.go:75
 msgid "Invalid vid value: '%s'"
-msgstr "无效的vid值:‘%s’"
+msgstr "无效的 vid 值:‘%s’"
 
-#: cli/compile/compile.go:131
+#: internal/cli/compile/compile.go:128
 msgid ""
 "Just produce the compilation database, without actually compiling. All build"
 " commands are skipped except pre* hooks."
 msgstr "只生成编译数据库,不实际编译。跳过除 pre*hook 之外的所有生成命令。"
 
-#: cli/lib/list.go:39
+#: internal/cli/lib/list.go:38
 msgid "LIBNAME"
 msgstr "库名"
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "LIBRARY"
 msgstr "库"
 
-#: cli/lib/download.go:36 cli/lib/examples.go:43 cli/lib/search.go:40
-#: cli/lib/uninstall.go:36
+#: internal/cli/lib/download.go:34 internal/cli/lib/examples.go:42
+#: internal/cli/lib/search.go:38 internal/cli/lib/uninstall.go:34
 msgid "LIBRARY_NAME"
 msgstr "库_名"
 
-#: cli/core/list.go:87
+#: internal/cli/core/list.go:85
 msgid "Latest"
 msgstr "最新的"
 
@@ -1344,14 +1342,15 @@ msgstr "最新的"
 msgid "Library %[1]s has been declared precompiled:"
 msgstr "%[1]s 库已声明为预编译:"
 
-#: commands/lib/install.go:96
+#: arduino/libraries/librariesmanager/install.go:135
+#: commands/lib/install.go:92
 msgid ""
 "Library %[1]s is already installed, but with a different version: %[2]s"
 msgstr "库 %[1]s 已经安装,但有不同的版本。:%[2]s"
 
 #: commands/lib/upgrade.go:59
 msgid "Library %s is already at the latest version"
-msgstr ""
+msgstr "库 %s 已经是最新版本"
 
 #: commands/lib/uninstall.go:39
 msgid "Library %s is not installed"
@@ -1374,57 +1373,57 @@ msgstr "库不能同时使用 ‘%[1]s’ 和 ‘%[2]s’ 文件夹。在 ‘%[3
 msgid "Library install failed"
 msgstr "库安装失败"
 
-#: commands/lib/install.go:162 commands/lib/install.go:172
+#: commands/lib/install.go:147 commands/lib/install.go:157
 msgid "Library installed"
 msgstr "已安装的库"
 
-#: cli/lib/search.go:161
+#: internal/cli/lib/search.go:156
 msgid "License: %s"
 msgstr "许可证:%s"
 
-#: legacy/builder/builder.go:79
+#: legacy/builder/builder.go:78
 msgid "Linking everything together..."
 msgstr "将所有内容链接在一起。。。"
 
-#: cli/board/listall.go:40 cli/board/search.go:39
+#: internal/cli/board/listall.go:39 internal/cli/board/search.go:38
 msgid ""
 "List all boards that have the support platform installed. You can search\n"
 "for a specific board if you specify the board name"
 msgstr "列出已安装的受支持的平台的所有开发板。如果指定开发板名,则可以搜索指定开发板"
 
-#: cli/board/listall.go:39 cli/board/search.go:38
+#: internal/cli/board/listall.go:38 internal/cli/board/search.go:37
 msgid "List all known boards and their corresponding FQBN."
 msgstr "列出所有已知开发板及其相应的 FQBN。"
 
-#: cli/board/list.go:43
+#: internal/cli/board/list.go:44
 msgid "List connected boards."
 msgstr "列出已连接的开发板。"
 
-#: cli/arguments/fqbn.go:45
+#: internal/cli/arguments/fqbn.go:43
 msgid ""
 "List of board options separated by commas. Or can be used multiple times for"
 " multiple options."
 msgstr "用逗号分隔的开发板选项列表。可以对多个选项多次使用。"
 
-#: cli/compile/compile.go:108
+#: internal/cli/compile/compile.go:105
 msgid ""
 "List of custom build properties separated by commas. Or can be used multiple"
 " times for multiple properties."
 msgstr "用逗号分隔的自定义构建属性列表。可以对多个属性多次使用。"
 
-#: cli/lib/list.go:54
+#: internal/cli/lib/list.go:53
 msgid "List updatable libraries."
 msgstr "列出可更新的库。"
 
-#: cli/core/list.go:45
+#: internal/cli/core/list.go:44
 msgid "List updatable platforms."
 msgstr "列出可更新的平台。"
 
-#: cli/board/board.go:33
+#: internal/cli/board/board.go:33
 msgid "Lists all connected boards."
 msgstr "列出所有已连接的开发板。"
 
-#: cli/outdated/outdated.go:36
+#: internal/cli/outdated/outdated.go:36
 msgid "Lists cores and libraries that can be upgraded"
 msgstr "列出可以升级的内核和库"
 
@@ -1437,7 +1436,7 @@ msgstr "正在加载索引文件:%v"
 msgid "Loading libraries: %v"
 msgstr "正在加载库:%v"
 
-#: cli/lib/list.go:131
+#: internal/cli/lib/list.go:129
 msgid "Location"
 msgstr "位置"
 
@@ -1445,15 +1444,15 @@ msgstr "位置"
 msgid "Low memory available, stability problems may occur."
 msgstr "可用内存不足,可能会出现稳定性问题。"
 
-#: cli/lib/search.go:156
+#: internal/cli/lib/search.go:151
 msgid "Maintainer: %s"
 msgstr "维护者:%s"
 
-#: cli/arguments/discovery_timeout.go:31
+#: internal/cli/arguments/discovery_timeout.go:31
 msgid "Max time to wait for port discovery, e.g.: 30s, 1m"
 msgstr "等待端口发现的最长时间,例如:30s, 1m"
 
-#: cli/cli.go:109
+#: internal/cli/cli.go:108
 msgid ""
 "Messages with this level and above will be logged. Valid levels are: %s"
 msgstr "记录此级别及以上的消息。有效级别为 %s"
@@ -1470,7 +1469,11 @@ msgstr "缺少 FQBN(完全合格开发板名)"
 msgid "Missing port"
 msgstr "找不到端口"
 
-#: arduino/errors.go:238 arduino/errors.go:250
+#: arduino/errors.go:238
+msgid "Missing port address"
+msgstr "缺少端口地址"
+
+#: arduino/errors.go:250
 msgid "Missing port protocol"
 msgstr "找不到端口协议"
 
@@ -1490,7 +1493,7 @@ msgstr "缺少项目路径"
 msgid "Monitor '%s' not found"
 msgstr "未找到 ‘%s’ 监视器"
 
-#: cli/monitor/monitor.go:143
+#: internal/cli/monitor/monitor.go:137
 msgid "Monitor port settings:"
 msgstr "监视端口设置:"
 
@@ -1498,32 +1501,36 @@ msgstr "监视端口设置:"
 msgid "Multiple libraries were found for \"%[1]s\""
 msgstr "为 “%[1]s” 找到了多个库"
 
-#: cli/board/details.go:193 cli/core/list.go:87 cli/core/search.go:108
-#: cli/lib/list.go:131
+#: internal/cli/board/details.go:194 internal/cli/core/list.go:85
+#: internal/cli/core/search.go:104 internal/cli/lib/list.go:129
 msgid "Name"
 msgstr "名"
 
-#: cli/lib/search.go:135
+#: internal/cli/lib/search.go:130
 msgid "Name: \"%s\""
 msgstr "名:“%s”"
 
-#: cli/board/list.go:121
+#: internal/cli/board/list.go:127
 msgid "No boards found."
 msgstr "没有找到开发板"
 
-#: cli/lib/examples.go:107
+#: internal/cli/board/attach.go:110
+msgid "No default port or FQBN set"
+msgstr "未设置默认端口或 FQBN"
+
+#: internal/cli/lib/examples.go:105
 msgid "No libraries found."
 msgstr "没有找到库。"
 
-#: cli/lib/list.go:123
+#: internal/cli/lib/list.go:121
 msgid "No libraries installed."
 msgstr "没有安装库。"
 
-#: cli/lib/search.go:124
+#: internal/cli/lib/search.go:119
 msgid "No libraries matching your search."
 msgstr "没有与你的搜索相匹配的库。"
 
-#: cli/lib/search.go:130
+#: internal/cli/lib/search.go:125
 msgid ""
 "No libraries matching your search.\n"
 "Did you mean...\n"
@@ -1531,22 +1538,18 @@ msgstr ""
 "没有与您的搜索匹配的库。\n"
 "你的意思是。。。\n"
 
-#: cli/lib/list.go:121
+#: internal/cli/lib/list.go:119
 msgid "No libraries update is available."
-msgstr ""
+msgstr "没有可用的库更新。"
 
 #: arduino/errors.go:276
 msgid "No monitor available for the port protocol %s"
 msgstr "没有可用于端口协议 %s 的监视器"
 
-#: cli/core/search.go:118
+#: internal/cli/core/search.go:114
 msgid "No platforms matching your search."
 msgstr "没有与你的搜索匹配的平台。"
 
-#: commands/board/attach.go:93
-msgid "No supported board found at %s"
-msgstr "在 %s 找不到支持的开发板"
-
 #: commands/upload/upload.go:421
 msgid "No upload port found, using %s as fallback"
 msgstr "未找到上传端口,使用 %s 作为后备"
@@ -1563,110 +1566,118 @@ msgstr "内存不足;有关减少空间的提示,请参见 %[1]s。"
 msgid "Not used: %[1]s"
 msgstr "未使用:%[1]s"
 
-#: cli/board/details.go:164
+#: internal/cli/board/details.go:165
 msgid "OS:"
 msgstr "操作系统:"
 
-#: cli/board/details.go:128
+#: internal/cli/board/details.go:127
 msgid "Official Arduino board:"
 msgstr "官方 Arduino 开发板:"
 
-#: cli/monitor/monitor.go:54 cli/monitor/monitor.go:55
+#: internal/cli/monitor/monitor.go:53 internal/cli/monitor/monitor.go:54
 msgid "Open a communication port with a board."
 msgstr "开启开发板的通信端口。"
 
-#: cli/board/details.go:176
+#: internal/cli/board/details.go:177
 msgid "Option:"
 msgstr "选项:"
 
-#: cli/compile/compile.go:118
+#: internal/cli/compile/compile.go:115
 msgid ""
 "Optional, can be: %s. Used to tell gcc which warning level to use (-W flag)."
 msgstr "可选,可以是:%s。用于告诉 gcc 使用哪个警告级别(-W 参数)。"
 
-#: cli/compile/compile.go:132
+#: internal/cli/compile/compile.go:129
 msgid "Optional, cleanup the build folder and do not use any cached build."
 msgstr "可选,清理构建文件夹并且不使用任何缓存构建。"
 
-#: cli/compile/compile.go:129
+#: internal/cli/compile/compile.go:126
 msgid ""
 "Optional, optimize compile output for debugging, rather than for release."
 msgstr "可选,优化编译输出用于调试,而不是发布。"
 
-#: cli/compile/compile.go:120
+#: internal/cli/compile/compile.go:117
 msgid "Optional, suppresses almost every output."
 msgstr "可选,禁止几乎所有输出。"
 
-#: cli/compile/compile.go:119 cli/upload/upload.go:74
+#: internal/cli/compile/compile.go:116 internal/cli/upload/upload.go:73
 msgid "Optional, turns on verbose mode."
 msgstr "可选,开启详细模式。"
 
-#: cli/compile/compile.go:137
+#: internal/cli/compile/compile.go:134
 msgid ""
 "Optional. Path to a .json file that contains a set of replacements of the "
 "sketch source code."
 msgstr "可选。 包含一组替换项目源代码的文件的路径。"
 
-#: cli/compile/compile.go:110
+#: internal/cli/compile/compile.go:107
 msgid ""
 "Override a build property with a custom value. Can be used multiple times "
 "for multiple properties."
 msgstr "使用自定义值替代构建属性。可以对多个属性多次使用。"
 
-#: cli/config/init.go:57
+#: internal/cli/config/init.go:56
 msgid "Overwrite existing config file."
 msgstr "覆盖现有的配置文件。"
 
-#: cli/core/download.go:36 cli/core/install.go:38 cli/core/uninstall.go:36
-#: cli/core/upgrade.go:39
+#: internal/cli/sketch/archive.go:51
+msgid "Overwrites an already existing archive"
+msgstr "覆盖一个已经存在的存档文件"
+
+#: internal/cli/sketch/new.go:44
+msgid "Overwrites an existing .ino sketch."
+msgstr "覆盖现有的 .ino 项目。"
+
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
+#: internal/cli/core/uninstall.go:34 internal/cli/core/upgrade.go:37
 msgid "PACKAGER"
 msgstr "打包程序"
 
-#: cli/board/details.go:144
+#: internal/cli/board/details.go:143
 msgid "Package URL:"
 msgstr "软件包地址:"
 
-#: cli/board/details.go:143
+#: internal/cli/board/details.go:142
 msgid "Package maintainer:"
 msgstr "软件包维护者:"
 
-#: cli/board/details.go:142
+#: internal/cli/board/details.go:141
 msgid "Package name:"
 msgstr "软件包名:"
 
-#: cli/board/details.go:146
+#: internal/cli/board/details.go:145
 msgid "Package online help:"
 msgstr "软件包在线帮助"
 
-#: cli/board/details.go:145
+#: internal/cli/board/details.go:144
 msgid "Package website:"
 msgstr "软件包网站:"
 
-#: cli/lib/search.go:158
+#: internal/cli/lib/search.go:153
 msgid "Paragraph: %s"
 msgstr "段落:%s"
 
-#: cli/compile/compile.go:391 cli/compile/compile.go:405
+#: internal/cli/compile/compile.go:393 internal/cli/compile/compile.go:408
 msgid "Path"
 msgstr "路径"
 
-#: cli/compile/compile.go:128
+#: internal/cli/compile/compile.go:125
 msgid ""
 "Path to a collection of libraries. Can be used multiple times or entries can"
 " be comma separated."
 msgstr "一个库的集合的路径。可以多次使用,或者可以用逗号分隔条目。"
 
-#: cli/compile/compile.go:126
+#: internal/cli/compile/compile.go:123
 msgid ""
 "Path to a single library’s root folder. Can be used multiple times or "
 "entries can be comma separated."
 msgstr "单个库的根文件夹的路径。可以多次使用,或者可以用逗号分隔条目。"
 
-#: cli/cli.go:113
+#: internal/cli/cli.go:112
 msgid "Path to the file where logs will be written."
 msgstr "写入日志的文件的路径。"
 
-#: cli/compile/compile.go:106
+#: internal/cli/compile/compile.go:103
 msgid ""
 "Path where to save compiled files. If omitted, a directory will be created "
 "in the default temporary path of your OS."
@@ -1684,7 +1695,7 @@ msgstr "%s 平台已经安装"
 msgid "Platform %s installed"
 msgstr "已安装 %s 平台"
 
-#: cli/compile/compile.go:360 cli/upload/upload.go:135
+#: internal/cli/compile/compile.go:350 internal/cli/upload/upload.go:134
 msgid ""
 "Platform %s is not found in any known index\n"
 "Maybe you need to add a 3rd party URL?"
@@ -1704,39 +1715,39 @@ msgstr "‘%s’ 平台已经是最新版本"
 msgid "Platform '%s' not found"
 msgstr "未找到 ‘%s’ 平台"
 
-#: cli/board/search.go:85
+#: internal/cli/board/search.go:83
 msgid "Platform ID"
 msgstr "平台 ID"
 
-#: cli/compile/compile.go:345 cli/upload/upload.go:121
+#: internal/cli/compile/compile.go:333 internal/cli/upload/upload.go:119
 msgid "Platform ID is not correct"
 msgstr "平台 ID 不正确"
 
-#: cli/board/details.go:152
+#: internal/cli/board/details.go:151
 msgid "Platform URL:"
 msgstr "平台地址:"
 
-#: cli/board/details.go:151
+#: internal/cli/board/details.go:150
 msgid "Platform architecture:"
 msgstr "平台架构:"
 
-#: cli/board/details.go:150
+#: internal/cli/board/details.go:149
 msgid "Platform category:"
 msgstr "平台类别:"
 
-#: cli/board/details.go:157
+#: internal/cli/board/details.go:156
 msgid "Platform checksum:"
 msgstr "平台校验码:"
 
-#: cli/board/details.go:153
+#: internal/cli/board/details.go:152
 msgid "Platform file name:"
 msgstr "平台文件名:"
 
-#: cli/board/details.go:149
+#: internal/cli/board/details.go:148
 msgid "Platform name:"
 msgstr "平台名称:"
 
-#: cli/board/details.go:155
+#: internal/cli/board/details.go:154
 msgid "Platform size (bytes):"
 msgstr "平台大小(字节):"
 
@@ -1744,21 +1755,21 @@ msgstr "平台大小(字节):"
 msgid ""
 "Please specify an FQBN. Multiple possible boards detected on port %[1]s with"
 " protocol %[2]s"
-msgstr "请指定一个FQBN。在 %[1]s 端口上检测到多个可能的开发板,协议为 %[2]s"
+msgstr "请指定一个 FQBN。在 %[1]s 端口上检测到多个可能的开发板,协议为 %[2]s"
 
 #: arduino/errors.go:135
 msgid ""
 "Please specify an FQBN. The board on port %[1]s with protocol %[2]s can't be"
 " identified"
-msgstr "请指定一个FQBN。%[1]s 端口上的开发板与协议 %[2]s 不能被识别"
+msgstr "请指定一个 FQBN。%[1]s 端口上的开发板与协议 %[2]s 不能被识别"
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Port"
 msgstr "端口"
 
-#: cli/monitor/monitor.go:164 cli/monitor/monitor.go:171
-msgid "Port closed:"
-msgstr "端口关闭:"
+#: internal/cli/monitor/monitor.go:158 internal/cli/monitor/monitor.go:167
+msgid "Port closed: %v"
+msgstr ""
 
 #: arduino/errors.go:632
 msgid "Port monitor error"
@@ -1769,23 +1780,23 @@ msgstr "端口监视器错误"
 msgid "Precompiled library in \"%[1]s\" not found"
 msgstr "在 “%[1]s” 中找不到预编译库"
 
-#: cli/board/details.go:44
+#: internal/cli/board/details.go:43
 msgid "Print details about a board."
 msgstr "打印开发板的详细信息。"
 
-#: cli/compile/compile.go:102
+#: internal/cli/compile/compile.go:99
 msgid "Print preprocessed code to stdout instead of compiling."
 msgstr "将预处理的代码打印到标准输出,而不是编译。"
 
-#: cli/cli.go:107
+#: internal/cli/cli.go:106
 msgid "Print the logs on the standard output."
 msgstr "在标准输出上打印日志。"
 
-#: cli/config/dump.go:31
+#: internal/cli/config/dump.go:31
 msgid "Prints the current configuration"
 msgstr "打印当前配置"
 
-#: cli/config/dump.go:32
+#: internal/cli/config/dump.go:32
 msgid "Prints the current configuration."
 msgstr "打印当前配置。"
 
@@ -1797,15 +1808,15 @@ msgstr "未找到 ‘%s’ 的配置文件''。"
 msgid "Programmer '%s' not found"
 msgstr "未找到 ‘%s’ 编译器"
 
-#: cli/board/details.go:92
+#: internal/cli/board/details.go:90
 msgid "Programmer name"
 msgstr "编译器名"
 
-#: cli/arguments/programmer.go:29
+#: internal/cli/arguments/programmer.go:29
 msgid "Programmer to use, e.g: atmel_ice"
 msgstr "要使用的编译器,例如:atmel_ice"
 
-#: cli/board/details.go:193
+#: internal/cli/board/details.go:194
 msgid "Programmers:"
 msgstr "编译器:"
 
@@ -1813,19 +1824,19 @@ msgstr "编译器:"
 msgid "Property '%s' is undefined"
 msgstr "‘%s’ 属性未定义"
 
-#: cli/board/list.go:131
+#: internal/cli/board/list.go:137
 msgid "Protocol"
 msgstr "协议"
 
-#: cli/lib/search.go:168
+#: internal/cli/lib/search.go:163
 msgid "Provides includes: %s"
 msgstr "提供包括:%s"
 
-#: cli/config/remove.go:32 cli/config/remove.go:33
+#: internal/cli/config/remove.go:31 internal/cli/config/remove.go:32
 msgid "Removes one or more values from a setting."
 msgstr "从设置中删除一个或多个值。"
 
-#: commands/lib/install.go:141
+#: commands/lib/install.go:127
 msgid "Replacing %[1]s with %[2]s"
 msgstr "将 %[1]s 替换为 %[2]s"
 
@@ -1833,19 +1844,19 @@ msgstr "将 %[1]s 替换为 %[2]s"
 msgid "Replacing platform %[1]s with %[2]s"
 msgstr "用 %[2]s 替换 %[1]s 平台"
 
-#: cli/board/details.go:161
+#: internal/cli/board/details.go:162
 msgid "Required tool:"
 msgstr "需要的工具:"
 
-#: cli/daemon/daemon.go:56
+#: internal/cli/daemon/daemon.go:52
 msgid "Run as a daemon on port: %s"
 msgstr "在端口上作为守护进程运行:%s"
 
-#: cli/monitor/monitor.go:64
+#: internal/cli/monitor/monitor.go:63
 msgid "Run in silent mode, show only monitor input and output."
 msgstr "以静默模式运行,仅显示监视器输入和输出。"
 
-#: cli/daemon/daemon.go:57
+#: internal/cli/daemon/daemon.go:53
 msgid ""
 "Running as a daemon the initialization of cores and libraries is done only "
 "once."
@@ -1855,102 +1866,104 @@ msgstr "作为守护进程运行时,只执行一次内核和库的初始化。
 msgid "Running normal build of the core..."
 msgstr "正在运行正常的内核构建。。。"
 
-#: cli/compile/compile.go:104
+#: internal/cli/compile/compile.go:101
 msgid "Save build artifacts in this directory."
 msgstr "将生成文件保存在此目录中。"
 
-#: cli/core/search.go:49
+#: internal/cli/core/search.go:47
 msgid "Search for a core in Boards Manager using the specified keywords."
 msgstr "使用指定的关键字在开发板管理器中搜索内核。"
 
-#: cli/core/search.go:48
+#: internal/cli/core/search.go:46
 msgid "Search for a core in Boards Manager."
 msgstr "在开发板管理器中搜索内核。"
 
-#: cli/lib/search.go:42
+#: internal/cli/lib/search.go:40
 msgid "Search for one or more libraries data (case insensitive search)."
 msgstr "搜索一个或多个库数据(不区分大小写的搜索)。"
 
-#: cli/lib/search.go:41
+#: internal/cli/lib/search.go:39
 msgid "Searches for one or more libraries data."
 msgstr "搜索一个或多个库数据。"
 
-#: commands/board/attach.go:110
-msgid "Selected fqbn: %s"
-msgstr "选择FQBN:%s"
-
-#: cli/lib/search.go:157
+#: internal/cli/lib/search.go:152
 msgid "Sentence: %s"
 msgstr "句子:%s"
 
-#: arduino/httpclient/httpclient.go:67
+#: arduino/httpclient/httpclient.go:73
 msgid "Server responded with: %s"
 msgstr "服务器响应:%s"
 
-#: cli/config/set.go:33 cli/config/set.go:34
+#: internal/cli/config/set.go:32 internal/cli/config/set.go:33
 msgid "Sets a setting value."
 msgstr "设置一个值。"
 
-#: cli/config/init.go:55 cli/config/init.go:56
+#: internal/cli/board/attach.go:32
+msgid ""
+"Sets the default values for port and FQBN. If no port or FQBN are specified,"
+" the current default port and FQBN are displayed."
+msgstr "设置端口和 FQBN 的默认值。如果没有指定端口或 FQBN,将显示当前的默认端口和 FQBN。"
+
+#: internal/cli/config/init.go:54 internal/cli/config/init.go:55
 msgid "Sets where to save the configuration file."
 msgstr "设置保存配置文件的位置。"
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Setting"
 msgstr "设置"
 
-#: cli/config/delete.go:62 cli/config/validate.go:52
+#: internal/cli/config/delete.go:61 internal/cli/config/validate.go:50
 msgid "Settings key doesn't exist"
 msgstr "设置键不存在"
 
-#: cli/core/search.go:54
+#: internal/cli/core/search.go:52
 msgid "Show all available core versions."
 msgstr "显示所有可用的内核版本。"
 
-#: cli/compile/compile.go:101
+#: internal/cli/compile/compile.go:98
 msgid "Show all build properties used instead of compiling."
 msgstr "显示所有使用的构建属性,而不是编译。"
 
-#: cli/monitor/monitor.go:62
+#: internal/cli/monitor/monitor.go:61
 msgid "Show all the settings of the communication port."
 msgstr "显示通讯端口的所有设置。"
 
-#: cli/board/listall.go:48 cli/board/search.go:47
+#: internal/cli/board/listall.go:47 internal/cli/board/search.go:46
 msgid "Show also boards marked as 'hidden' in the platform"
 msgstr "在平台上显示标记为隐藏的开发板"
 
-#: cli/board/details.go:52
+#: internal/cli/board/details.go:51
 msgid "Show full board details"
 msgstr "显示完整的开发板详细信息"
 
-#: cli/board/details.go:45
+#: internal/cli/board/details.go:44
 msgid ""
 "Show information about a board, in particular if the board has options to be"
 " specified in the FQBN."
 msgstr "显示有关开发板的信息,特别是如果开发板在 FQBN 中有指定的选项。"
 
-#: cli/lib/search.go:49
+#: internal/cli/lib/search.go:47
 msgid "Show library names only."
 msgstr "只显示库名。"
 
-#: cli/board/details.go:53
+#: internal/cli/board/details.go:52
 msgid "Show list of available programmers"
 msgstr "显示可用编译器列表"
 
-#: cli/debug/debug.go:64
+#: internal/cli/debug/debug.go:63
 msgid ""
 "Show metadata about the debug session instead of starting the debugger."
 msgstr "显示有关调试会话的元数据,而不是启动调试器。"
 
-#: cli/update/update.go:45
+#: internal/cli/update/update.go:45
 msgid "Show outdated cores and libraries after index update"
 msgstr "在索引更新后显示过时的内核和库"
 
-#: cli/lib/list.go:40
+#: internal/cli/lib/list.go:39
 msgid "Shows a list of installed libraries."
 msgstr "显示已安装库的列表。"
 
-#: cli/lib/list.go:41
+#: internal/cli/lib/list.go:40
 msgid ""
 "Shows a list of installed libraries.\n"
 "\n"
@@ -1961,44 +1974,44 @@ msgstr ""
 "显示已安装库的列表。如果指定了 LIBNAME 范围,则列表仅限于该特定库。默认情况下,不会列出 ‘平台/核心’ 内置的库,可以通过添加 --all "
 "参数来列出它们。"
 
-#: cli/core/list.go:37 cli/core/list.go:38
+#: internal/cli/core/list.go:36 internal/cli/core/list.go:37
 msgid "Shows the list of installed platforms."
 msgstr "显示已安装平台的列表。"
 
-#: cli/lib/examples.go:44
+#: internal/cli/lib/examples.go:43
 msgid "Shows the list of the examples for libraries."
 msgstr "显示库示例列表。"
 
-#: cli/lib/examples.go:45
+#: internal/cli/lib/examples.go:44
 msgid ""
 "Shows the list of the examples for libraries. A name may be given as "
 "argument to search a specific library."
 msgstr "显示库的示例列表。可以指定名称作为搜索特定库的参数。"
 
-#: cli/version/version.go:39
+#: internal/cli/version/version.go:39
 msgid ""
 "Shows the version number of Arduino CLI which is installed on your system."
 msgstr "显示您系统上安装的 Arduino CLI 的版本号。"
 
-#: cli/version/version.go:38
+#: internal/cli/version/version.go:38
 msgid "Shows version number of Arduino CLI."
 msgstr "显示 Arduino CLI 的版本号。"
 
-#: cli/board/details.go:166
+#: internal/cli/board/details.go:167
 msgid "Size (bytes):"
 msgstr "大小(字节):"
 
-#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:42
+#: legacy/builder/fail_if_buildpath_equals_sketchpath.go:29
 msgid ""
 "Sketch cannot be located in build path. Please specify a different build "
 "path"
 msgstr "项目不能位于生成路径中。请指定其他生成路径"
 
-#: cli/sketch/new.go:65
+#: internal/cli/sketch/new.go:85
 msgid "Sketch created in: %s"
 msgstr "项目新建于:%s"
 
-#: cli/arguments/profiles.go:29
+#: internal/cli/arguments/profiles.go:29
 msgid "Sketch profile to use"
 msgstr "使用项目配置文件"
 
@@ -2012,7 +2025,7 @@ msgid ""
 " bytes."
 msgstr " 项目使用 %[1]s 字节(%[3]s%%)的程序存储空间。最大值为 %[2]s 字节。"
 
-#: cli/arguments/sketch.go:61
+#: internal/cli/arguments/sketch.go:58
 msgid ""
 "Sketches with .pde extension are deprecated, please rename the following "
 "files to .ino:"
@@ -2048,29 +2061,29 @@ msgstr "跳过:%[1]s"
 
 #: commands/instances.go:542
 msgid "Some indexes could not be updated."
+msgstr "一些索引无法更新。"
+
+#: internal/cli/core/upgrade.go:112
+msgid "Some upgrades failed, please check the output for details."
 msgstr ""
 
 #: arduino/serialutils/serialutils.go:133
 msgid "TOUCH: error during reset: %s"
 msgstr "TOUCH:重置时出错:%s"
 
-#: cli/daemon/daemon.go:62
-msgid "The IP address the daemon will listen to"
-msgstr "守护进程将侦听的 IP 地址"
-
-#: cli/daemon/daemon.go:63
+#: internal/cli/daemon/daemon.go:58
 msgid "The TCP port the daemon will listen to"
 msgstr "守护进程将监听的 TCP 端口"
 
-#: cli/cli.go:124
+#: internal/cli/cli.go:123
 msgid "The custom config file (if not specified the default will be used)."
 msgstr "自定义配置文件(如果未指定,将使用默认值)。"
 
-#: cli/daemon/daemon.go:82
+#: internal/cli/daemon/daemon.go:77
 msgid "The flag --debug-file must be used with --debug."
 msgstr "参数 --debug-file 必须与 --debug 一起使用。"
 
-#: cli/config/add.go:94
+#: internal/cli/config/add.go:93
 msgid ""
 "The key '%[1]v' is not a list of items, can't add to it.\n"
 "Maybe use '%[2]s'?"
@@ -2078,7 +2091,7 @@ msgstr ""
 "‘%[1]v’ 键不是列表中的条目,无法添加到其中。\n"
 "是否可以使用 ‘%[2]s’?"
 
-#: cli/config/remove.go:52
+#: internal/cli/config/remove.go:51
 msgid ""
 "The key '%[1]v' is not a list of items, can't remove from it.\n"
 "Maybe use '%[2]s'?"
@@ -2088,25 +2101,25 @@ msgstr ""
 
 #: arduino/errors.go:825
 msgid "The library %s has multiple installations:"
-msgstr ""
+msgstr "库 %s 有多个安装。"
 
-#: cli/compile/compile.go:116
+#: internal/cli/compile/compile.go:113
 msgid ""
 "The name of the custom encryption key to use to encrypt a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr "自定义加密密钥的名称,用于在编译过程中对二进制文件进行加密。只在支持它的平台上使用。"
 
-#: cli/compile/compile.go:114
+#: internal/cli/compile/compile.go:111
 msgid ""
 "The name of the custom signing key to use to sign a binary during the "
 "compile process. Used only by the platforms that support it."
 msgstr "自定义签名密钥的名称,用于在编译过程中对二进制文件进行签名。只在支持它的平台上使用。"
 
-#: cli/cli.go:115 cli/cli.go:120
+#: internal/cli/cli.go:114 internal/cli/cli.go:119
 msgid "The output format for the logs, can be: %s"
 msgstr "日志的输出格​​式,可以是:%s"
 
-#: cli/compile/compile.go:112
+#: internal/cli/compile/compile.go:109
 msgid ""
 "The path of the dir to search for the custom keys to sign and encrypt a "
 "binary. Used only by the platforms that support it."
@@ -2116,7 +2129,7 @@ msgstr "搜索自定义密钥以签署和加密二进制文件的文件夹的路
 msgid "The platform does not support '%[1]s' for precompiled libraries."
 msgstr "该平台不支持预编译库的 ‘%[1]s’。"
 
-#: cli/lib/upgrade.go:36
+#: internal/cli/lib/upgrade.go:35
 msgid ""
 "This command upgrades an installed library to the latest available version. "
 "Multiple libraries can be passed separated by a space. If no arguments are "
@@ -2124,7 +2137,7 @@ msgid ""
 "update is available."
 msgstr "此命令将已安装的库升级到可用的最新版本。可以通过一个空格分隔多个库。如果未提供任何参数,该命令将升级所有已安装的库,其中有可用的更新。"
 
-#: cli/outdated/outdated.go:37
+#: internal/cli/outdated/outdated.go:37
 msgid ""
 "This commands shows a list of installed cores and/or libraries\n"
 "that can be upgraded. If nothing needs to be updated the output is empty."
@@ -2143,39 +2156,39 @@ msgstr "%s 工具已经卸载"
 msgid "Toolchain '%s' is not supported"
 msgstr "不支持 ‘%s’ 工具链"
 
-#: cli/debug/debug.go:134
+#: internal/cli/debug/debug.go:135
 msgid "Toolchain custom configurations"
 msgstr "工具链自定义配置"
 
-#: cli/debug/debug.go:128
+#: internal/cli/debug/debug.go:129
 msgid "Toolchain path"
 msgstr "工具链路径"
 
-#: cli/debug/debug.go:129
+#: internal/cli/debug/debug.go:130
 msgid "Toolchain prefix"
 msgstr "工具链前缀"
 
-#: cli/debug/debug.go:127
+#: internal/cli/debug/debug.go:128
 msgid "Toolchain type"
 msgstr "工具链类型"
 
-#: cli/compile/compile.go:358 cli/upload/upload.go:133
+#: internal/cli/compile/compile.go:348 internal/cli/upload/upload.go:132
 msgid "Try running %s"
 msgstr "尝试运行 %s"
 
-#: cli/burnbootloader/burnbootloader.go:58
+#: internal/cli/burnbootloader/burnbootloader.go:57
 msgid "Turns on verbose mode."
 msgstr "打开详细模式。"
 
-#: cli/board/list.go:91 cli/board/list.go:131
+#: internal/cli/board/list.go:97 internal/cli/board/list.go:137
 msgid "Type"
 msgstr "类型"
 
-#: cli/lib/search.go:165
+#: internal/cli/lib/search.go:160
 msgid "Types: %s"
 msgstr "类型:%s"
 
-#: cli/board/details.go:168
+#: internal/cli/board/details.go:169
 msgid "URL:"
 msgstr "地址:"
 
@@ -2196,13 +2209,13 @@ msgstr "无法获取本地应用程序数据文件夹:%v"
 msgid "Unable to get user home dir: %v"
 msgstr "无法获取用户主目录:%v"
 
-#: cli/cli.go:215
+#: internal/cli/cli.go:202
 msgid "Unable to open file for logging: %s"
 msgstr "无法打开文件进行日志记录:%s"
 
 #: commands/instances.go:509
 msgid "Unable to parse URL"
-msgstr ""
+msgstr "无法解析地址"
 
 #: arduino/cores/packagemanager/install_uninstall.go:273
 #: commands/lib/uninstall.go:44
@@ -2214,17 +2227,17 @@ msgstr "正在卸载 %s"
 msgid "Uninstalling %s, tool is no more required"
 msgstr "卸载 %s,工具不再需要了"
 
-#: cli/core/uninstall.go:37 cli/core/uninstall.go:38
+#: internal/cli/core/uninstall.go:35 internal/cli/core/uninstall.go:36
 msgid ""
 "Uninstalls one or more cores and corresponding tool dependencies if no "
 "longer used."
 msgstr "如果不再使用,卸载一个或多个内核和相应的工具依赖。"
 
-#: cli/lib/uninstall.go:37 cli/lib/uninstall.go:38
+#: internal/cli/lib/uninstall.go:35 internal/cli/lib/uninstall.go:36
 msgid "Uninstalls one or more libraries."
 msgstr "卸载一个或多个库。"
 
-#: cli/board/list.go:163
+#: internal/cli/board/list.go:169
 msgid "Unknown"
 msgstr "未知"
 
@@ -2232,27 +2245,27 @@ msgstr "未知"
 msgid "Unknown FQBN"
 msgstr "未知 FQBN"
 
-#: cli/update/update.go:37
+#: internal/cli/update/update.go:37
 msgid "Updates the index of cores and libraries"
 msgstr "更新内核和库的索引"
 
-#: cli/update/update.go:38
+#: internal/cli/update/update.go:38
 msgid "Updates the index of cores and libraries to the latest versions."
 msgstr "将内核和库的索引更新到最新版本。"
 
-#: cli/core/update_index.go:36
+#: internal/cli/core/update_index.go:34
 msgid "Updates the index of cores to the latest version."
 msgstr "更新内核索引到最新版本。"
 
-#: cli/core/update_index.go:35
+#: internal/cli/core/update_index.go:33
 msgid "Updates the index of cores."
 msgstr "更新内核索引。"
 
-#: cli/lib/update_index.go:36
+#: internal/cli/lib/update_index.go:34
 msgid "Updates the libraries index to the latest version."
 msgstr "更新库索引到最新版本。"
 
-#: cli/lib/update_index.go:35
+#: internal/cli/lib/update_index.go:33
 msgid "Updates the libraries index."
 msgstr "更新库索引。"
 
@@ -2260,32 +2273,32 @@ msgstr "更新库索引。"
 msgid "Upgrade doesn't accept parameters with version"
 msgstr "升级不接受带有版本范围"
 
-#: cli/upgrade/upgrade.go:38
+#: internal/cli/upgrade/upgrade.go:38
 msgid "Upgrades installed cores and libraries to latest version."
 msgstr "将安装的内核和库升级到最新版本。"
 
-#: cli/upgrade/upgrade.go:37
+#: internal/cli/upgrade/upgrade.go:37
 msgid "Upgrades installed cores and libraries."
 msgstr "升级已安装的内核和库。"
 
-#: cli/lib/upgrade.go:35
+#: internal/cli/lib/upgrade.go:34
 msgid "Upgrades installed libraries."
 msgstr "升级已安装的库。"
 
-#: cli/core/upgrade.go:40 cli/core/upgrade.go:41
+#: internal/cli/core/upgrade.go:38 internal/cli/core/upgrade.go:39
 msgid "Upgrades one or all installed platforms to the latest version."
 msgstr "将一个或所有已安装的平台升级到最新版本。"
 
-#: cli/upload/upload.go:58
+#: internal/cli/upload/upload.go:57
 msgid "Upload Arduino sketches."
 msgstr "上传 Arduino 项目。"
 
-#: cli/upload/upload.go:59
+#: internal/cli/upload/upload.go:58
 msgid ""
 "Upload Arduino sketches. This does NOT compile the sketch prior to upload."
 msgstr "上传 Arduino 项目。不会在上传之前编译项目。"
 
-#: cli/arguments/port.go:48
+#: internal/cli/arguments/port.go:44
 msgid "Upload port address, e.g.: COM3 or /dev/ttyACM2"
 msgstr "上传端口地址,例如:COM3 或 /dev/ttyACM2"
 
@@ -2293,40 +2306,40 @@ msgstr "上传端口地址,例如:COM3 或 /dev/ttyACM2"
 msgid "Upload port found on %s"
 msgstr "在 %s 上找到上传端口"
 
-#: cli/arguments/port.go:52
+#: internal/cli/arguments/port.go:48
 msgid "Upload port protocol, e.g: serial"
 msgstr "上传端口协议,例如:串行"
 
-#: cli/compile/compile.go:121
+#: internal/cli/compile/compile.go:118
 msgid "Upload the binary after the compilation."
 msgstr "编译后上传二进制文件。"
 
-#: cli/burnbootloader/burnbootloader.go:48
+#: internal/cli/burnbootloader/burnbootloader.go:47
 msgid "Upload the bootloader on the board using an external programmer."
 msgstr "使用外部编译器将引导加载程序上传到板上。"
 
-#: cli/burnbootloader/burnbootloader.go:47
+#: internal/cli/burnbootloader/burnbootloader.go:46
 msgid "Upload the bootloader."
 msgstr "上传引导加载程序。"
 
-#: cli/compile/compile.go:251 cli/upload/upload.go:143
+#: internal/cli/compile/compile.go:237 internal/cli/upload/upload.go:142
 msgid ""
 "Uploading to specified board using %s protocol requires the following info:"
 msgstr "使用 %s 协议上传到指定的开发板需要以下信息:"
 
-#: cli/usage.go:26
+#: internal/cli/usage.go:26
 msgid "Usage:"
 msgstr "用法:"
 
-#: cli/usage.go:33
+#: internal/cli/usage.go:33
 msgid "Use %s for more information about a command."
 msgstr "使用 %s 获取有关命令的更多信息。"
 
-#: cli/compile/compile.go:389
+#: internal/cli/compile/compile.go:391
 msgid "Used library"
 msgstr "已使用的库"
 
-#: cli/compile/compile.go:403
+#: internal/cli/compile/compile.go:406
 msgid "Used platform"
 msgstr "已使用的平台"
 
@@ -2334,12 +2347,6 @@ msgstr "已使用的平台"
 msgid "Used: %[1]s"
 msgstr "使用:%[1]s"
 
-#: arduino/libraries/librariesmanager/install.go:56
-#: arduino/libraries/librariesmanager/install.go:119
-#: arduino/libraries/librariesmanager/install.go:203
-msgid "User directory not set"
-msgstr "未设置用户目录"
-
 #: legacy/builder/target_board_resolver.go:41
 msgid "Using board '%[1]s' from platform in folder: %[2]s"
 msgstr "使用平台的 ‘%[1]s’ 开发板,在列出的文件夹中:%[2]s"
@@ -2374,29 +2381,29 @@ msgstr "在 %[1]s 中使用预编译库"
 msgid "Using previously compiled file: %[1]s"
 msgstr "使用以前编译的文件:%[1]s"
 
-#: cli/core/download.go:36 cli/core/install.go:38
+#: internal/cli/core/download.go:34 internal/cli/core/install.go:36
 msgid "VERSION"
 msgstr "版本"
 
-#: cli/lib/check_deps.go:37 cli/lib/install.go:48
+#: internal/cli/lib/check_deps.go:36 internal/cli/lib/install.go:46
 msgid "VERSION_NUMBER"
 msgstr "版本号"
 
-#: cli/monitor/monitor.go:195
+#: internal/cli/monitor/monitor.go:192
 msgid "Values"
 msgstr "值"
 
-#: cli/burnbootloader/burnbootloader.go:57 cli/compile/compile.go:123
-#: cli/upload/upload.go:73
+#: internal/cli/burnbootloader/burnbootloader.go:56
+#: internal/cli/compile/compile.go:120 internal/cli/upload/upload.go:72
 msgid "Verify uploaded binary after the upload."
 msgstr "上传后验证上传的二进制文件。"
 
-#: cli/compile/compile.go:390 cli/compile/compile.go:404
-#: cli/core/search.go:108
+#: internal/cli/compile/compile.go:392 internal/cli/compile/compile.go:407
+#: internal/cli/core/search.go:104
 msgid "Version"
 msgstr "版本"
 
-#: cli/lib/search.go:166
+#: internal/cli/lib/search.go:161
 msgid "Versions: %s"
 msgstr "版本:%s"
 
@@ -2404,7 +2411,7 @@ msgstr "版本:%s"
 msgid "WARNING cannot configure platform: %s"
 msgstr "警告:无法配置平台:%s"
 
-#: cli/compile/compile.go:297
+#: internal/cli/compile/compile.go:280
 msgid "WARNING: The sketch is compiled using one or more custom libraries."
 msgstr "警告:该项目是用一个或多个自定义库编译的。"
 
@@ -2434,51 +2441,47 @@ msgid ""
 "Warning: tool '%s' is not installed. It might not be available for your OS."
 msgstr "警告:‘%s’ 工具未安装。它可能不适用于你的操作系统。"
 
-#: cli/lib/search.go:159
+#: internal/cli/lib/search.go:154
 msgid "Website: %s"
 msgstr "网站:%s"
 
-#: cli/compile/compile.go:124
+#: internal/cli/compile/compile.go:121
 msgid ""
 "When specified, VID/PID specific build properties are used, if board "
 "supports them."
 msgstr "指定时,若开发板支持,则使用 VID/PID 特定的构建属性。"
 
-#: cli/config/init.go:42
+#: internal/cli/config/init.go:41
 msgid "Writes current configuration to a configuration file."
 msgstr "将当前配置写入配置文件。"
 
-#: cli/config/init.go:45
+#: internal/cli/config/init.go:44
 msgid ""
 "Writes current configuration to the configuration file in the data "
 "directory."
 msgstr "将当前配置写入数据目录中的配置文件。"
 
-#: cli/config/set.go:77
+#: internal/cli/config/set.go:74
 msgid "Writing config file: %v"
 msgstr "正在写入配置文件:%v"
 
-#: cli/compile/compile.go:152
-msgid "You cannot use the %[1]s flag together with %[2]s."
-msgstr "你不能和 %[2]s 一起使用 %[1]s 参数。"
-
-#: cli/compile/compile.go:157 cli/compile/compile.go:161
+#: internal/cli/compile/compile.go:150 internal/cli/compile/compile.go:153
 msgid "You cannot use the %s flag while compiling with a profile."
 msgstr "在用配置文件编译时,你不能使用 %s 参数。"
 
-#: cli/arguments/arguments.go:37 cli/arguments/arguments.go:47
-msgid "and"
-msgstr "和"
-
-#: arduino/resources/checksums.go:80
+#: arduino/resources/checksums.go:79
 msgid "archive hash differs from hash in index"
 msgstr "存档哈希与索引中的哈希不同"
 
-#: arduino/libraries/librariesmanager/install.go:150
+#: arduino/libraries/librariesmanager/install.go:192
 msgid "archive is not valid: multiple files found in zip file top level"
 msgstr "存档无效:在 zip 文件顶层中找到多个文件"
 
-#: cli/sketch/archive.go:38
+#: arduino/libraries/librariesmanager/install.go:195
+msgid "archive is not valid: no files found in zip file top level"
+msgstr "存档无效:在压缩文件的顶层没有找到文件"
+
+#: internal/cli/sketch/archive.go:37
 msgid "archivePath"
 msgstr "存档路径"
 
@@ -2490,6 +2493,10 @@ msgstr "缺少 arduino 预处理器程序"
 msgid "autodetect build artifact: %s"
 msgstr "自动检测生成项目:%s"
 
+#: internal/cli/feedback/stdio.go:35
+msgid "available only in text format"
+msgstr ""
+
 #: commands/upload/upload.go:551
 msgid "binary file not found in %s"
 msgstr "在 %s 中找不到二进制文件"
@@ -2498,14 +2505,14 @@ msgstr "在 %s 中找不到二进制文件"
 msgid "board %s not found"
 msgstr "未找到开发板 %s"
 
-#: commands/board/list.go:43
-msgid "board not found"
-msgstr "未找到开发板"
-
-#: cli/board/listall.go:38 cli/board/search.go:37
+#: internal/cli/board/listall.go:37 internal/cli/board/search.go:36
 msgid "boardname"
 msgstr "开发板名"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:155
+msgid "built-in libraries directory not set"
+msgstr "未设置内置库目录"
+
 #: arduino/discovery/discovery.go:308 arduino/discovery/discovery.go:331
 #: arduino/discovery/discovery.go:353 arduino/discovery/discovery.go:392
 #: arduino/discovery/discovery.go:418
@@ -2520,7 +2527,7 @@ msgstr "找不到 %s 的最新版本"
 msgid "can't find latest release of tool %s"
 msgstr "找不到 %s 工具的最新版本"
 
-#: arduino/sketch/sketch.go:126
+#: arduino/sketch/sketch.go:106
 msgid "can't find main Sketch file in %s"
 msgstr "在 %s 中找不到主项目文件"
 
@@ -2553,7 +2560,7 @@ msgstr "检查本地存档完整性"
 msgid "cleaning build path"
 msgstr "清理构建路径"
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "command"
 msgstr "命令"
 
@@ -2576,13 +2583,13 @@ msgstr "命令失败:%s"
 msgid "communication out of sync, expected '%[1]s', received '%[2]s'"
 msgstr "通信不同步,应为 ‘%[1]s’,收到 ‘%[2]s’"
 
-#: arduino/resources/checksums.go:76
+#: arduino/resources/checksums.go:75
 msgid "computing hash: %s"
 msgstr "计算哈希:%s"
 
-#: arduino/libraries/librariesmanager/install.go:227
-msgid "could not create directory %s: a file with the same name exists!"
-msgstr ""
+#: arduino/libraries/librariesmanager/install.go:145
+msgid "copying library to destination directory:"
+msgstr "将库复制到目标目录:"
 
 #: commands/upload/upload.go:623
 msgid "could not find a valid build artifact"
@@ -2592,13 +2599,18 @@ msgstr "找不到有效的构建项目"
 msgid "could not overwrite"
 msgstr "无法覆盖"
 
-#: commands/lib/install.go:149
+#: commands/lib/install.go:130
 msgid "could not remove old library"
-msgstr ""
+msgstr "无法删除旧库"
+
+#: arduino/sketch/yaml.go:78 arduino/sketch/yaml.go:82
+#: arduino/sketch/yaml.go:86
+msgid "could not update sketch project file"
+msgstr "无法更新项目文件"
 
 #: arduino/cores/packagemanager/install_uninstall.go:208
 msgid "creating installed.json in %[1]s: %[2]s"
-msgstr "在 %[1]s 中创建installed.json:%[2]s"
+msgstr "在 %[1]s 中创建 installed.json:%[2]s"
 
 #: arduino/resources/install.go:44 arduino/resources/install.go:48
 msgid "creating temp dir for extraction: %s"
@@ -2608,23 +2620,23 @@ msgstr "新建用于提取的临时目录:%s"
 msgid "data section exceeds available space in board"
 msgstr "数据部分超出开发板中的可用空间"
 
-#: arduino/sketch/sketch.go:232
-msgid "decoding sketch metadata: %s"
-msgstr "解析项目元数据:%s"
-
 #: commands/lib/resolve_deps.go:56
 msgid "dependency '%s' is not available"
 msgstr "‘%s’ 依赖不可用"
 
-#: legacy/builder/utils/utils.go:438
+#: legacy/builder/utils/utils.go:437
 msgid "destination already exists"
 msgstr "目标已存在"
 
-#: arduino/libraries/librariesmanager/install.go:90
+#: arduino/libraries/librariesmanager/install.go:93
 msgid "destination dir %s already exists, cannot install"
 msgstr "%s 目录已经存在,无法安装"
 
-#: arduino/libraries/librariesmanager/install.go:308
+#: arduino/libraries/librariesmanager/install.go:142
+msgid "destination directory already exists"
+msgstr "目标目录已经存在"
+
+#: arduino/libraries/librariesmanager/install.go:282
 msgid "directory doesn't exist: %s"
 msgstr "目录不存在:%s"
 
@@ -2644,17 +2656,17 @@ msgstr "%s discovery 未安装"
 msgid "discovery release not found: %s"
 msgstr "未找到 discovery 版本:%s"
 
-#: cli/core/download.go:41 cli/core/install.go:43
+#: internal/cli/core/download.go:39 internal/cli/core/install.go:41
 msgid "download a specific version (in this case 1.6.9)."
 msgstr "下载特定版本(在本例中为 1.6.9)。"
 
-#: cli/core/download.go:40 cli/core/install.go:41
+#: internal/cli/core/download.go:38 internal/cli/core/install.go:39
 msgid "download the latest version of Arduino SAMD core."
 msgstr "下载最新版本的 Arduino SAMD 内核。"
 
-#: cli/output/rpc_progress.go:85
+#: internal/cli/feedback/rpc_progress.go:73
 msgid "downloaded"
-msgstr ""
+msgstr "下载"
 
 #: commands/instances.go:138
 msgid "downloading %[1]s tool: %[2]s"
@@ -2664,11 +2676,7 @@ msgstr "正在下载 %[1]s 工具:%[2]s"
 msgid "empty board identifier"
 msgstr "空开发板标识符"
 
-#: arduino/sketch/sketch.go:221
-msgid "encoding sketch metadata: %s"
-msgstr "编译项目元数据:%s"
-
-#: arduino/sketch/sketch.go:112
+#: arduino/sketch/sketch.go:92
 msgid "error loading sketch project file:"
 msgstr "加载项目文件时错误:"
 
@@ -2676,19 +2684,19 @@ msgstr "加载项目文件时错误:"
 msgid "error opening %s"
 msgstr " 开启 %s 时错误"
 
-#: cli/config/set.go:69
+#: internal/cli/config/set.go:67
 msgid "error parsing value: %v"
 msgstr "错误解析值:%v"
 
-#: arduino/sketch/profiles.go:181
+#: arduino/sketch/profiles.go:193
 msgid "error parsing version constraints"
 msgstr "解析版本约束时错误"
 
-#: commands/board/list.go:89
+#: commands/board/list.go:115
 msgid "error processing response from server"
 msgstr "处理来自服务器的响应时出错"
 
-#: commands/board/list.go:104
+#: commands/board/list.go:95
 msgid "error querying Arduino Cloud Api"
 msgstr "查询 Arduino Cloud Api 时出错"
 
@@ -2696,19 +2704,19 @@ msgstr "查询 Arduino Cloud Api 时出错"
 msgid "extracting archive: %s"
 msgstr "正在提取存档:%s"
 
-#: arduino/libraries/librariesmanager/install.go:138
+#: arduino/libraries/librariesmanager/install.go:183
 msgid "extracting archive: %w"
 msgstr "正在提取存档:%w"
 
-#: arduino/resources/checksums.go:145
+#: arduino/resources/checksums.go:144
 msgid "failed to compute hash of file \"%s\""
 msgstr "无法计算 “%s” 文件的哈希值"
 
-#: commands/board/list.go:72
+#: commands/board/list.go:90
 msgid "failed to initialize http client"
 msgstr "未能初始化 http 客户端"
 
-#: arduino/resources/checksums.go:97
+#: arduino/resources/checksums.go:96
 msgid "fetched archive size differs from size specified in index"
 msgstr "提取的档存大小与索引中指定的大小不同"
 
@@ -2720,7 +2728,7 @@ msgstr "存档中的文件必须放在子目录中"
 msgid "finding absolute path of %s"
 msgstr "寻找 %s 的绝对路径"
 
-#: cli/cli.go:74
+#: internal/cli/cli.go:72
 msgid "flags"
 msgstr "参数"
 
@@ -2728,36 +2736,38 @@ msgstr "参数"
 msgid "following symlink %s"
 msgstr "接下来的符号链接 %s"
 
-#: cli/lib/download.go:41
+#: internal/cli/lib/download.go:39
 msgid "for a specific version."
 msgstr "针对特定版本。"
 
-#: cli/lib/check_deps.go:41 cli/lib/download.go:40 cli/lib/install.go:52
+#: internal/cli/lib/check_deps.go:40 internal/cli/lib/download.go:38
+#: internal/cli/lib/install.go:50
 msgid "for the latest version."
 msgstr "最新版本。"
 
-#: cli/lib/check_deps.go:42 cli/lib/install.go:53 cli/lib/install.go:55
+#: internal/cli/lib/check_deps.go:41 internal/cli/lib/install.go:51
+#: internal/cli/lib/install.go:53
 msgid "for the specific version."
 msgstr "针对特定版本。"
 
-#: inventory/inventory.go:68
+#: inventory/inventory.go:69
 msgid "generating installation.id: %w"
 msgstr "正在生成安装 id: %w"
 
-#: inventory/inventory.go:74
+#: inventory/inventory.go:75
 msgid "generating installation.secret: %w"
 msgstr "生成 installation.secret:%w"
 
-#: arduino/resources/download.go:52
+#: arduino/resources/download.go:53
 msgid "getting archive file info: %s"
 msgstr "正在获取存档文件信息:%s"
 
-#: arduino/resources/checksums.go:94
+#: arduino/resources/checksums.go:93
 msgid "getting archive info: %s"
-msgstr "正在获取档案信息:%s"
+msgstr "正在获取存档信息:%s"
 
-#: arduino/resources/checksums.go:67 arduino/resources/checksums.go:90
-#: arduino/resources/download.go:33 arduino/resources/helpers.go:38
+#: arduino/resources/checksums.go:66 arduino/resources/checksums.go:89
+#: arduino/resources/download.go:34 arduino/resources/helpers.go:38
 #: arduino/resources/install.go:55
 msgid "getting archive path: %s"
 msgstr "正在获取存档路径:%s"
@@ -2768,7 +2778,7 @@ msgstr "正在获取 %[1]s 开发板的构建属性:%[2]s"
 
 #: arduino/cores/packagemanager/download.go:106
 msgid "getting discovery dependencies for platform %[1]s: %[2]s"
-msgstr "获取 %[1]s 平台的discovery依赖:%[2]s"
+msgstr "获取 %[1]s 平台的 discovery 依赖:%[2]s"
 
 #: arduino/cores/packagemanager/download.go:114
 msgid "getting monitor dependencies for platform %[1]s: %[2]s"
@@ -2782,11 +2792,7 @@ msgstr "正在获取 %[1]s 的父目录:%[2]s"
 msgid "getting tool dependencies for platform %[1]s: %[2]s"
 msgstr "正在获取 %[1]s 平台的工具依赖:%[2]s"
 
-#: arduino/sketch/sketch.go:176
-msgid "importing sketch metadata: %s"
-msgstr "正在导入项目元数据:%s"
-
-#: arduino/libraries/librariesmanager/install.go:103
+#: arduino/libraries/librariesmanager/install.go:153
 msgid "install directory not set"
 msgstr "未设置安装目录"
 
@@ -2798,19 +2804,23 @@ msgstr "正在安装 %[1]s 工具:%[2]s"
 msgid "installing platform %[1]s: %[2]s"
 msgstr "安装 %[1]s 平台: %[2]s"
 
-#: arduino/sketch/profiles.go:179
+#: internal/cli/feedback/terminal.go:36
+msgid "interactive terminal not supported for the '%s' output format"
+msgstr ""
+
+#: arduino/sketch/profiles.go:191
 msgid "invalid '%s' directive"
 msgstr "无效的 ‘%s’ 指令"
 
 #: arduino/discovery/discovery.go:174
 msgid "invalid 'add' message: missing port"
-msgstr "无效的“添加”消息:找不到端口"
+msgstr "无效的 “添加” 消息:找不到端口"
 
 #: arduino/discovery/discovery.go:184
 msgid "invalid 'remove' message: missing port"
-msgstr "无效的“删除”消息:找不到端口"
+msgstr "无效的 “删除” 消息:找不到端口"
 
-#: arduino/resources/checksums.go:45
+#: arduino/resources/checksums.go:44
 msgid "invalid checksum format: %s"
 msgstr "无效的校验码格式:%s"
 
@@ -2818,31 +2828,31 @@ msgstr "无效的校验码格式:%s"
 msgid "invalid config option: %s"
 msgstr "无效的配置选项:%s"
 
-#: cli/arguments/reference.go:90
+#: internal/cli/arguments/reference.go:90
 msgid "invalid empty core architecture '%s'"
-msgstr "无效的空内核架构’%s‘"
+msgstr "无效的空内核架构 ’%s‘"
 
-#: cli/arguments/reference.go:67
+#: internal/cli/arguments/reference.go:67
 msgid "invalid empty core argument"
 msgstr "无效的空内核参数"
 
-#: cli/arguments/reference.go:86
+#: internal/cli/arguments/reference.go:86
 msgid "invalid empty core name '%s'"
-msgstr "无效的空内核名称’%s‘"
+msgstr "无效的空内核名称 ’%s‘"
 
-#: cli/arguments/reference.go:71
+#: internal/cli/arguments/reference.go:71
 msgid "invalid empty core reference '%s'"
-msgstr "无效的空内核引用’%s‘"
+msgstr "无效的空内核引用 ’%s‘"
 
-#: cli/arguments/reference.go:76
+#: internal/cli/arguments/reference.go:76
 msgid "invalid empty core version: '%s'"
 msgstr "无效的空内核版本:’%s‘"
 
-#: cli/lib/args.go:49
+#: internal/cli/lib/args.go:49
 msgid "invalid empty library name"
 msgstr "无效的空库名"
 
-#: cli/lib/args.go:54
+#: internal/cli/lib/args.go:54
 msgid "invalid empty library version: %s"
 msgstr "无效的空库版本:%s"
 
@@ -2850,19 +2860,19 @@ msgstr "无效的空库版本:%s"
 msgid "invalid empty option found"
 msgstr "发现无效的空选项"
 
-#: arduino/libraries/librariesmanager/install.go:298
+#: arduino/libraries/librariesmanager/install.go:272
 msgid "invalid git url"
-msgstr "无效的git地址"
+msgstr "无效的 git 地址"
 
-#: arduino/resources/checksums.go:49
+#: arduino/resources/checksums.go:48
 msgid "invalid hash '%[1]s': %[2]s"
 msgstr "无效的 ‘%[1]s’ 哈希:%[2]s"
 
-#: cli/arguments/reference.go:83
+#: internal/cli/arguments/reference.go:83
 msgid "invalid item %s"
 msgstr "无效的 %s 条目"
 
-#: arduino/sketch/profiles.go:213
+#: arduino/sketch/profiles.go:225
 msgid "invalid library directive:"
 msgstr "无效的库指令:"
 
@@ -2878,23 +2888,23 @@ msgstr "无效的库 location:%s"
 msgid "invalid option '%s'"
 msgstr "无效的 ‘%s’ 选项 "
 
-#: inventory/inventory.go:88
+#: inventory/inventory.go:94
 msgid "invalid path creating config dir: %[1]s error: %[2]w"
 msgstr "新建配置目录的路径无效:%[1]s 错误:%[2]w"
 
-#: inventory/inventory.go:94
+#: inventory/inventory.go:100
 msgid "invalid path writing inventory file: %[1]s error: %[2]w"
 msgstr "写入库存文件的路径无效:%[1]s 错误:%[2]w"
 
-#: arduino/cores/packageindex/index.go:267
+#: arduino/cores/packageindex/index.go:278
 msgid "invalid platform archive size: %s"
 msgstr "无效的平台存档大小:%s"
 
-#: arduino/sketch/profiles.go:183
+#: arduino/sketch/profiles.go:195
 msgid "invalid platform identifier"
 msgstr "无效的平台标识符"
 
-#: arduino/sketch/profiles.go:193
+#: arduino/sketch/profiles.go:205
 msgid "invalid platform index URL:"
 msgstr "无效的平台索引网址:"
 
@@ -2902,11 +2912,11 @@ msgstr "无效的平台索引网址:"
 msgid "invalid pluggable monitor reference: %s"
 msgstr "无效的热插拔监视器引用:%s"
 
-#: cli/monitor/monitor.go:126
+#: internal/cli/monitor/monitor.go:122
 msgid "invalid port configuration value for %s: %s"
 msgstr "%s 的端口配置值无效:%s"
 
-#: cli/monitor/monitor.go:135
+#: internal/cli/monitor/monitor.go:130
 msgid "invalid port configuration: %s"
 msgstr "无效的端口配置:%s"
 
@@ -2914,6 +2924,12 @@ msgstr "无效的端口配置:%s"
 msgid "invalid recipe '%[1]s': %[2]s"
 msgstr "无效的 ‘%[1]s’ 方法: %[2]s"
 
+#: commands/sketch/new.go:83
+msgid ""
+"invalid sketch name \"%[1]s\": the first character must be alphanumeric, the"
+" following ones can also contain \"_\", \"-\", and \".\"."
+msgstr ""
+
 #: arduino/cores/board.go:140
 msgid "invalid value '%[1]s' for option '%[2]s'"
 msgstr "‘%[2]s’ 选项的 ‘%[1]s’ 值无效"
@@ -2922,32 +2938,27 @@ msgstr "‘%[2]s’ 选项的 ‘%[1]s’ 值无效"
 msgid "invalid version directory %s"
 msgstr "%s 版本目录无效"
 
-#: arduino/sketch/profiles.go:215
+#: arduino/sketch/profiles.go:227
 msgid "invalid version:"
 msgstr "无效的版本:"
 
-#: commands/daemon/settings.go:108
+#: commands/daemon/settings.go:111
 msgid "key not found in settings"
 msgstr "在设置中找不到键"
 
-#: cli/core/search.go:47
+#: internal/cli/core/search.go:45
 msgid "keywords"
 msgstr "关键字"
 
-#: arduino/libraries/librariesmanager/install.go:176
-#: arduino/libraries/librariesmanager/install.go:218
+#: arduino/libraries/librariesmanager/install.go:130
 msgid "library %s already installed"
 msgstr "%s 库已安装"
 
-#: arduino/libraries/librariesmanager/install.go:40
-msgid "library already installed"
-msgstr "库已安装"
-
-#: arduino/libraries/librariesmanager/install.go:345
+#: arduino/libraries/librariesmanager/install.go:319
 msgid "library not valid"
 msgstr "库无效"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:188
+#: arduino/libraries/librariesmanager/librariesmanager.go:197
 msgid "library path does not exist: %s"
 msgstr "库路径不存在:%s"
 
@@ -2974,8 +2985,8 @@ msgstr "正在从 %s 下载附加工具"
 msgid "loading json index file %[1]s: %[2]s"
 msgstr "正在加载 %[1]s json 索引文件:%[2]s"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:170
-#: arduino/libraries/librariesmanager/librariesmanager.go:193
+#: arduino/libraries/librariesmanager/librariesmanager.go:179
+#: arduino/libraries/librariesmanager/librariesmanager.go:202
 msgid "loading library from %[1]s: %[2]s"
 msgstr "正在从 %[1]s 加载库:%[2]s"
 
@@ -3008,15 +3019,15 @@ msgstr "在 %s 中加载工具发行版本"
 msgid "looking for boards.txt in %s"
 msgstr "在 %s 中查找 boards.txt"
 
-#: arduino/sketch/sketch.go:91
+#: arduino/sketch/sketch.go:76
 msgid "main file missing from sketch: %s"
 msgstr "项目中缺少主文件:%s"
 
-#: arduino/sketch/profiles.go:177
+#: arduino/sketch/profiles.go:189
 msgid "missing '%s' directive"
 msgstr "缺少 ‘%s’ 指令"
 
-#: arduino/resources/checksums.go:41
+#: arduino/resources/checksums.go:40
 msgid "missing checksum for: %s"
 msgstr "缺少校验码:%s"
 
@@ -3036,7 +3047,8 @@ msgstr "缺少平台 %[1]s 发行版本:%[2]s 被开发板 %[3]s 引用"
 msgid "monitor release not found: %s"
 msgstr "未找到公开监视器:%s"
 
-#: arduino/libraries/librariesmanager/install.go:193
+#: arduino/libraries/librariesmanager/install.go:201
+#: arduino/libraries/librariesmanager/install.go:250
 #: arduino/resources/install.go:96
 msgid "moving extracted archive to destination dir: %s"
 msgstr "正在将提取的存档移动到目标目录:%s"
@@ -3045,7 +3057,7 @@ msgstr "正在将提取的存档移动到目标目录:%s"
 msgid "multiple build artifacts found: '%[1]s' and '%[2]s'"
 msgstr "找到多个构建文件:‘%[1]s’ 和 ‘%[2]s’"
 
-#: arduino/sketch/sketch.go:83
+#: arduino/sketch/sketch.go:68
 msgid "multiple main sketch files found (%[1]v, %[2]v)"
 msgstr "找到多个主项目文件 (%[1]v, %[2]v)"
 
@@ -3065,7 +3077,7 @@ msgstr "没有指定实例"
 msgid "no sketch or build directory/file specified"
 msgstr "未指定项目或构建目录/文件"
 
-#: arduino/sketch/sketch.go:70
+#: arduino/sketch/sketch.go:55
 msgid "no such file or directory"
 msgstr "没有这样的文件或目录"
 
@@ -3077,7 +3089,7 @@ msgstr "存档中没有唯一的根目录,找到了 ‘%[1]s’ 和 ‘%[2]s
 msgid "no upload port provided"
 msgstr "未提供上传端口"
 
-#: arduino/sketch/sketch.go:293
+#: arduino/sketch/sketch.go:274
 msgid "no valid sketch found in %[1]s: missing %[2]s"
 msgstr "在 %[1]s 中找不到有效的项目:缺少 %[2]s"
 
@@ -3085,7 +3097,11 @@ msgstr "在 %[1]s 中找不到有效的项目:缺少 %[2]s"
 msgid "no versions available for the current OS"
 msgstr "没有适用于当前操作系统的版本"
 
-#: arduino/resources/checksums.go:72 arduino/resources/install.go:59
+#: internal/cli/feedback/terminal.go:39
+msgid "not running in a terminal"
+msgstr ""
+
+#: arduino/resources/checksums.go:71 arduino/resources/install.go:59
 msgid "opening archive file: %s"
 msgstr "正在打开存档文件:%s"
 
@@ -3097,11 +3113,11 @@ msgstr "正在打开 boards.txt"
 msgid "opening port at 1200bps"
 msgstr "以 1200bps 的速率打开端口"
 
-#: arduino/security/signatures.go:81
+#: arduino/security/signatures.go:83
 msgid "opening signature file: %s"
 msgstr "打开签名文件:%s"
 
-#: arduino/security/signatures.go:76
+#: arduino/security/signatures.go:78
 msgid "opening target file: %s"
 msgstr "打开目标文件:%s"
 
@@ -3145,11 +3161,11 @@ msgstr "%s 平台未安装"
 
 #: arduino/cores/packagemanager/install_uninstall.go:228
 #: arduino/cores/packagemanager/install_uninstall.go:276
-#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:98
+#: arduino/cores/packagemanager/loader.go:457 commands/compile/compile.go:99
 msgid "platform not installed"
 msgstr "平台未安装"
 
-#: cli/compile/compile.go:143
+#: internal/cli/compile/compile.go:140
 msgid "please use --build-property instead."
 msgstr "请改用 --build-property。"
 
@@ -3157,11 +3173,11 @@ msgstr "请改用 --build-property。"
 msgid "pluggable discovery already added: %s"
 msgstr "已添加可插入 discovery:%s"
 
-#: cli/board/attach.go:40
+#: internal/cli/board/attach.go:30
 msgid "port"
 msgstr "端口"
 
-#: cli/arguments/port.go:138
+#: internal/cli/arguments/port.go:129
 msgid "port not found: %[1]s %[2]s"
 msgstr "未找到端口:%[1]s %[2]s"
 
@@ -3177,7 +3193,7 @@ msgstr "不支持协议版本:请求 1,得到 %d"
 msgid "reading %[1]s: %[2]s"
 msgstr "正在读取 %[1]s: %[2]s"
 
-#: arduino/libraries/librariesmanager/librariesmanager.go:161
+#: arduino/libraries/librariesmanager/librariesmanager.go:170
 msgid "reading dir %[1]s: %[2]s"
 msgstr "正在读取 %[1]s 目录 : %[2]s"
 
@@ -3188,7 +3204,7 @@ msgstr "正在读取 %[1]s 目录 : %[2]s"
 msgid "reading directory %s"
 msgstr "正在读取 %s 目录"
 
-#: arduino/libraries/librariesmanager/install.go:318
+#: arduino/libraries/librariesmanager/install.go:292
 msgid "reading directory %s content: %w"
 msgstr "正在读取 %s 目录的内容:%w"
 
@@ -3196,11 +3212,11 @@ msgstr "正在读取 %s 目录的内容:%w"
 msgid "reading file %[1]s: %[2]s"
 msgstr "正在读取 %[1]s 文件: %[2]s"
 
-#: arduino/sketch/sketch.go:265
+#: arduino/sketch/sketch.go:205
 msgid "reading files: %v"
 msgstr "正在读取文件:%v"
 
-#: inventory/inventory.go:58
+#: inventory/inventory.go:59
 msgid "reading inventory file: %w"
 msgstr "正在读取库存文件:%w"
 
@@ -3224,10 +3240,6 @@ msgstr "正在读取 library_index.json: %s"
 msgid "reading package root dir: %s"
 msgstr "正在读取软件包根目录:%s"
 
-#: arduino/sketch/sketch.go:213
-msgid "reading sketch metadata %[1]s: %[2]s"
-msgstr "正在读取项目元数据 %[1]s:%[2]s"
-
 #: commands/upload/upload.go:484
 msgid "recipe not found '%s'"
 msgstr "未找到 ‘%s’ 方法"
@@ -3241,13 +3253,13 @@ msgstr "找不到 %[2]s 工具的 %[1]s 发行版本"
 msgid "release cannot be nil"
 msgstr "发行不能为无"
 
-#: arduino/resources/download.go:43
+#: arduino/resources/download.go:44
 msgid "removing corrupted archive file: %s"
 msgstr "正在删除损坏的存档文件:%s"
 
-#: arduino/libraries/librariesmanager/install.go:106
-msgid "removing lib directory: %s"
-msgstr "正在删除lib目录:%s"
+#: arduino/libraries/librariesmanager/install.go:156
+msgid "removing library directory: %s"
+msgstr "删除库目录:%s"
 
 #: arduino/cores/packagemanager/install_uninstall.go:289
 msgid "removing platform files: %s"
@@ -3257,7 +3269,7 @@ msgstr "正在删除平台文件:%s"
 msgid "required version %[1]s not found for platform %[2]s"
 msgstr "找不到 %[2]s 平台所需的 %[1]s 版本"
 
-#: arduino/security/signatures.go:72
+#: arduino/security/signatures.go:74
 msgid "retrieving Arduino public keys: %s"
 msgstr "正在检索Arduino密钥:%s"
 
@@ -3277,15 +3289,24 @@ msgstr "正在搜索软件包根目录:%s"
 msgid "setting DTR to OFF"
 msgstr "将 DTR 设置为 OFF"
 
-#: arduino/sketch/sketch.go:63 arduino/sketch/sketch.go:68
+#: commands/sketch/new.go:75
+msgid "sketch name cannot be empty"
+msgstr ""
+
+#: commands/sketch/new.go:78
+msgid ""
+"sketch name too long (%[1]d characters). Maximum allowed length is %[2]d"
+msgstr ""
+
+#: arduino/sketch/sketch.go:48 arduino/sketch/sketch.go:53
 msgid "sketch path is not valid"
 msgstr "项目路径无效"
 
-#: cli/board/attach.go:40 cli/sketch/archive.go:38
+#: internal/cli/board/attach.go:30 internal/cli/sketch/archive.go:37
 msgid "sketchPath"
 msgstr "项目路径"
 
-#: legacy/builder/utils/utils.go:430
+#: legacy/builder/utils/utils.go:429
 msgid "source is not a directory"
 msgstr "来源不是目录"
 
@@ -3293,17 +3314,17 @@ msgstr "来源不是目录"
 msgid "starting discovery %s"
 msgstr "开始发现 %s"
 
-#: arduino/resources/checksums.go:119
+#: arduino/resources/checksums.go:118
 msgid "testing archive checksum: %s"
 msgstr "测试存档校验码:%s"
 
-#: arduino/resources/checksums.go:112
+#: arduino/resources/checksums.go:111
 msgid "testing archive size: %s"
-msgstr "测试档案大小:%s"
+msgstr "测试存档大小:%s"
 
-#: arduino/resources/checksums.go:106
+#: arduino/resources/checksums.go:105
 msgid "testing if archive is cached: %s"
-msgstr "测试档案是否被缓存:%s"
+msgstr "测试存档是否被缓存:%s"
 
 #: arduino/resources/install.go:37
 msgid "testing local archive integrity: %s"
@@ -3322,7 +3343,7 @@ msgstr "编译数据库可能不完整或不准确"
 msgid "the platform has no releases"
 msgstr "该平台没有发行版本"
 
-#: commands/board/list.go:80
+#: commands/board/list.go:102
 msgid "the server responded with status %s"
 msgstr "服务器响应状态 %s"
 
@@ -3352,7 +3373,7 @@ msgid "tool not installed"
 msgstr "工具未安装"
 
 #: arduino/cores/packagemanager/package_manager.go:568
-#: arduino/cores/packagemanager/package_manager.go:645
+#: arduino/cores/packagemanager/package_manager.go:674
 msgid "tool release not found: %s"
 msgstr "找不到发行工具:%s"
 
@@ -3360,7 +3381,7 @@ msgstr "找不到发行工具:%s"
 msgid "tool version %s not found"
 msgstr "未找到工具的 %s 版本"
 
-#: commands/lib/install.go:60
+#: commands/lib/install.go:61
 msgid ""
 "two different versions of the library %[1]s are required: %[2]s and %[3]s"
 msgstr "需要 %[1]s 库的两个不同版本:%[2]s 和 %[3]s"
@@ -3381,7 +3402,7 @@ msgstr "无法新建文件夹来保存项目文件"
 msgid "unable to create the folder containing the item"
 msgstr "无法新建包含该项目的文件夹"
 
-#: cli/config/dump.go:58
+#: internal/cli/config/dump.go:59
 msgid "unable to marshal config to YAML: %v"
 msgstr "无法将 config 编码成 YAML:%v"
 
@@ -3409,19 +3430,19 @@ msgstr "未知 %s 软件包 "
 msgid "unknown platform %s:%s"
 msgstr "未知 %s 平台:%s"
 
-#: arduino/sketch/sketch.go:167
+#: arduino/sketch/sketch.go:147
 msgid "unknown sketch file extension '%s'"
 msgstr "未知的项目文件扩展名 ‘%s’"
 
-#: arduino/resources/checksums.go:62
+#: arduino/resources/checksums.go:61
 msgid "unsupported hash algorithm: %s"
 msgstr "不支持的哈希算法:%s"
 
-#: cli/core/upgrade.go:45
+#: internal/cli/core/upgrade.go:43
 msgid "upgrade arduino:samd to the latest version"
 msgstr "将 arduino:samd 升级到最新版本"
 
-#: cli/core/upgrade.go:43
+#: internal/cli/core/upgrade.go:41
 msgid "upgrade everything to the latest version"
 msgstr "将所有内容升级到最新版本"
 
@@ -3429,6 +3450,18 @@ msgstr "将所有内容升级到最新版本"
 msgid "uploading error: %s"
 msgstr "上传错误:%s"
 
+#: arduino/libraries/librariesmanager/librariesmanager.go:153
+msgid "user directory not set"
+msgstr "未设置用户目录"
+
+#: internal/cli/feedback/terminal.go:51
+msgid "user input not supported for the '%s' output format"
+msgstr ""
+
+#: internal/cli/feedback/terminal.go:54
+msgid "user input not supported in non interactive mode"
+msgstr ""
+
 #: arduino/cores/packagemanager/profiles.go:176
 msgid "version %s not available for this operating system"
 msgstr "%s 版本不适用于此操作系统"
@@ -3437,10 +3470,6 @@ msgstr "%s 版本不适用于此操作系统"
 msgid "version %s not found"
 msgstr "未找到 %s 版本"
 
-#: arduino/sketch/sketch.go:237
-msgid "writing sketch metadata %[1]s: %[2]s"
-msgstr "正在编写项目元数据 %[1]s:%[2]s"
-
-#: commands/board/list.go:96
+#: commands/board/list.go:120
 msgid "wrong format in server response"
 msgstr "服务器响应格式错误"