diff --git a/rfs-client/Cargo.toml b/rfs-client/Cargo.toml
index b45730a..fb1dada 100644
--- a/rfs-client/Cargo.toml
+++ b/rfs-client/Cargo.toml
@@ -19,3 +19,8 @@ serde_json.workspace = true
log.workspace = true
bytes.workspace = true
futures.workspace = true
+rhai.workspace = true
+lazy_static.workspace = true
+
+[dev-dependencies]
+tempfile = "3.0"
diff --git a/rfs-client/src/lib.rs b/rfs-client/src/lib.rs
index b9c0b52..ac3a91b 100644
--- a/rfs-client/src/lib.rs
+++ b/rfs-client/src/lib.rs
@@ -4,9 +4,13 @@
pub mod client;
pub mod error;
pub mod types;
+pub mod rhai;
pub use client::RfsClient;
pub use error::RfsError;
// Re-export types from the OpenAPI client that are commonly used
pub use openapi::models;
+
+// Re-export Rhai module
+pub use rhai::register_rfs_module;
diff --git a/rfs-client/src/rhai.rs b/rfs-client/src/rhai.rs
new file mode 100644
index 0000000..fd686ba
--- /dev/null
+++ b/rfs-client/src/rhai.rs
@@ -0,0 +1,1166 @@
+//! Rhai wrappers for RFS client module functions
+//!
+//! This module provides Rhai wrappers for the functions in the RFS client module.
+
+use crate::client::RfsClient;
+use crate::types::{ClientConfig, Credentials, DownloadOptions, UploadOptions, WaitOptions};
+use crate::RfsError;
+use lazy_static::lazy_static;
+use rhai::{Dynamic, Engine, EvalAltResult, Map};
+use serde_json::Value;
+use std::sync::{Arc, Mutex};
+use tokio::runtime::Runtime;
+
+// Global RFS client and runtime management
+lazy_static! {
+ static ref RFS_CLIENT: Mutex