diff --git a/utils/runtime-fuzzer/Cargo.toml b/utils/runtime-fuzzer/Cargo.toml
index 0c145193e63..410ab54b0f9 100644
--- a/utils/runtime-fuzzer/Cargo.toml
+++ b/utils/runtime-fuzzer/Cargo.toml
@@ -4,6 +4,10 @@ version = "0.1.0"
authors.workspace = true
edition.workspace = true
+[[bin]]
+name = "run_corpus"
+path = "bin/run_corpus.rs"
+
[dependencies]
anyhow.workspace = true
arbitrary.workspace = true
diff --git a/utils/runtime-fuzzer/bin/run_corpus.rs b/utils/runtime-fuzzer/bin/run_corpus.rs
new file mode 100644
index 00000000000..db65e69fae7
--- /dev/null
+++ b/utils/runtime-fuzzer/bin/run_corpus.rs
@@ -0,0 +1,54 @@
+// This file is part of Gear.
+
+// Copyright (C) 2021-2023 Gear Technologies Inc.
+// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
+
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+//! Runs provided from the cli corpus
+
+//! Just simply run `cargo run -- -p `.
+
+use anyhow::Result;
+use arbitrary::{Arbitrary, Unstructured};
+use std::{
+ fs,
+ path::PathBuf,
+};
+use runtime_fuzzer::{GearCalls, self};
+use clap::Parser;
+
+/// A simple tool to run corpus.
+#[derive(Debug, Parser)]
+#[command(author, version, about, long_about = None)]
+struct Params {
+ /// Path to the file, which contains corpus.
+ #[arg(short, long)]
+ pub path: PathBuf,
+}
+
+fn main() -> Result<()> {
+ let params = Params::parse();
+
+ let corpus_bytes = fs::read(params.path)?;
+
+ gear_utils::init_default_logger();
+
+ let mut unstructured = Unstructured::new(&corpus_bytes);
+ let gear_calls = GearCalls::arbitrary(&mut unstructured)?;
+
+ runtime_fuzzer::run(gear_calls);
+
+ Ok(())
+}