diff --git a/examples/python/client/BUILD.bazel b/examples/python/client/BUILD.bazel
new file mode 100644
index 0000000..dc5c34c
--- /dev/null
+++ b/examples/python/client/BUILD.bazel
@@ -0,0 +1,12 @@
+load("@aspect_rules_py//py:defs.bzl", "py_binary")
+
+py_binary(
+    name = "client",
+    srcs = ["__main__.py"],
+    main = "__main__.py",
+    deps = [
+        "//proto:greeter_py_grpc",
+        "@pypi//grpcio",
+        "@pypi//protobuf",
+    ],
+)
diff --git a/examples/python/client/__main__.py b/examples/python/client/__main__.py
new file mode 100644
index 0000000..bd2b644
--- /dev/null
+++ b/examples/python/client/__main__.py
@@ -0,0 +1,36 @@
+import logging
+
+import grpc
+from proto import greeter_pb2
+from proto.greeter_pb2_grpc import GreeterStub
+from google.protobuf.any_pb2 import Any
+
+
+def run():
+    # Create a channel to connect to the server
+    with grpc.insecure_channel('[::1]:5042') as channel:
+        # Create a stub (client)
+        stub = GreeterStub(channel)
+
+        # Create a detail message using Any
+        detail = Any()
+        detail.type_url = "type.googleapis.com/mypackage.MyMessage"
+        detail.value = b"details"
+
+        # Create the request
+        request = greeter_pb2.HelloRequest(
+            name="Python Client",
+            details=[detail]
+        )
+
+        # Make the call
+        try:
+            response = stub.SayHello(request)
+            print(f"Response: {response.message}")
+        except grpc.RpcError as e:
+            print(f"RPC failed: {e}")
+
+
+if __name__ == "__main__":
+    logging.basicConfig()
+    run()
\ No newline at end of file
