diff --git a/go.mod b/go.mod
index 3dbb38d7db1..4de816c36d9 100644
--- a/go.mod
+++ b/go.mod
@@ -26,19 +26,16 @@ require (
 	github.com/mattn/go-colorable v0.1.2
 	github.com/mattn/go-runewidth v0.0.2 // indirect
 	github.com/miekg/dns v1.0.5 // indirect
-	github.com/mitchellh/go-homedir v1.1.0
 	github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228 // indirect
 	github.com/pkg/errors v0.8.1
 	github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583
 	github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5
 	github.com/schollz/closestmatch v2.1.0+incompatible
-	github.com/sergi/go-diff v1.0.0
 	github.com/sirupsen/logrus v1.4.2
 	github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a // indirect
 	github.com/spf13/cobra v0.0.5
 	github.com/spf13/jwalterweatherman v1.0.0
 	github.com/spf13/viper v1.3.2
-	github.com/stretchr/objx v0.2.0 // indirect
 	github.com/stretchr/testify v1.4.0
 	go.bug.st/cleanup v1.0.0
 	go.bug.st/downloader v1.1.0
diff --git a/go.sum b/go.sum
index 973ca95cfc5..053a04e555d 100644
--- a/go.sum
+++ b/go.sum
@@ -1,6 +1,7 @@
 bou.ke/monkey v1.0.1 h1:zEMLInw9xvNakzUUPjfS4Ds6jYPqCFx3m7bRmG5NH2U=
 bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c h1:agh2JT96G8egU7FEb13L4dq3fnCN7lxXhJ86t69+W7s=
 github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1:HK7SpkEax/3P+0w78iRQx1sz1vCDYYw9RXwHjQTB5i8=
@@ -25,8 +26,6 @@ github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8Nz
 github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk=
 github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
-github.com/creack/goselect v0.0.0-20180328191401-176c667f75aa h1:tIUhmTixVssck4oJ9jKcqaNOF8ua4YxN3UHP0ymBHuQ=
-github.com/creack/goselect v0.0.0-20180328191401-176c667f75aa/go.mod h1:gHrIcH/9UZDn2qgeTUeW5K9eZsVYCH6/60J/FHysWyE=
 github.com/creack/goselect v0.1.1 h1:tiSSgKE1eJtxs1h/VgGQWuXUP0YS4CDIFMp6vaI1ls0=
 github.com/creack/goselect v0.1.1/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -102,8 +101,6 @@ github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNue
 github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
 github.com/schollz/closestmatch v2.1.0+incompatible h1:Uel2GXEpJqOWBrlyI+oY9LTiyyjYS17cCYRqP13/SHk=
 github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g=
-github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
-github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
 github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
@@ -124,8 +121,6 @@ github.com/spf13/viper v1.3.2 h1:VUFqw5KcqRf7i70GOzW7N+Q7+gxVBkSSqiXB12+JQ4M=
 github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
-github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
diff --git a/rpc/commands/commands.pb.go b/rpc/commands/commands.pb.go
index ef60158b7d3..59fe7937ed8 100644
--- a/rpc/commands/commands.pb.go
+++ b/rpc/commands/commands.pb.go
@@ -8,8 +8,6 @@ import (
 	fmt "fmt"
 	proto "github.com/golang/protobuf/proto"
 	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
 	math "math"
 )
 
@@ -24,91 +22,18 @@ var _ = math.Inf
 // proto package needs to be updated.
 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
-// Configuration contains information to instantiate an Arduino Platform Service
-type Configuration struct {
-	// dataDir represents the current root of the arduino tree (defaulted to
-	// `$HOME/.arduino15` on linux).
-	DataDir string `protobuf:"bytes,1,opt,name=dataDir,proto3" json:"dataDir,omitempty"`
-	// sketchbookDir represents the current root of the sketchbooks tree
-	// (defaulted to `$HOME/Arduino`).
-	SketchbookDir string `protobuf:"bytes,2,opt,name=sketchbookDir,proto3" json:"sketchbookDir,omitempty"`
-	// ArduinoIDEDirectory is the directory of the Arduino IDE if the CLI runs
-	// together with it.
-	DownloadsDir string `protobuf:"bytes,3,opt,name=downloadsDir,proto3" json:"downloadsDir,omitempty"`
-	// BoardManagerAdditionalUrls contains the additional URL for 3rd party
-	// packages
-	BoardManagerAdditionalUrls []string `protobuf:"bytes,4,rep,name=boardManagerAdditionalUrls,proto3" json:"boardManagerAdditionalUrls,omitempty"`
-	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
-	XXX_unrecognized           []byte   `json:"-"`
-	XXX_sizecache              int32    `json:"-"`
-}
-
-func (m *Configuration) Reset()         { *m = Configuration{} }
-func (m *Configuration) String() string { return proto.CompactTextString(m) }
-func (*Configuration) ProtoMessage()    {}
-func (*Configuration) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{0}
-}
-
-func (m *Configuration) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Configuration.Unmarshal(m, b)
-}
-func (m *Configuration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Configuration.Marshal(b, m, deterministic)
-}
-func (m *Configuration) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Configuration.Merge(m, src)
-}
-func (m *Configuration) XXX_Size() int {
-	return xxx_messageInfo_Configuration.Size(m)
-}
-func (m *Configuration) XXX_DiscardUnknown() {
-	xxx_messageInfo_Configuration.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Configuration proto.InternalMessageInfo
-
-func (m *Configuration) GetDataDir() string {
-	if m != nil {
-		return m.DataDir
-	}
-	return ""
-}
-
-func (m *Configuration) GetSketchbookDir() string {
-	if m != nil {
-		return m.SketchbookDir
-	}
-	return ""
-}
-
-func (m *Configuration) GetDownloadsDir() string {
-	if m != nil {
-		return m.DownloadsDir
-	}
-	return ""
-}
-
-func (m *Configuration) GetBoardManagerAdditionalUrls() []string {
-	if m != nil {
-		return m.BoardManagerAdditionalUrls
-	}
-	return nil
-}
-
 type InitReq struct {
-	Configuration        *Configuration `protobuf:"bytes,1,opt,name=configuration,proto3" json:"configuration,omitempty"`
-	LibraryManagerOnly   bool           `protobuf:"varint,2,opt,name=library_manager_only,json=libraryManagerOnly,proto3" json:"library_manager_only,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
+	LibraryManagerOnly   bool     `protobuf:"varint,2,opt,name=library_manager_only,json=libraryManagerOnly,proto3" json:"library_manager_only,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
 func (m *InitReq) Reset()         { *m = InitReq{} }
 func (m *InitReq) String() string { return proto.CompactTextString(m) }
 func (*InitReq) ProtoMessage()    {}
 func (*InitReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{1}
+	return fileDescriptor_3690061a1131852d, []int{0}
 }
 
 func (m *InitReq) XXX_Unmarshal(b []byte) error {
@@ -129,13 +54,6 @@ func (m *InitReq) XXX_DiscardUnknown() {
 
 var xxx_messageInfo_InitReq proto.InternalMessageInfo
 
-func (m *InitReq) GetConfiguration() *Configuration {
-	if m != nil {
-		return m.Configuration
-	}
-	return nil
-}
-
 func (m *InitReq) GetLibraryManagerOnly() bool {
 	if m != nil {
 		return m.LibraryManagerOnly
@@ -158,7 +76,7 @@ func (m *InitResp) Reset()         { *m = InitResp{} }
 func (m *InitResp) String() string { return proto.CompactTextString(m) }
 func (*InitResp) ProtoMessage()    {}
 func (*InitResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{2}
+	return fileDescriptor_3690061a1131852d, []int{1}
 }
 
 func (m *InitResp) XXX_Unmarshal(b []byte) error {
@@ -225,7 +143,7 @@ func (m *DestroyReq) Reset()         { *m = DestroyReq{} }
 func (m *DestroyReq) String() string { return proto.CompactTextString(m) }
 func (*DestroyReq) ProtoMessage()    {}
 func (*DestroyReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{3}
+	return fileDescriptor_3690061a1131852d, []int{2}
 }
 
 func (m *DestroyReq) XXX_Unmarshal(b []byte) error {
@@ -263,7 +181,7 @@ func (m *DestroyResp) Reset()         { *m = DestroyResp{} }
 func (m *DestroyResp) String() string { return proto.CompactTextString(m) }
 func (*DestroyResp) ProtoMessage()    {}
 func (*DestroyResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{4}
+	return fileDescriptor_3690061a1131852d, []int{3}
 }
 
 func (m *DestroyResp) XXX_Unmarshal(b []byte) error {
@@ -295,7 +213,7 @@ func (m *RescanReq) Reset()         { *m = RescanReq{} }
 func (m *RescanReq) String() string { return proto.CompactTextString(m) }
 func (*RescanReq) ProtoMessage()    {}
 func (*RescanReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{5}
+	return fileDescriptor_3690061a1131852d, []int{4}
 }
 
 func (m *RescanReq) XXX_Unmarshal(b []byte) error {
@@ -335,7 +253,7 @@ func (m *RescanResp) Reset()         { *m = RescanResp{} }
 func (m *RescanResp) String() string { return proto.CompactTextString(m) }
 func (*RescanResp) ProtoMessage()    {}
 func (*RescanResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{6}
+	return fileDescriptor_3690061a1131852d, []int{5}
 }
 
 func (m *RescanResp) XXX_Unmarshal(b []byte) error {
@@ -381,7 +299,7 @@ func (m *UpdateIndexReq) Reset()         { *m = UpdateIndexReq{} }
 func (m *UpdateIndexReq) String() string { return proto.CompactTextString(m) }
 func (*UpdateIndexReq) ProtoMessage()    {}
 func (*UpdateIndexReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{7}
+	return fileDescriptor_3690061a1131852d, []int{6}
 }
 
 func (m *UpdateIndexReq) XXX_Unmarshal(b []byte) error {
@@ -420,7 +338,7 @@ func (m *UpdateIndexResp) Reset()         { *m = UpdateIndexResp{} }
 func (m *UpdateIndexResp) String() string { return proto.CompactTextString(m) }
 func (*UpdateIndexResp) ProtoMessage()    {}
 func (*UpdateIndexResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{8}
+	return fileDescriptor_3690061a1131852d, []int{7}
 }
 
 func (m *UpdateIndexResp) XXX_Unmarshal(b []byte) error {
@@ -459,7 +377,7 @@ func (m *UpdateLibrariesIndexReq) Reset()         { *m = UpdateLibrariesIndexReq
 func (m *UpdateLibrariesIndexReq) String() string { return proto.CompactTextString(m) }
 func (*UpdateLibrariesIndexReq) ProtoMessage()    {}
 func (*UpdateLibrariesIndexReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{9}
+	return fileDescriptor_3690061a1131852d, []int{8}
 }
 
 func (m *UpdateLibrariesIndexReq) XXX_Unmarshal(b []byte) error {
@@ -498,7 +416,7 @@ func (m *UpdateLibrariesIndexResp) Reset()         { *m = UpdateLibrariesIndexRe
 func (m *UpdateLibrariesIndexResp) String() string { return proto.CompactTextString(m) }
 func (*UpdateLibrariesIndexResp) ProtoMessage()    {}
 func (*UpdateLibrariesIndexResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{10}
+	return fileDescriptor_3690061a1131852d, []int{9}
 }
 
 func (m *UpdateLibrariesIndexResp) XXX_Unmarshal(b []byte) error {
@@ -536,7 +454,7 @@ func (m *VersionReq) Reset()         { *m = VersionReq{} }
 func (m *VersionReq) String() string { return proto.CompactTextString(m) }
 func (*VersionReq) ProtoMessage()    {}
 func (*VersionReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{11}
+	return fileDescriptor_3690061a1131852d, []int{10}
 }
 
 func (m *VersionReq) XXX_Unmarshal(b []byte) error {
@@ -568,7 +486,7 @@ func (m *VersionResp) Reset()         { *m = VersionResp{} }
 func (m *VersionResp) String() string { return proto.CompactTextString(m) }
 func (*VersionResp) ProtoMessage()    {}
 func (*VersionResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_3690061a1131852d, []int{12}
+	return fileDescriptor_3690061a1131852d, []int{11}
 }
 
 func (m *VersionResp) XXX_Unmarshal(b []byte) error {
@@ -597,7 +515,6 @@ func (m *VersionResp) GetVersion() string {
 }
 
 func init() {
-	proto.RegisterType((*Configuration)(nil), "cc.arduino.cli.commands.Configuration")
 	proto.RegisterType((*InitReq)(nil), "cc.arduino.cli.commands.InitReq")
 	proto.RegisterType((*InitResp)(nil), "cc.arduino.cli.commands.InitResp")
 	proto.RegisterType((*DestroyReq)(nil), "cc.arduino.cli.commands.DestroyReq")
@@ -615,72 +532,67 @@ func init() {
 func init() { proto.RegisterFile("commands/commands.proto", fileDescriptor_3690061a1131852d) }
 
 var fileDescriptor_3690061a1131852d = []byte{
-	// 1036 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x98, 0xcb, 0x53, 0x1b, 0x37,
-	0x18, 0xc0, 0x63, 0x92, 0xf2, 0xf8, 0x8c, 0x49, 0xa2, 0x38, 0xc1, 0xe3, 0x13, 0xd9, 0x3c, 0x30,
-	0x50, 0x0c, 0xa5, 0x9d, 0xf6, 0xd4, 0xce, 0x38, 0xb8, 0x07, 0x52, 0x3a, 0x64, 0x4c, 0xcd, 0x74,
-	0x72, 0x71, 0xe5, 0x5d, 0x61, 0x34, 0x5e, 0x56, 0x42, 0x5a, 0x68, 0x7d, 0xea, 0xb9, 0x87, 0xfe,
-	0x35, 0xbd, 0xf5, 0x1f, 0xe9, 0xbf, 0xd3, 0x91, 0x56, 0x5a, 0xef, 0x82, 0xf7, 0x41, 0x20, 0x27,
-	0xd0, 0xf7, 0xfd, 0xbe, 0x87, 0xbe, 0x87, 0x6c, 0x80, 0x55, 0x97, 0x9d, 0x9f, 0xe3, 0xc0, 0x93,
-	0x3b, 0xf6, 0x97, 0x36, 0x17, 0x2c, 0x64, 0x68, 0xd5, 0x75, 0xdb, 0x58, 0x78, 0x97, 0x34, 0x60,
-	0x6d, 0xd7, 0xa7, 0x6d, 0xab, 0x6e, 0x3e, 0x4f, 0x59, 0xb0, 0x20, 0xe2, 0x9b, 0xf5, 0x58, 0x3c,
-	0x64, 0x58, 0x78, 0x46, 0xfa, 0x22, 0x09, 0x73, 0xea, 0x13, 0x23, 0x7f, 0x96, 0x90, 0x0b, 0x2b,
-	0x9c, 0x7a, 0xbe, 0xe4, 0x3e, 0xc3, 0xd6, 0x07, 0x8a, 0xc5, 0x3e, 0x1d, 0x46, 0x32, 0xe7, 0x9f,
-	0x0a, 0xd4, 0xf6, 0x59, 0x70, 0x4a, 0x47, 0x97, 0x02, 0x87, 0x94, 0x05, 0xa8, 0x01, 0x0b, 0x1e,
-	0x0e, 0x71, 0x97, 0x8a, 0x46, 0x65, 0xad, 0xd2, 0x5a, 0xea, 0xd9, 0x23, 0x7a, 0x0d, 0x35, 0x39,
-	0x26, 0xa1, 0x7b, 0x36, 0x64, 0x6c, 0xac, 0xf4, 0x73, 0x5a, 0x9f, 0x16, 0x22, 0x07, 0x96, 0x3d,
-	0xf6, 0x7b, 0xa0, 0xe2, 0x4a, 0x05, 0x3d, 0xd4, 0x50, 0x4a, 0x86, 0x7e, 0x80, 0xa6, 0xbe, 0xdc,
-	0xcf, 0x38, 0xc0, 0x23, 0x22, 0x3a, 0x9e, 0x47, 0x55, 0x6c, 0xec, 0xf7, 0x85, 0x2f, 0x1b, 0x8f,
-	0xd6, 0x1e, 0xb6, 0x96, 0x7a, 0x39, 0x84, 0xf3, 0x57, 0x05, 0x16, 0x0e, 0x02, 0x1a, 0xf6, 0xc8,
-	0x05, 0x3a, 0x84, 0x9a, 0x9b, 0xbc, 0x80, 0xce, 0xba, 0xba, 0xf7, 0xb6, 0x9d, 0x51, 0xf7, 0x76,
-	0xea, 0xba, 0xbd, 0xb4, 0x31, 0xda, 0x85, 0xba, 0x4f, 0x87, 0x02, 0x8b, 0xc9, 0xe0, 0x3c, 0x0a,
-	0x3d, 0x60, 0x81, 0x3f, 0xd1, 0x57, 0x5d, 0xec, 0x21, 0xa3, 0x33, 0x59, 0x1d, 0x05, 0xfe, 0xc4,
-	0xf9, 0x6f, 0x0e, 0x16, 0xa3, 0x5c, 0x24, 0x47, 0xdf, 0xc3, 0x22, 0x0d, 0x64, 0x88, 0x03, 0x97,
-	0x98, 0x3c, 0x5e, 0x66, 0xe6, 0x71, 0x60, 0xc0, 0x5e, 0x6c, 0x82, 0xbe, 0x81, 0x17, 0xdc, 0xc7,
-	0xe1, 0x29, 0x13, 0xe7, 0x72, 0x40, 0x03, 0x8f, 0xfc, 0x31, 0x20, 0x42, 0x30, 0x21, 0x1b, 0x73,
-	0xba, 0x26, 0xf5, 0x58, 0x7b, 0xa0, 0x94, 0x3f, 0x6a, 0x1d, 0xda, 0x83, 0xe7, 0x51, 0x5e, 0x94,
-	0xa4, 0xac, 0x4c, 0xe9, 0x9f, 0xc5, 0xca, 0xa9, 0x11, 0x3a, 0x81, 0xa7, 0xb6, 0x23, 0x03, 0x2e,
-	0xd8, 0x48, 0x10, 0xa9, 0x0a, 0xaf, 0x32, 0xde, 0xc8, 0xcc, 0xb8, 0x6b, 0x2c, 0x3e, 0x18, 0x83,
-	0xde, 0x13, 0xef, 0x9a, 0x04, 0xbd, 0x87, 0x5a, 0x88, 0xe5, 0x78, 0xea, 0xf3, 0x0b, 0xed, 0xf3,
-	0x4d, 0xa6, 0xcf, 0x5f, 0xb0, 0x1c, 0xc7, 0xfe, 0x96, 0xc3, 0xc4, 0xc9, 0xf9, 0x09, 0xa0, 0x4b,
-	0x64, 0x28, 0xd8, 0x44, 0xf5, 0xf9, 0x6e, 0xa5, 0x75, 0x6a, 0x50, 0x8d, 0x9d, 0x49, 0xee, 0xbc,
-	0x87, 0xa5, 0x1e, 0x91, 0x2e, 0x0e, 0xee, 0xc1, 0xf5, 0x15, 0x80, 0xf5, 0x25, 0x79, 0x4e, 0x0f,
-	0x2b, 0x9f, 0xd2, 0xc3, 0xb9, 0xcc, 0x1e, 0x3a, 0x47, 0xb0, 0xd2, 0xe7, 0x1e, 0x0e, 0x89, 0x96,
-	0xdd, 0xc3, 0x45, 0x28, 0x3c, 0x4e, 0x39, 0x94, 0x7c, 0xf6, 0x9c, 0x54, 0xee, 0x3c, 0x27, 0xce,
-	0xaf, 0xb0, 0x1a, 0x85, 0x3a, 0x4c, 0x5d, 0xec, 0x1e, 0x2e, 0x21, 0xa0, 0x31, 0xdb, 0xf3, 0x67,
-	0xbc, 0xcd, 0x32, 0xc0, 0x09, 0x11, 0x52, 0xbd, 0x27, 0xe4, 0xc2, 0x59, 0x87, 0x6a, 0x7c, 0x92,
-	0x5c, 0x3d, 0xa8, 0x57, 0xd1, 0xd1, 0x3e, 0xa8, 0xe6, 0xb8, 0xf7, 0x6f, 0x1d, 0xaa, 0x9d, 0x28,
-	0xe4, 0x3e, 0x13, 0x04, 0x1d, 0xc1, 0x23, 0xf5, 0x92, 0xa0, 0xb5, 0x9c, 0xfb, 0xea, 0x47, 0xaf,
-	0xf9, 0xb2, 0x80, 0x90, 0xdc, 0x79, 0xb0, 0x5b, 0x41, 0x27, 0xb0, 0x60, 0x86, 0x1e, 0xbd, 0xca,
-	0xbe, 0x5f, 0xbc, 0x63, 0xcd, 0xd7, 0xc5, 0x90, 0xf2, 0x8c, 0x8e, 0x61, 0x3e, 0x9a, 0x78, 0xe4,
-	0x64, 0x5a, 0xc4, 0xeb, 0xd5, 0x7c, 0x55, 0xc8, 0x68, 0xa7, 0x1e, 0x54, 0x13, 0xd3, 0x87, 0xd6,
-	0x33, 0xad, 0xd2, 0x43, 0xdf, 0x6c, 0x95, 0x03, 0x4d, 0x49, 0xfe, 0x84, 0xfa, 0xac, 0xf1, 0x40,
-	0xbb, 0x05, 0x5e, 0x6e, 0xcc, 0x69, 0xf3, 0xab, 0x5b, 0x5a, 0x4c, 0x7b, 0x62, 0xa6, 0x23, 0xa7,
-	0x27, 0xd3, 0x69, 0xca, 0xe9, 0x49, 0x62, 0xc8, 0x9c, 0x07, 0xc8, 0x85, 0xe5, 0x77, 0xea, 0x13,
-	0xb3, 0x4b, 0x42, 0x4c, 0x7d, 0x89, 0xb2, 0xcb, 0x92, 0xc4, 0x54, 0x84, 0x8d, 0x92, 0xa4, 0xe4,
-	0x68, 0x08, 0x55, 0x2d, 0xeb, 0x84, 0x21, 0x76, 0xcf, 0x72, 0x7a, 0x94, 0xa0, 0xf2, 0x7b, 0x94,
-	0x02, 0x25, 0xdf, 0xad, 0xa0, 0x8f, 0xb0, 0xa4, 0x85, 0x87, 0x54, 0x86, 0xe8, 0x4d, 0xbe, 0xa1,
-	0x62, 0x94, 0xff, 0xb7, 0x65, 0x30, 0xc9, 0xe3, 0x22, 0x29, 0x41, 0xc7, 0xf7, 0x8b, 0x8a, 0x64,
-	0xb0, 0x12, 0x45, 0x8a, 0x49, 0xfd, 0xca, 0x2c, 0xec, 0x47, 0x5f, 0xd2, 0x72, 0x3a, 0x6c, 0x88,
-	0xfc, 0x0e, 0xc7, 0x90, 0x2e, 0x4c, 0x00, 0x8f, 0x3f, 0x98, 0xcf, 0x0e, 0xfd, 0xee, 0xf9, 0x3e,
-	0xda, 0xca, 0x34, 0xbd, 0x46, 0xaa, 0x38, 0x5f, 0x96, 0x87, 0x75, 0xbc, 0x0b, 0x78, 0x62, 0x15,
-	0xf6, 0x0d, 0x44, 0xc5, 0x3e, 0x2c, 0xaa, 0x22, 0x6e, 0xdf, 0x82, 0xd6, 0x21, 0x43, 0x78, 0x6a,
-	0x35, 0xfd, 0x80, 0x9a, 0x4b, 0x16, 0x7b, 0x89, 0x59, 0x15, 0xb4, 0x7d, 0x1b, 0xfc, 0x7a, 0x61,
-	0xfb, 0x7c, 0x24, 0xb0, 0x47, 0x4a, 0x14, 0xd6, 0x90, 0xe5, 0x0a, 0x1b, 0xc3, 0x3a, 0xde, 0x31,
-	0xcc, 0xf7, 0xf5, 0x17, 0xf3, 0x9c, 0xe7, 0x33, 0x02, 0xf2, 0x9f, 0x4f, 0xcb, 0x68, 0xa7, 0x14,
-	0x56, 0x6c, 0xb4, 0x63, 0x82, 0x85, 0x7b, 0x86, 0x36, 0x0b, 0xd3, 0x8a, 0x40, 0x15, 0x64, 0xab,
-	0x34, 0x1b, 0x6d, 0x91, 0x95, 0xea, 0x25, 0x6d, 0x15, 0x1a, 0xdb, 0x3d, 0xdd, 0x28, 0x49, 0x4a,
-	0xae, 0x9a, 0x12, 0xbd, 0xa0, 0x93, 0x78, 0xf8, 0xb2, 0x93, 0xbc, 0x46, 0xe6, 0x37, 0xe5, 0x06,
-	0xac, 0xeb, 0x37, 0x86, 0x15, 0xa3, 0xb0, 0xcb, 0xb5, 0x59, 0xe4, 0x21, 0xb1, 0x5b, 0x5b, 0xa5,
-	0x59, 0xbb, 0x5a, 0x46, 0x3e, 0x1d, 0xf3, 0xc2, 0x84, 0x53, 0x53, 0xbe, 0x7d, 0x0b, 0xda, 0xae,
-	0x96, 0xd5, 0x44, 0xc3, 0xd8, 0xc9, 0x5d, 0xad, 0x1b, 0x6c, 0xfe, 0x6a, 0xcd, 0xc0, 0x75, 0xd4,
-	0xbf, 0x2b, 0xd0, 0x34, 0xba, 0x1e, 0x91, 0xcc, 0xbf, 0x22, 0x5d, 0xc2, 0x49, 0xe0, 0x91, 0xc0,
-	0xa5, 0x44, 0xa2, 0x6f, 0x8b, 0x1c, 0xce, 0x30, 0x52, 0x89, 0x7c, 0xf7, 0x49, 0x76, 0x92, 0xa3,
-	0x53, 0xa8, 0x19, 0xc2, 0x2c, 0xc9, 0x46, 0x91, 0xa7, 0xe9, 0x8e, 0x6c, 0x96, 0x45, 0x25, 0x47,
-	0xbf, 0x41, 0xd5, 0x08, 0xf5, 0x86, 0xac, 0x17, 0x99, 0xda, 0x05, 0x69, 0x95, 0x03, 0x25, 0x7f,
-	0xb7, 0xfd, 0x71, 0x6b, 0x44, 0xc3, 0xb3, 0xcb, 0xa1, 0x42, 0x76, 0x8c, 0x89, 0xfd, 0xb9, 0xed,
-	0xfa, 0x74, 0x47, 0x70, 0x37, 0xfe, 0x67, 0xc4, 0x70, 0x5e, 0xff, 0xbd, 0xff, 0xf5, 0xff, 0x01,
-	0x00, 0x00, 0xff, 0xff, 0x05, 0x1a, 0xb0, 0x56, 0xa8, 0x10, 0x00, 0x00,
+	// 948 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x97, 0xdd, 0x52, 0x1b, 0x37,
+	0x14, 0xc7, 0xb3, 0x24, 0x05, 0x7c, 0x0c, 0x24, 0x51, 0x9c, 0xe0, 0xf1, 0x95, 0xb3, 0x69, 0x8a,
+	0x81, 0x62, 0x28, 0xed, 0xb4, 0x17, 0x9d, 0x5e, 0x90, 0xd0, 0x0b, 0xd2, 0x74, 0xc8, 0x2c, 0x85,
+	0xe9, 0xe4, 0xc6, 0x95, 0x77, 0x15, 0xd0, 0xb0, 0xac, 0x14, 0x69, 0xa1, 0xf5, 0x55, 0x9f, 0xa0,
+	0x2f, 0xd4, 0x17, 0xe9, 0xeb, 0x74, 0xa4, 0x95, 0xe4, 0x35, 0x78, 0x3f, 0x1c, 0xc8, 0x15, 0xec,
+	0x39, 0xbf, 0xf3, 0x3f, 0xab, 0xf3, 0x21, 0xdb, 0xb0, 0x1a, 0xb2, 0x8b, 0x0b, 0x9c, 0x44, 0x72,
+	0xdb, 0xfe, 0xd3, 0xe7, 0x82, 0xa5, 0x0c, 0xad, 0x86, 0x61, 0x1f, 0x8b, 0xe8, 0x92, 0x26, 0xac,
+	0x1f, 0xc6, 0xb4, 0x6f, 0xdd, 0x9d, 0xa7, 0x13, 0x11, 0x2c, 0xc9, 0xf8, 0x4e, 0xcb, 0x99, 0x87,
+	0x0c, 0x8b, 0xc8, 0x58, 0x9f, 0xe5, 0x61, 0x4e, 0x63, 0x62, 0xec, 0x4f, 0x72, 0x76, 0x61, 0x8d,
+	0x63, 0xe5, 0x4b, 0x1e, 0x33, 0x6c, 0x35, 0x90, 0x33, 0xc7, 0x74, 0x98, 0xd9, 0xfc, 0x1f, 0x61,
+	0xe1, 0x20, 0xa1, 0x69, 0x40, 0x3e, 0xa2, 0x1d, 0x68, 0xc5, 0x74, 0x28, 0xb0, 0x18, 0x0d, 0x2e,
+	0x70, 0x82, 0x4f, 0x89, 0x18, 0xb0, 0x24, 0x1e, 0xb5, 0xe7, 0xba, 0x5e, 0x6f, 0x31, 0x40, 0xc6,
+	0xf7, 0x6b, 0xe6, 0x3a, 0x4c, 0xe2, 0x91, 0xff, 0xdf, 0x1c, 0x2c, 0x66, 0xd1, 0x92, 0xa3, 0x9f,
+	0x60, 0x91, 0x26, 0x32, 0xc5, 0x49, 0x48, 0xda, 0x5e, 0xd7, 0xeb, 0x35, 0x77, 0x9f, 0xf7, 0x0b,
+	0x8e, 0xde, 0x3f, 0x30, 0x60, 0xe0, 0x42, 0xd0, 0x77, 0xf0, 0x8c, 0xc7, 0x38, 0xfd, 0xc0, 0xc4,
+	0x85, 0x1c, 0xd0, 0x24, 0x22, 0x7f, 0x0d, 0x88, 0x10, 0x4c, 0xc8, 0xf6, 0x5c, 0xf7, 0x7e, 0xaf,
+	0x11, 0xb4, 0x9c, 0xf7, 0x40, 0x39, 0x7f, 0xd6, 0x3e, 0xb4, 0x0b, 0x4f, 0xb3, 0xf7, 0xa2, 0x64,
+	0x22, 0xaa, 0x7d, 0xbf, 0xeb, 0xf5, 0x1a, 0xc1, 0x13, 0xe7, 0x1c, 0x07, 0xa1, 0x13, 0x78, 0x1c,
+	0xb1, 0x3f, 0x13, 0x55, 0x98, 0x01, 0x17, 0xec, 0x54, 0x10, 0x29, 0xdb, 0x0f, 0xf4, 0x1b, 0xaf,
+	0x17, 0xbe, 0xf1, 0xbe, 0x89, 0x78, 0x67, 0x02, 0x82, 0x47, 0xd1, 0x35, 0x0b, 0x7a, 0x03, 0xcb,
+	0x29, 0x96, 0xe7, 0x63, 0xcd, 0x2f, 0xb4, 0xe6, 0xcb, 0x42, 0xcd, 0xdf, 0xb0, 0x3c, 0x77, 0x7a,
+	0x4b, 0x69, 0xee, 0xc9, 0xff, 0x05, 0x60, 0x9f, 0xc8, 0x54, 0xb0, 0x91, 0xea, 0xcc, 0xed, 0x4a,
+	0xeb, 0x2f, 0x43, 0xd3, 0x89, 0x49, 0xee, 0xbf, 0x81, 0x46, 0x40, 0x64, 0x88, 0x93, 0x3b, 0x90,
+	0xbe, 0x02, 0xb0, 0x5a, 0x92, 0x97, 0xf4, 0xd0, 0xfb, 0x94, 0x1e, 0xce, 0x15, 0xf6, 0xd0, 0x3f,
+	0x84, 0x95, 0x63, 0x1e, 0xe1, 0x94, 0x68, 0xdb, 0x1d, 0x1c, 0x84, 0xc2, 0xc3, 0x09, 0x41, 0xc9,
+	0xa7, 0xcf, 0x89, 0x77, 0xeb, 0x39, 0xf1, 0x7f, 0x87, 0xd5, 0x2c, 0xd5, 0xdb, 0x89, 0x83, 0xdd,
+	0xc1, 0x21, 0x04, 0xb4, 0xa7, 0x2b, 0x7f, 0xc6, 0xd3, 0x2c, 0x01, 0x9c, 0x10, 0x21, 0x29, 0x53,
+	0xe3, 0xe4, 0xaf, 0x41, 0xd3, 0x3d, 0x49, 0x8e, 0xda, 0xb0, 0x70, 0x95, 0x3d, 0xea, 0x54, 0x8d,
+	0xc0, 0x3e, 0xee, 0xfe, 0xdb, 0x82, 0xe6, 0x5e, 0x96, 0xf2, 0x35, 0x13, 0x04, 0x1d, 0xc2, 0x03,
+	0x75, 0x93, 0xa0, 0x6e, 0xc9, 0x79, 0xf5, 0x35, 0xd5, 0x79, 0x5e, 0x41, 0x48, 0xee, 0xdf, 0xdb,
+	0xf1, 0xd0, 0x09, 0x2c, 0x98, 0xa1, 0x47, 0x2f, 0x8a, 0xcf, 0xe7, 0x76, 0xac, 0xf3, 0x65, 0x35,
+	0xa4, 0x94, 0xd1, 0x11, 0xcc, 0x67, 0x13, 0x8f, 0xfc, 0xc2, 0x08, 0xb7, 0x5e, 0x9d, 0x17, 0x95,
+	0x8c, 0x16, 0x8d, 0xa0, 0x99, 0x9b, 0x3e, 0xb4, 0x56, 0x18, 0x35, 0x39, 0xf4, 0x9d, 0x5e, 0x3d,
+	0xd0, 0x94, 0xe4, 0x6f, 0x68, 0x4d, 0x1b, 0x0f, 0xb4, 0x53, 0xa1, 0x72, 0x63, 0x4e, 0x3b, 0xdf,
+	0xcc, 0x18, 0x31, 0xee, 0x89, 0x99, 0x8e, 0x92, 0x9e, 0x8c, 0xa7, 0xa9, 0xa4, 0x27, 0xb9, 0x21,
+	0xf3, 0xef, 0xa1, 0x10, 0x96, 0x5e, 0xa9, 0xcf, 0xca, 0x7d, 0x92, 0x62, 0x1a, 0x4b, 0x54, 0x5c,
+	0x96, 0x3c, 0xa6, 0x32, 0xac, 0xd7, 0x24, 0x25, 0x47, 0x43, 0x68, 0x6a, 0xdb, 0x5e, 0x9a, 0xe2,
+	0xf0, 0xac, 0xa4, 0x47, 0x39, 0xaa, 0xbc, 0x47, 0x13, 0xa0, 0xe4, 0x3b, 0x1e, 0x7a, 0x0f, 0x0d,
+	0x6d, 0x7c, 0x4b, 0x65, 0x8a, 0x5e, 0x96, 0x07, 0x2a, 0x46, 0xe9, 0x7f, 0x55, 0x07, 0x93, 0xdc,
+	0x15, 0x49, 0x19, 0xf6, 0xe2, 0xb8, 0xaa, 0x48, 0x06, 0xab, 0x51, 0x24, 0x47, 0xea, 0x5b, 0x66,
+	0xe1, 0x75, 0xf6, 0xfd, 0xa4, 0xa4, 0xc3, 0x86, 0x28, 0xef, 0xb0, 0x83, 0x74, 0x61, 0x12, 0x78,
+	0xf8, 0xce, 0x7c, 0x76, 0xe8, 0x7b, 0x2f, 0x8e, 0xd1, 0x66, 0x61, 0xe8, 0x35, 0x52, 0xe5, 0xf9,
+	0xba, 0x3e, 0xac, 0xf3, 0x7d, 0x84, 0x47, 0xd6, 0x61, 0xef, 0x40, 0x54, 0xad, 0x61, 0x51, 0x95,
+	0x71, 0x6b, 0x06, 0x5a, 0xa7, 0x4c, 0xe1, 0xb1, 0xf5, 0x1c, 0x27, 0xd4, 0x1c, 0xb2, 0x5a, 0xc5,
+	0xb1, 0x2a, 0x69, 0x7f, 0x16, 0xfc, 0x7a, 0x61, 0x8f, 0xf9, 0xa9, 0xc0, 0x11, 0xa9, 0x51, 0x58,
+	0x43, 0xd6, 0x2b, 0xac, 0x83, 0x75, 0xbe, 0x23, 0x98, 0x3f, 0xd6, 0xdf, 0x49, 0x4b, 0xae, 0xcf,
+	0x0c, 0x28, 0xbf, 0x3e, 0x2d, 0xa3, 0x45, 0x29, 0xac, 0xd8, 0x6c, 0x47, 0x04, 0x8b, 0xf0, 0x0c,
+	0x6d, 0x54, 0xbe, 0x56, 0x06, 0xaa, 0x24, 0x9b, 0xb5, 0xd9, 0x6c, 0x8b, 0xac, 0x55, 0x2f, 0x69,
+	0xaf, 0x32, 0xd8, 0xee, 0xe9, 0x7a, 0x4d, 0x52, 0x72, 0xd5, 0x94, 0xec, 0x06, 0x1d, 0xb9, 0xe1,
+	0x2b, 0x7e, 0xc9, 0x6b, 0x64, 0x79, 0x53, 0x6e, 0xc0, 0xba, 0x7e, 0xe7, 0xb0, 0x62, 0x1c, 0x76,
+	0xb9, 0x36, 0xaa, 0x14, 0x72, 0xbb, 0xb5, 0x59, 0x9b, 0xb5, 0xab, 0x65, 0xec, 0xe3, 0x31, 0xaf,
+	0x7c, 0xe1, 0x89, 0x29, 0xdf, 0x9a, 0x81, 0xb6, 0xab, 0x65, 0x3d, 0xd9, 0x30, 0xee, 0x95, 0xae,
+	0xd6, 0x0d, 0xb6, 0x7c, 0xb5, 0xa6, 0xe0, 0x3a, 0xeb, 0x3f, 0x1e, 0x74, 0x8c, 0x2f, 0x20, 0x92,
+	0xc5, 0x57, 0x64, 0x9f, 0x70, 0x92, 0x44, 0x24, 0x09, 0x29, 0x91, 0xe8, 0xfb, 0x2a, 0xc1, 0x29,
+	0x41, 0xea, 0x45, 0x7e, 0xf8, 0xa4, 0x38, 0xc9, 0xd1, 0x07, 0x58, 0x36, 0x84, 0x59, 0x92, 0xf5,
+	0x2a, 0xa5, 0xf1, 0x8e, 0x6c, 0xd4, 0x45, 0x25, 0x47, 0x7f, 0x40, 0xd3, 0x18, 0xf5, 0x86, 0xac,
+	0x55, 0x85, 0xda, 0x05, 0xe9, 0xd5, 0x03, 0x25, 0x7f, 0xb5, 0xf5, 0x7e, 0xf3, 0x94, 0xa6, 0x67,
+	0x97, 0x43, 0x85, 0x6c, 0x9b, 0x10, 0xfb, 0x77, 0x2b, 0x8c, 0xe9, 0xb6, 0xe0, 0xa1, 0xfb, 0x1d,
+	0x3e, 0x9c, 0xd7, 0x3f, 0x75, 0xbf, 0xfd, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xd5, 0xf5, 0x48, 0xa1,
+	0xa3, 0x0f, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1318,86 +1230,6 @@ type ArduinoCoreServer interface {
 	LibraryList(context.Context, *LibraryListReq) (*LibraryListResp, error)
 }
 
-// UnimplementedArduinoCoreServer can be embedded to have forward compatible implementations.
-type UnimplementedArduinoCoreServer struct {
-}
-
-func (*UnimplementedArduinoCoreServer) Init(req *InitReq, srv ArduinoCore_InitServer) error {
-	return status.Errorf(codes.Unimplemented, "method Init not implemented")
-}
-func (*UnimplementedArduinoCoreServer) Destroy(ctx context.Context, req *DestroyReq) (*DestroyResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Destroy not implemented")
-}
-func (*UnimplementedArduinoCoreServer) Rescan(ctx context.Context, req *RescanReq) (*RescanResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Rescan not implemented")
-}
-func (*UnimplementedArduinoCoreServer) UpdateIndex(req *UpdateIndexReq, srv ArduinoCore_UpdateIndexServer) error {
-	return status.Errorf(codes.Unimplemented, "method UpdateIndex not implemented")
-}
-func (*UnimplementedArduinoCoreServer) UpdateLibrariesIndex(req *UpdateLibrariesIndexReq, srv ArduinoCore_UpdateLibrariesIndexServer) error {
-	return status.Errorf(codes.Unimplemented, "method UpdateLibrariesIndex not implemented")
-}
-func (*UnimplementedArduinoCoreServer) Version(ctx context.Context, req *VersionReq) (*VersionResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
-}
-func (*UnimplementedArduinoCoreServer) BoardDetails(ctx context.Context, req *BoardDetailsReq) (*BoardDetailsResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method BoardDetails not implemented")
-}
-func (*UnimplementedArduinoCoreServer) BoardAttach(req *BoardAttachReq, srv ArduinoCore_BoardAttachServer) error {
-	return status.Errorf(codes.Unimplemented, "method BoardAttach not implemented")
-}
-func (*UnimplementedArduinoCoreServer) BoardList(ctx context.Context, req *BoardListReq) (*BoardListResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method BoardList not implemented")
-}
-func (*UnimplementedArduinoCoreServer) BoardListAll(ctx context.Context, req *BoardListAllReq) (*BoardListAllResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method BoardListAll not implemented")
-}
-func (*UnimplementedArduinoCoreServer) Compile(req *CompileReq, srv ArduinoCore_CompileServer) error {
-	return status.Errorf(codes.Unimplemented, "method Compile not implemented")
-}
-func (*UnimplementedArduinoCoreServer) PlatformInstall(req *PlatformInstallReq, srv ArduinoCore_PlatformInstallServer) error {
-	return status.Errorf(codes.Unimplemented, "method PlatformInstall not implemented")
-}
-func (*UnimplementedArduinoCoreServer) PlatformDownload(req *PlatformDownloadReq, srv ArduinoCore_PlatformDownloadServer) error {
-	return status.Errorf(codes.Unimplemented, "method PlatformDownload not implemented")
-}
-func (*UnimplementedArduinoCoreServer) PlatformUninstall(req *PlatformUninstallReq, srv ArduinoCore_PlatformUninstallServer) error {
-	return status.Errorf(codes.Unimplemented, "method PlatformUninstall not implemented")
-}
-func (*UnimplementedArduinoCoreServer) PlatformUpgrade(req *PlatformUpgradeReq, srv ArduinoCore_PlatformUpgradeServer) error {
-	return status.Errorf(codes.Unimplemented, "method PlatformUpgrade not implemented")
-}
-func (*UnimplementedArduinoCoreServer) Upload(req *UploadReq, srv ArduinoCore_UploadServer) error {
-	return status.Errorf(codes.Unimplemented, "method Upload not implemented")
-}
-func (*UnimplementedArduinoCoreServer) PlatformSearch(ctx context.Context, req *PlatformSearchReq) (*PlatformSearchResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PlatformSearch not implemented")
-}
-func (*UnimplementedArduinoCoreServer) PlatformList(ctx context.Context, req *PlatformListReq) (*PlatformListResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PlatformList not implemented")
-}
-func (*UnimplementedArduinoCoreServer) LibraryDownload(req *LibraryDownloadReq, srv ArduinoCore_LibraryDownloadServer) error {
-	return status.Errorf(codes.Unimplemented, "method LibraryDownload not implemented")
-}
-func (*UnimplementedArduinoCoreServer) LibraryInstall(req *LibraryInstallReq, srv ArduinoCore_LibraryInstallServer) error {
-	return status.Errorf(codes.Unimplemented, "method LibraryInstall not implemented")
-}
-func (*UnimplementedArduinoCoreServer) LibraryUninstall(req *LibraryUninstallReq, srv ArduinoCore_LibraryUninstallServer) error {
-	return status.Errorf(codes.Unimplemented, "method LibraryUninstall not implemented")
-}
-func (*UnimplementedArduinoCoreServer) LibraryUpgradeAll(req *LibraryUpgradeAllReq, srv ArduinoCore_LibraryUpgradeAllServer) error {
-	return status.Errorf(codes.Unimplemented, "method LibraryUpgradeAll not implemented")
-}
-func (*UnimplementedArduinoCoreServer) LibraryResolveDependencies(ctx context.Context, req *LibraryResolveDependenciesReq) (*LibraryResolveDependenciesResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method LibraryResolveDependencies not implemented")
-}
-func (*UnimplementedArduinoCoreServer) LibrarySearch(ctx context.Context, req *LibrarySearchReq) (*LibrarySearchResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method LibrarySearch not implemented")
-}
-func (*UnimplementedArduinoCoreServer) LibraryList(ctx context.Context, req *LibraryListReq) (*LibraryListResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method LibraryList not implemented")
-}
-
 func RegisterArduinoCoreServer(s *grpc.Server, srv ArduinoCoreServer) {
 	s.RegisterService(&_ArduinoCore_serviceDesc, srv)
 }
diff --git a/rpc/commands/commands.proto b/rpc/commands/commands.proto
index 5ac10861b0c..ecc761eb87a 100644
--- a/rpc/commands/commands.proto
+++ b/rpc/commands/commands.proto
@@ -91,17 +91,7 @@ service ArduinoCore {
   rpc LibraryList(LibraryListReq) returns (LibraryListResp);
 }
 
-// DEPRECATED
-// Configuration is deprecated, use the Settings Service instead
-message Configuration {
-  string dataDir = 1;
-  string sketchbookDir = 2;
-  string downloadsDir = 3;
-  repeated string boardManagerAdditionalUrls = 4;
-}
-
 message InitReq {
-  Configuration configuration = 1; // DEPRECATED this field will be ignored
   bool library_manager_only = 2;
 }
 
diff --git a/rpc/monitor/monitor.pb.go b/rpc/monitor/monitor.pb.go
index 641ef31de7d..78238c1565a 100644
--- a/rpc/monitor/monitor.pb.go
+++ b/rpc/monitor/monitor.pb.go
@@ -9,8 +9,6 @@ import (
 	proto "github.com/golang/protobuf/proto"
 	_struct "github.com/golang/protobuf/ptypes/struct"
 	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
 	math "math"
 )
 
@@ -325,14 +323,6 @@ type MonitorServer interface {
 	StreamingOpen(Monitor_StreamingOpenServer) error
 }
 
-// UnimplementedMonitorServer can be embedded to have forward compatible implementations.
-type UnimplementedMonitorServer struct {
-}
-
-func (*UnimplementedMonitorServer) StreamingOpen(srv Monitor_StreamingOpenServer) error {
-	return status.Errorf(codes.Unimplemented, "method StreamingOpen not implemented")
-}
-
 func RegisterMonitorServer(s *grpc.Server, srv MonitorServer) {
 	s.RegisterService(&_Monitor_serviceDesc, srv)
 }
diff --git a/rpc/settings/settings.pb.go b/rpc/settings/settings.pb.go
index 73f9ff1c2ce..1bbc54f255d 100644
--- a/rpc/settings/settings.pb.go
+++ b/rpc/settings/settings.pb.go
@@ -8,8 +8,6 @@ import (
 	fmt "fmt"
 	proto "github.com/golang/protobuf/proto"
 	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
 	math "math"
 )
 
@@ -345,23 +343,6 @@ type SettingsServer interface {
 	SetValue(context.Context, *Value) (*SetValueResponse, error)
 }
 
-// UnimplementedSettingsServer can be embedded to have forward compatible implementations.
-type UnimplementedSettingsServer struct {
-}
-
-func (*UnimplementedSettingsServer) GetAll(ctx context.Context, req *GetAllRequest) (*RawData, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetAll not implemented")
-}
-func (*UnimplementedSettingsServer) Merge(ctx context.Context, req *RawData) (*MergeResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Merge not implemented")
-}
-func (*UnimplementedSettingsServer) GetValue(ctx context.Context, req *GetValueRequest) (*Value, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetValue not implemented")
-}
-func (*UnimplementedSettingsServer) SetValue(ctx context.Context, req *Value) (*SetValueResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetValue not implemented")
-}
-
 func RegisterSettingsServer(s *grpc.Server, srv SettingsServer) {
 	s.RegisterService(&_Settings_serviceDesc, srv)
 }