bcvi - Back-channel vi, a shell utility to proxy commands back over ssh


  bcvi [options] [<files>]



This utility works with SSH to allow commands issued on the SSH server host to be 'proxied' back to the SSH client host. For example:

  • user sally establishes an SSH connection from her workstation to a server named pluto and runs the command bcvi .bashrc

  • bcvi tunnels the details back to sally's workstation which then invokes the command gvim scp://pluto//home/sally/.bashrc

  • the result is that sally gets a responsive GUI editor running on her local machine, but editing a file on the remote machine

See perldoc App::BCVI for more examples and background information.



The following commands can be passed back to the listener process.


You'll need to start a listener process on your workstation (perhaps from your window manager session startup).

  bcvi -l &

To install the bcvi client to a remote machine:

  bcvi --install <hostname>

To ssh to a server with tunnelling enabled:

  bcvi --wrap-ssh -- hostname

To enable bcvi on all ssh connections:

  alias ssh="bcvi --wrap-ssh --"

On a target server, you'll need to unpack the overloaded TERM variable:

  test -n "$(which bcvi)" && eval "$(bcvi --unpack-term)"

To use vi over the back-channel:

  bcvi filename

The installation to a remote server should set up aliases, e.g.:

  test -n "${BCVI_CONF}"  && alias vi="bcvi"
  test -n "${BCVI_CONF}"  && alias bcp="bcvi -c scpd"



Copyright 2007-2012 Grant McLean <>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.