diff --git a/CMakeLists.txt b/CMakeLists.txt
index 847d606..696e4a0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,6 +49,7 @@
 add_subdirectory(test/test-platform)
 add_subdirectory(test/test-fixed-point-parameter)
 
+add_subdirectory(tools/bash_completion)
 add_subdirectory(tools/xmlGenerator)
 add_subdirectory(tools/xmlValidator)
 
diff --git a/tools/bash_completion/CMakeLists.txt b/tools/bash_completion/CMakeLists.txt
new file mode 100644
index 0000000..9e66d57
--- /dev/null
+++ b/tools/bash_completion/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Copyright (c) 2014, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+INSTALL(FILES remote-process
+        DESTINATION etc/bash_completion.d/)
diff --git a/tools/bash_completion/remote-process b/tools/bash_completion/remote-process
new file mode 100644
index 0000000..c1b55bf
--- /dev/null
+++ b/tools/bash_completion/remote-process
@@ -0,0 +1,131 @@
+# Copyright (c) 2014, Intel Corporation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification,
+# are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# bash completion for remote-process
+#
+# Execute this file in bash with the built-in command "source",
+# it will add autocompletion to remote-process.
+#
+# To permanently add this autocompletion, add "source this_file"
+# in your .bashrc or copy this file in /etc/bash_completion.d/
+
+function _remote-process ()
+{
+    # Get current word
+    local cur prev words cword;
+    _init_completion || return;
+
+    local options=""
+    if [ $cword -eq 1 ]
+    then # Completing the hostname
+        _known_hosts_real "$cur"; return
+    elif [ $cword -eq 2 ] # Completing tcp port
+    then
+        options='5000 5001 5008 5009 5019';
+    else
+        _remoteProcessWrapper () {
+            "${words[0]}" "${words[1]}" "${words[2]}" "$@" |sed 's#\r##;/^$/d'
+        }
+
+        # Get usage
+        local _parameterHelp=$(_remoteProcessWrapper help)
+
+        if [ $cword -eq 3 ]
+        then # Completing command
+            options=$(echo "$_parameterHelp" | awk '{print $1}')
+        else # Completing command argument
+            local command=${words[3]}
+
+            # Get current command argument types
+            # - keep in the help text only the line describing current command
+            # - delete => and posterior
+            # - replace space in balisa (<...>) by underscore then delete [<>]
+            local argumentTypes=$( echo "$_parameterHelp" | grep "$command"  |\
+                 sed -e 's# *=>.*##' -e 's#^[^ ]* *##' \
+                     -e 's/> />#/g' -e 's# #_#g' -e 's/>#/> /g' -e 's#[<>]##g' )
+
+            local currentArgumentType=$(echo $argumentTypes |
+                                          awk '{print $('$cword'-3)}')
+
+            # Take care of argument list type if it is the last argument
+            # Ex : setElementSequence <domain> <configuration> <elem path list>
+            if [ "$currentArgumentType" = "" ] &&
+                 expr "$argumentTypes" : '.*list' > /dev/null ;
+            then
+                # Set last argument type specified as the current type
+                currentArgumentType=$(echo "$argumentTypes" | awk '{print $NF}')
+            fi
+
+
+            case "${currentArgumentType}" in
+                elem_path*|param_path* )
+                    local incompletPath=$(echo "${cur}" | sed 's#[^/]*$##')
+
+                    local parameterCommand
+                    if [ "$currentArgumentType" = elem_path_list ];
+                    then
+                        # <elem path list> is the parameter path list
+                        #  of the domain specified by the second argument
+                        parameterCommand="listDomainElements ${words[4]}"
+                    else
+                        # Otherwise suggest all parameter paths
+                        parameterCommand="listParameters"
+                    fi
+                    # Get paths and delete everything after the first "/"
+                    # following the current input (see complete -o filenames)
+                    local options=$(_remoteProcessWrapper $parameterCommand ${incompletPath:-/} |
+                                    sed -re "s#(/?${incompletPath}[^/ ]*/?).*#\1#")
+                    compopt -o filenames
+
+                    # If some options are folders, do not append a space
+                    test "$(echo "$options" | sed '/[^/]$/d')" && compopt -o nospace
+                ;;
+                domain)
+                    # Get all domain names
+                    options=$(_remoteProcessWrapper listDomains | awk '{print $1}')
+                ;;
+                configuration)
+                    # Get all configurations of the domain specified by
+                    # the second argument.
+                    # TODO: find the domain position using $argumentTypes
+                    options=$(_remoteProcessWrapper listConfigurations "${words[4]}")
+                ;;
+                *\|*)
+                    # Possible arguments are separated by "|". Ex : on|off
+                    options=$(echo $currentArgumentType | sed -e 's#|# #g' -e 's#\*##g')
+                ;;
+                file_path)
+                    _filedir;
+                ;;
+            esac
+        fi
+    fi
+    COMPREPLY+=( $(compgen -W "$options" -- "$cur") )
+
+    unset _remoteProcessWrapper
+} && complete  -F _remote-process remote-process
