diff --git a/src/main.rs b/src/main.rs
index 8181e06ce7d9d5ce456d04b095d172f57c2977ad..f82057a99d6dcf4a90ffdeb9d9e658fcc59dc514 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -339,6 +339,12 @@ struct Push {
 struct Pull {
     /// The name of the remote to use
     key: String,
+    /// The name of the archive to pull
+    archive: Option<String>,
+    /// An option indicating to download all archive not already present
+    /// in .borg folder
+    #[clap(short, long, takes_value = false)]
+    all: bool,
 }
 
 #[derive(Debug, Args)]
@@ -446,9 +452,8 @@ fn main() {
             mount::umount_archive(true);
             push::push(&p.key, &p.archive, &p.compression);
         }
-        Commands::Pull(_) => {
-            // pull::pull(&p.key);
-            eprintln!("function disabled");
+        Commands::Pull(p) => {
+            pull::pull(&p.key, &p.archive, p.all);
         }
         Commands::Clean => {
             clean::clean();