Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Use your local text editor to edit files on remote servers.
Ruby
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib
test
.gitignore
Gemfile
Gemfile.lock
Guardfile
MIT-LICENSE
Rakefile
readme.md
text_tunnel.gemspec

readme.md

Text Tunnel

Text Tunnel is a tool to edit remote files with a local editor.

How It Works

The text_tunneld server runs on the local host. Using SSH, a reverse port forward is established on the remote host connecting back to the server. The text_tunnel client runs on the remote machine and is used as the editor binary. When the client is told to edit a file it sends the file to the server, and the server loads it in the local editor. The client polls the server for changes and downloads them whenever they occur.

Installation

The text_tunnel gem needs to be installed on both the local and remote hosts. Ruby 1.9.2+ required.

gem install text_tunnel

Usage

Start the server on the local machine. If you don't have an EDITOR environment variable set you will need to include an --editor option.

text_tunneld -e /usr/local/bin/subl

Connect to the remote host with SSH and specify a reverse port forward (the default port for Text Tunnel is 1777).

ssh -R 1777:localhost:1777 remote-host

On the remote machine use text_tunnel as your editor.

text_tunnel /path/to/file

The file should open on your local machine. Do your edits and save your file. It will automatically be transferred to the remote host. When you are done hit Crtl+C on the remote host to terminate Text Tunnel.

Shortcuts

The reverse port forward can be configured in ~/.ssh/config to avoid having to retype the reverse port forward on the command line every time.

RemoteForward 127.0.0.1:1777 127.0.0.1:1777

Consider setting text_tunnel as your EDITOR environment variable on your remote hosts. This will let you use a local text editor for git commit messages, crontabs, etc. If the text_tunneld server is unavailable it will seamlessly fall back to vi. You can use the --fallback-editor option to configure the fallback console editor.

export EDITOR='/usr/local/bin/text_tunnel --fallback-editor=nano'

text_tunneld supports a background daemon mode. Run text_tunneld -h for full options. You may want to configure it to run automatically when you log in to your desktop environment. Sadly, the exact means of doing this vary across platforms. On Ubuntu 12.04 with the Gnome Classic desktop environment you can configure a program to autostart in Applications -> System Tools -> Preferences -> Startup Applications. The following command would start text_tunneld in background mode with the "subl" editor.

text_tunneld --editor subl --daemon

Version History

  • 0.2.0
    • Unblock INT signal for bin/text_tunnel. This allows usage with crontab -e.
    • Fall back to local editor if text_tunneld server is unreachable.
    • Added information to readme about autostarting on desktop login.
  • 0.1.1
    • Add compatibility with older patch versions of Ruby 1.9.2.
  • 0.1.0
    • Initial release

License

Copyright (c) 2012 Jack Christensen, released under the MIT license

Something went wrong with that request. Please try again.