---
feature_story: FS_57_36_37_48
feature_title: multiple clients coexistence
feature_status: TEST
---

# Idea

There should be a way to source multiple `@/exe/shell_env.bash` configuring
different commands via different client installations (likely for different servers)
and be able to use union of all commands at the same time.

At user level, the feature is similar to FS_65_22_23_82 redirect per command - see comparison there.

For example:
*   `ar_configured_command_a` is auto-completed by `/path/to/argrelay/with/client_a`
*   `ar_configured_command_b` is auto-completed by `/path/to/argrelay/with/client_b`

# Implementation

This is achieve-able by invoking `@/exe/run_argrelay_client` via its full path
instead of only its base name (`run_argrelay_client`).

# Limitation: only `@/exe/shell_env.bash`, not `@/exe/dev_shell.bash`

*   `@/exe/shell_env.bash` is `source`-able and does not start new shell
*   `@/exe/dev_shell.bash` starts new shell (forgetting all non-`export`-ed vars)

Ideally, the wish was to make it also work via nesting `@/exe/dev_shell.bash` from different installations
(not only via `source`-ing `@/exe/shell_env.bash`).

To make the feature work for `Alt+Shift+Q`, a map is used (see `argrelay_basename_to_client_path_map`).
But maps in Bash are not `export`-able and cannot be used
to communicate from (outer) `@/exe/dev_shell.bash` to nested (inner) `@/exe/dev_shell.bash`.

Current workaround is to use `@/conf/dev_shell_env.bash` (see FS_58_61_77_69 `dev_shell`), for example:
```
source /path/to/argrelay/with/client_x/exe/shell_env.bash
source /path/to/argrelay/with/client_y/exe/shell_env.bash
```
This has to be configured manually per `argrelay` installation where extra command are required.
