Temporal Client Local Cluster import io.temporal.client.WorkflowClient; import io.temporal.serviceclient.WorkflowServiceStubs; // other code omitted for brevity WorkflowServiceStubs service = WorkflowServiceStubs.newLocalServiceStubs(); WorkflowClient client = WorkflowClient.newInstance(service); Non-local Cluster import io.temporal.serviceclient.WorkflowServiceStubs; import io.temporal.serviceclient.WorkflowServiceStubsOptions; import io.temporal.client.WorkflowClient; // other code omitted for brevity WorkflowServiceStubsOptions stubsOptions = new WorkflowServiceStubsOptions.newBuilder() .setTarget("mycluster.example.com:7233") .build(); WorkflowServiceStubs service = WorkflowServiceStubs.newServiceStubs(stubsOptions); WorkflowClientOptions options = WorkflowClientOptions.newBuilder() .setNamespace("operations") .build(); WorkflowClient client = WorkflowClient.newInstance(service, options); With TLS: import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext; import io.temporal.serviceclient.SimpleSslContextBuilder; import io.temporal.serviceclient.WorkflowServiceStubs; import io.temporal.serviceclient.WorkflowServiceStubsOptions; import io.temporal.client.WorkflowClient; import io.temporal.client.WorkflowClientOptions; import java.io.FileInputStream; import java.io.InputStream; // other code omitted for brevity // Step 1: create the SimpleSslContext String clientCertPath = "/home/myuser/tls/certificate.pem"; InputStream clientCert = new FileInputStream(clientCertPath); String clientCertPrivateKeyPath = "/home/myuser/tls/private.key"; InputStream clientCertPrivateKey = new FileInputStream(clientCertPrivateKeyPath); SslContext sslContext = SimpleSslContextBuilder.forPKCS8(clientCert, clientCertPrivateKey).build(); // Step 2: create the WorkflowServiceStubsOptions WorkflowServiceStubsOptions stubOptions = WorkflowServiceStubsOptions.newBuilder() .setSslContext(sslContext) .setTarget("mycluster.example.com:7233") .build(); // Step 3: create the WorkflowServiceStubs using the SimpleSslContext WorkflowServiceStubs service = WorkflowServiceStubs.newServiceStubs(stubOptions); // Step 4: create the WorkflowClientOptions (this example uses a non-default Namespace) WorkflowClientOptions options = WorkflowClientOptions.newBuilder() .setNamespace("operations") .build(); // Step 5: Use the stubs and options to create the WorkflowClient WorkflowClient client = WorkflowClient.newInstance(service, options); In command line: $ temporal workflow list \ --address mycluster.example.com:7233 \ --namespace operations $ # With TLS $ temporal workflow list \ --address mycluster.example.com:7233 \ --namespace operations \ --tls-cert-path /home/myuser/tls/certificate.pem \ --tls-key-path /home/myuser/tls/private.key