diff --git a/scripts/larvatagger.sh b/scripts/larvatagger.sh
index 1156bf286f39d80bad05b9c373aa119b5a009c4c..f3921852dbb230e0bd94e4ac7947187c8de4240f 100755
--- a/scripts/larvatagger.sh
+++ b/scripts/larvatagger.sh
@@ -204,8 +204,14 @@ eval $DOCKER_RUN
 
 	predict)
 
+if [ "$(basename "$(dirname "$1")")" = "**" ]; then
+parentdir=$(cd "$(dirname "$(dirname "$1")")"; pwd -P)
+data_file=$(basename "$(dirname "$1")")/$(basename "$1")
+else
 parentdir=$(cd "$(dirname "$1")"; pwd -P)
-data_file=$(basename "$1"); shift
+data_file=$(basename "$1")
+fi
+shift
 
 RUN_ARGS="$RUN_ARGS -v \"$parentdir\":/data"
 
diff --git a/src/cli_toolkit.jl b/src/cli_toolkit.jl
index 371d4a44047ef962d056504d6820deacfa061f54..82a00be34159ba3519c59d0131a40f663ff5c5b0 100644
--- a/src/cli_toolkit.jl
+++ b/src/cli_toolkit.jl
@@ -3,7 +3,7 @@ module Toolkit
 using DocOpt
 using Pkg
 using OrderedCollections
-using PlanarLarvae, PlanarLarvae.Datasets, PlanarLarvae.Formats
+using PlanarLarvae, PlanarLarvae.Datasets, PlanarLarvae.Formats, PlanarLarvae.Dataloaders
 
 include("Taggers.jl")
 using .Taggers
@@ -191,10 +191,14 @@ function main(args=ARGS; exit_on_error=true)
             if endswith(datapath, ".txt")
                 # assume that the file lists paths to data files to be processed;
                 # in this case, the path to the txt file is not relevant
+                @info "The listed data file paths are expected to be relative to current directory" cwd=pwd()
                 pwd()
             else
                 dirname(datapath)
             end
+        elseif occursin("*", datapath)
+            repository = Dataloaders.Repository(datapath)
+            repository.root
         else
             datapath
         end