To make transitioning from vtctlclient to vtctldclient easier, both binaries provide shim mechanisms to run commands with each other's CLI syntaxes (and backing RPC interfaces).
Let's take each in turn.
The new client provides a top-level command to run commands over the legacy vtctlclient interface.
This is useful to be able to use the new client "everywhere" but still be able to use functionality from the old client that has not been migrated yet (e.g. Reshard).
$ vtctldclient --server ":15999" LegacyVtctlCommand -- Reshard show <keyspace.workflow_name>
You can also use this to transition a command in two phases, for example:
Conversely, the old client also provides a top-level command to run commands over the new vtctldclient interface.
This is useful to migrate your scripts over before necessarily deploying the new, separate binary everywhere.