diff --git a/aws-lambda-java-runtime-interface-client/Dockerfile.rie b/aws-lambda-java-runtime-interface-client/Dockerfile.rie
new file mode 100644
index 000000000..66a01c834
--- /dev/null
+++ b/aws-lambda-java-runtime-interface-client/Dockerfile.rie
@@ -0,0 +1,8 @@
+FROM public.ecr.aws/lambda/java:21
+
+COPY target/aws-lambda-java-runtime-interface-client-*.jar ${LAMBDA_TASK_ROOT}/
+COPY target/aws-lambda-java-core-*.jar ${LAMBDA_TASK_ROOT}/
+COPY target/aws-lambda-java-serialization-*.jar ${LAMBDA_TASK_ROOT}/
+COPY test-handlers/EchoHandler.class ${LAMBDA_TASK_ROOT}/
+
+CMD ["EchoHandler::handleRequest"]
\ No newline at end of file
diff --git a/aws-lambda-java-runtime-interface-client/Makefile b/aws-lambda-java-runtime-interface-client/Makefile
index b3a204213..6c3a268fb 100644
--- a/aws-lambda-java-runtime-interface-client/Makefile
+++ b/aws-lambda-java-runtime-interface-client/Makefile
@@ -65,6 +65,10 @@ publish:
test-publish:
./ric-dev-environment/test-platform-specific-jar-snapshot.sh
+.PHONY: test-rie
+test-rie:
+ ./scripts/test-rie.sh "EchoHandler::handleRequest"
+
define HELP_MESSAGE
Usage: $ make [TARGETS]
@@ -74,5 +78,5 @@ TARGETS
dev Run all development tests after a change.
pr Perform all checks before submitting a Pull Request.
test Run the Unit tests.
-
+ test-rie Build and test RIC locally with Lambda Runtime Interface Emulator. (Requires building the project first)
endef
diff --git a/aws-lambda-java-runtime-interface-client/README.md b/aws-lambda-java-runtime-interface-client/README.md
index d49201bd5..67a5972d6 100644
--- a/aws-lambda-java-runtime-interface-client/README.md
+++ b/aws-lambda-java-runtime-interface-client/README.md
@@ -138,6 +138,49 @@ This command invokes the function running in the container image and returns a r
*Alternately, you can also include RIE as a part of your base image. See the AWS documentation on how to [Build RIE into your base image](https://docs.aws.amazon.com/lambda/latest/dg/images-test.html#images-test-alternative).*
+### Automated Local Testing
+
+For developers working on this runtime interface client, we provide an automated testing script that handles RIE setup, dependency management, and Docker orchestration.
+
+*Prerequisites:*
+- Build the project first: `mvn clean install`
+- Docker must be installed and running
+
+*To run automated tests:*
+
+```shell script
+make test-rie
+```
+
+This single command will:
+- Automatically download required dependencies (aws-lambda-java-core, aws-lambda-java-serialization)
+- Build a Docker image with RIE pre-installed
+- Compile and run a test Lambda function (EchoHandler)
+- Execute the function and validate the response
+- Clean up containers automatically
+
+The test uses a simple EchoHandler that returns the input event, making it easy to verify the runtime interface client is working correctly.
+
+## Test Coverage
+
+This project uses JaCoCo for code coverage analysis. To exclude classes from JaCoCo coverage, add them to the `jacoco-maven-plugin` configuration:
+
+```xml
+
+ org.jacoco
+ jacoco-maven-plugin
+
+
+ **/*Exception.class
+ **/dto/*.class
+ **/YourClassName.class
+
+
+
+```
+
+This project excludes by default: exceptions, interfaces, DTOs, constants, and runtime-only classes.
+
### Troubleshooting
While running integration tests, you might encounter the Docker Hub rate limit error with the following body:
diff --git a/aws-lambda-java-runtime-interface-client/pom.xml b/aws-lambda-java-runtime-interface-client/pom.xml
index 979f4b7ba..84c6d816c 100644
--- a/aws-lambda-java-runtime-interface-client/pom.xml
+++ b/aws-lambda-java-runtime-interface-client/pom.xml
@@ -214,6 +214,24 @@
org.jacoco
jacoco-maven-plugin
${jacoco.maven.plugin.version}
+
+
+
+ **/*Exception.class
+
+ **/Resource.class
+
+ **/dto/*.class
+
+ **/ReservedRuntimeEnvironmentVariables.class
+ **/RapidErrorType.class
+
+ **/FrameType.class
+ **/StructuredLogMessage.class
+
+ **/AWSLambda.class
+
+
default-prepare-agent
diff --git a/aws-lambda-java-runtime-interface-client/scripts/test-rie.sh b/aws-lambda-java-runtime-interface-client/scripts/test-rie.sh
new file mode 100755
index 000000000..b69c967a1
--- /dev/null
+++ b/aws-lambda-java-runtime-interface-client/scripts/test-rie.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
+SERIALIZATION_ROOT="$(dirname "$PROJECT_ROOT")/aws-lambda-java-serialization"
+
+if ! ls "$PROJECT_ROOT"/target/aws-lambda-java-runtime-interface-client-*.jar >/dev/null 2>&1; then
+ echo "RIC jar not found. Please build the project first with 'mvn package'."
+ exit 1
+fi
+
+IMAGE_TAG="java-ric-rie-test"
+
+HANDLER="${1:-EchoHandler::handleRequest}"
+
+echo "Starting RIE test setup for Java..."
+
+# Build local dependencies if not present
+CORE_ROOT="$(dirname "$PROJECT_ROOT")/aws-lambda-java-core"
+if ! ls "$PROJECT_ROOT"/target/aws-lambda-java-core-*.jar >/dev/null 2>&1; then
+ echo "Building local aws-lambda-java-core..."
+ (cd "$CORE_ROOT" && mvn package -DskipTests)
+ cp "$CORE_ROOT"/target/aws-lambda-java-core-*.jar "$PROJECT_ROOT/target/"
+fi
+
+if ! ls "$PROJECT_ROOT"/target/aws-lambda-java-serialization-*.jar >/dev/null 2>&1; then
+ echo "Building local aws-lambda-java-serialization..."
+ (cd "$SERIALIZATION_ROOT" && mvn package -DskipTests)
+ cp "$SERIALIZATION_ROOT"/target/aws-lambda-java-serialization-*.jar "$PROJECT_ROOT/target/"
+fi
+
+echo "Compiling EchoHandler..."
+javac -source 21 -target 21 -cp "$(ls "$PROJECT_ROOT"/target/aws-lambda-java-runtime-interface-client-*.jar):$(ls "$PROJECT_ROOT"/target/aws-lambda-java-core-*.jar):$(ls "$PROJECT_ROOT"/target/aws-lambda-java-serialization-*.jar)" \
+ -d "$PROJECT_ROOT/test-handlers/" "$PROJECT_ROOT/test-handlers/EchoHandler.java"
+
+echo "Building test Docker image..."
+docker build -t "$IMAGE_TAG" -f "$PROJECT_ROOT/Dockerfile.rie" "$PROJECT_ROOT"
+
+echo "Starting test container on port 9000..."
+echo ""
+echo "In another terminal, invoke with:"
+echo "curl -s -X POST -H 'Content-Type: application/json' \"http://localhost:9000/2015-03-31/functions/function/invocations\" -d '{\"message\":\"test\"}'"
+echo ""
+
+exec docker run -it -p 9000:8080 -e _HANDLER="$HANDLER" "$IMAGE_TAG"
\ No newline at end of file
diff --git a/aws-lambda-java-runtime-interface-client/test-handlers/EchoHandler.java b/aws-lambda-java-runtime-interface-client/test-handlers/EchoHandler.java
new file mode 100644
index 000000000..cb324e7f7
--- /dev/null
+++ b/aws-lambda-java-runtime-interface-client/test-handlers/EchoHandler.java
@@ -0,0 +1,20 @@
+import com.amazonaws.services.lambda.runtime.Context;
+import com.amazonaws.services.lambda.runtime.RequestHandler;
+import java.util.Map;
+import java.util.HashMap;
+
+public class EchoHandler implements RequestHandler