2
3
Fork
You've already forked telepipe
0
Run command-line apps smoothly
  • Lua 91.9%
  • C 5.5%
  • Makefile 2.6%
2026年05月06日 13:40:20 -04:00
data Adds the ability to send commands to background 2026年01月30日 14:16:25 -05:00
docs docs: Update crosslinks to main branch 2026年05月06日 13:40:20 -04:00
icons Add app icon 2026年01月13日 12:43:33 -05:00
po po: add pt_BR translations 2026年03月16日 18:52:11 -03:00
.gitignore Adds the ability to automatically enter filenames 2026年02月04日 12:46:10 -05:00
ca.vtrlx.Telepipe.desktop po: add pt_BR translations 2026年03月16日 18:52:11 -03:00
ca.vtrlx.Telepipe.Devel.desktop po: add pt_BR translations 2026年03月16日 18:52:11 -03:00
ca.vtrlx.Telepipe.Devel.json flatpak: Switch to GNOME 50 platform/runtime 2026年03月20日 09:24:21 -04:00
ca.vtrlx.Telepipe.metainfo.xml 1.2 2026年03月25日 12:48:52 -04:00
COPYING Add documentation 2026年01月08日 14:23:11 -05:00
Makefile 1.2 2026年03月25日 12:48:52 -04:00
README.md Update links for Codeberg 2026年04月02日 16:55:45 -04:00
telepipe.c telepipe: Don't hardcode PREFIX 2026年02月28日 07:36:10 -05:00
telepipe.lua telepipe: Do everything possible to prevent backgrounded apps from outputting 2026年05月01日 16:41:54 -04:00
telepipe.png Updates README preview image 2026年02月03日 15:12:38 -05:00

Get it on Flathub

telepipe screenshot

Telepipe

Run command-line apps smoothly.

About

Telepipe is a graphical command-line shell for GNOME. Telepipe offers the ability to run command-line applications using modern text editing conventions, such as using the mouse to move your cursor when entering a command, or dragging-and-dropping text selections from the command output window back into the command entry or out to other programs.

Despite appearances, Telepipe is not a terminal. This means that TUI apps will not work in this app, but most text-mode command-line programs should work without issue. Instead of thinking of it as an interface to a command-line shell, you should consider Telepipe itself to be your shell. For adjusting to its peculiarities as well as making good use of certain programs, see the list of tips and tricks for using Telepipe.

Telepipe's name is a portmanteau of teletypewriter (or teletype), a device which in this context allows its user to run a command-line shell from a physical typewriter, and pipe, a common command-line feature on UNIX and UNIX-like systems which allows the output of one command to be used as the input of another commnand. Pipelines are an especially powerful way to leverage command-line applications for advanced text processing, and Telepipe's core feature for facilitating their use is clipboard redirection, which allows commands to easily read from and write to the system clipboard.

Installing

The recommended way to install Telepipe is through Flathub.

Alternatively, Telepipe can be built and installed locally from source.

Building

Telepipe is built using Flatpak and targets version 49 of the GNOME platform. With Flatpak installed and Flathub enabled as a source, ensure the platform and SDK are installed to your system:

flatpak --user install org.gnome.Platform//49 org.gnome.Sdk//49

To build and install the development version of Telepipe from source, use Flatpak Builder. Clone this repository, navigate to it in a command-line shell, then run:

flatpak-builder build ca.vtrlx.Telepipe.Devel.json --user --install --force-clean

After installing, run Telepipe either from your system's app menu or using the command flatpak run ca.vtrlx.Telepipe.Devel.

Features

Clipboard redirection: Commands run in Telepipe can use the current clipboard contents as their input by prefixing with >, they can automatically copy their output to the clipboard by prefixing with <, or they can do both by prefixing with |.

More information—including examples—is available in the documentation page for clipboard redirection.

Command prefixes: It is possible to explicitly set text (called a "prefix") which will be prepended to all subsequent commands until deactivated. Prefixes can be used to easily access remote systems without using subshells as well as avoid straining one's hands through repetitive typing.

Detailed explanations and examples on the usage of prefixes can be found in the documentation page for prefixes.

Output editing: The command output section is a full text editor. This allows you to make notes, amend output for further execution, or quickly erase sections of command output which are no longer needed. Selections from the terminal output can even be dragged-and-dropped down into the command entry for use as parameters to subsequent commands.

Visual command history: Each of Telepipe's tabs keeps its own history, shown as a list from a menu button to the right of the command entry (visible only when there is a command history). From here, commands may be removed from history, or be copied back into the command entry to be rerun or amended.

Anti-Features

Telepipe is not intended to replicate existing terminal emulators; It was designed from the ground up to provide a way to interact with command-line software that works better with modern user experience conventions. Many features common to terminal emulators and command-line shells are explicitly excluded in Telepipe because they are not needed. Examples include:

  • Tab completion
  • Output colorizing
  • Monospace text
  • Job control
  • Support for TUI applications (vim, emacs, less, top)
  • Shell prompts (unless explicitly running an interactive shell)

Contributing

This project accepts bug reports and pull requests at its Codeberg repository. Please only open an issue for behaviour which you yourself have observed; do not spam it with unverified claims. Likewise when submitting a pull request, please only submit code which you yourself have written.

Contributions to this project will not be accepted if they are found to contain any changes, in whole or in part, by any product branded as "AI", any LLM, any software "agent", or any other machine learning model. Machine leaning models include, but are not limited to: ChatGPT, Copilot, Claude, Ollama, and any other generative application. If a contribution is found to have been generated in whole or in part by a machine learning model, no further contributions from the same contributor will be accepted. Contributions are accepted at the sole discretion of this project's maintainer. There is no process to appeal the decision to reject a contribution, nor is there a process to appeal the decision to reject a contributor.

If you are experiencing any difficulty with understanding this project's code without the use of the aforementioned machine learning models, it is recommended to instead get in contact with the maintainer by sending an email to victoria AT vtrlx DOT ca with a subject line indicating you'd like assistance understanding this project's internals.

Localization

Telepipe uses gettext for localization. These instructions assume you have it installed on your system.

To create a message file for your desired language, execute this command in a terminal from Telepipe's root folder:

make po/<LANG>.po

<LANG> should be replaced by the two-letter language code for the language you're translating the app to, optionally followed by an underscore _ character and a two-letter country code in ALL-CAPS i.e. fr for French or fr_CA for Canadian French.

This command creates a file in the po/ folder named <LANG>.po.

Next, edit the <LANG>.po file and add your translated strings. I recommend using Translation Editor for this.

The last strings to localize are for the ca.vtrlx.Telepipe.desktop and ca.vtrlx.Telepipe.Devel.desktop files. Add new lines for the Comment, Keywords, and (if applicable) Name keys in all sections of both files. Be sure to keep the translated lines in alphabetical order with respect to the language codes.

Once finished, try running Telepipe in your language using the testing instructions above. If all the strings appear to have been translated, commit your finished <LANG>.po file to Git, push the commit to a branch under your control, and submit a pull request on Codeberg.

Updating a Localization

If the application is updated and the translation needs to be changed, again run this command in the project's root folder:

make po/<LANG>.po

This will update the given .po file with the new translatable strings. The updated .po file for your language may then be modified, committed, and put into a pull request as usual.

License

Telepipe is free software distributed under the terms of the GNU General Public License version 3 or later. See COPYING for more information.