Sputnik enables you to connect to CloudKit from within your Go package or application using CloudKit's Server-to-Server Web Service API. Sputnik handles request signing for you and offers ways to interact with CloudKit directly from the CLI.
Sputnik manages the most cumbersome part of CloudKit communication - the signing of your requests. For more information on signing have a look in the Managing the Signing Identity section of the Wiki.
You can use Sputnik either from the command line or as a package. For more information about requests have a look in the Sending Requests section of the Wiki.
Baikonur uses Sputnik to insert city records into a CloudKit container:
keyManager := keymanager.New()
config := requesthandling.RequestConfig{Version: "1", ContainerID: "iCloud.com.some.bundle", Database: "public"}
requestManager := requesthandling.New(config, &keyManager)
request, error := requestManager.PostRequest("modify", json)
client := &http.Client{}
response, error := client.Do(request)
Please try this package and see how it works for you. Feedback and contributions are welcome <3