| Crates.io | te-cli |
| lib.rs | te-cli |
| version | 0.1.3 |
| created_at | 2025-11-28 16:58:49.652413+00 |
| updated_at | 2026-01-11 01:01:51.596439+00 |
| description | Interactive TUI wrapper for CLI commands - Your helping hand for command-line interfaces |
| homepage | |
| repository | https://github.com/yusukeshib/te |
| max_upload_size | |
| id | 1955733 |
| size | 144,351 |
Your helping hand for editing terminal commands
te (Japanese: 手, "hand") is an interactive TUI tool that makes editing commands much easier by separating navigation and editing into two distinct modes. Perfect for tweaking long commands from your shell history or current command line.
Editing long commands in the terminal buffer is frustrating:
# You have this command in your terminal (maybe from history)
kubectl get pods -l app=asset -o custom-columns='POD:.metadata.name,RS:.metadata.ownerReferences[0].name' -w
# Want to change "asset" to "frontend"?
# - Arrow key through the entire line character by character
# - Easy to accidentally delete quotes, commas, or other syntax
# - Hard to see where you are in a long command
te gives you a two-mode interface inspired by vim:
Simply prefix your command with te:
te kubectl get pods -l app=asset -o custom-columns='POD:.metadata.name,RS:.metadata.ownerReferences[0].name' -w
te will:
Clear separation between navigation and editing, inspired by modal editors:
Breaks commands into logical pieces:
--flag or -f)Works with any CLI command. te simply parses your command string - no special support needed from the tool.
te focuses on helping you build the right command:
brew tap yusukeshib/tap
brew install te
cargo install te-cli
Download from GitHub Releases:
# macOS (Apple Silicon)
curl -L https://github.com/yusukeshib/te/releases/latest/download/te-aarch64-apple-darwin.tar.gz | tar xz
sudo mv te /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/yusukeshib/te/releases/latest/download/te-x86_64-apple-darwin.tar.gz | tar xz
sudo mv te /usr/local/bin/
# Linux (x64)
curl -L https://github.com/yusukeshib/te/releases/latest/download/te-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv te /usr/local/bin/
# Linux (ARM64)
curl -L https://github.com/yusukeshib/te/releases/latest/download/te-aarch64-unknown-linux-gnu.tar.gz | tar xz
sudo mv te /usr/local/bin/
git clone https://github.com/yusukeshib/te
cd te
cargo install --path .
Enable shell integration to unlock te's full power, including direct command execution.
Zsh (~/.zshrc):
eval "$(te init zsh)"
Bash (~/.bashrc or ~/.bash_profile):
eval "$(te init bash)"
Fish (~/.config/fish/config.fish):
te init fish | source
With shell integration you get:
te-run function - Execute commands directly and add them to historyCtrl+T keybinding to invoke te on your current command lineUsage with shell integration:
# Use te-run to execute commands
te-run kubectl get pods -l app=myapp
# In Zsh: Type a command and press Ctrl+T to edit it interactively
kubectl get pods -l app=myapp # Press Ctrl+T here
Simply prefix your existing command with te:
# Edit a kubectl command
te kubectl get pods -l app=myapp -o json
# Edit a docker command
te docker run -d -p 8080:80 --name myapp -e ENV=prod nginx
# Edit an ffmpeg command
te ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
# Edit the last command from history
te !!
Navigation Mode (default):
↑/↓ or j/k: Move between command componentsEnter: Switch to Edit Mode for the selected component1-9, then letters: Jump directly to a component by its displayed shortcut keyi: Insert new component before currenta: Append new component after currentd or Delete or Backspace: Delete selected componentu or Ctrl+Z: UndoCtrl+R or Ctrl+Y: RedoG or End: Jump to last componentHome: Jump to first componentCtrl+X or Ctrl+Enter: Confirm and output the final commandq or Esc: Exit without outputtingEdit Mode (when editing a component):
Enter: Save changes and return to Navigation ModeEsc: Cancel changes and return to Navigation ModeShift+Enter or Ctrl+J: Insert newline (for multi-line editing)Ctrl+X or Ctrl+Enter: Save and output the final commandte breaks your command into components (base command, flags, values)↑/↓ to jump between components instantlyEnter to edit a componentCtrl+X to output the final commandte-run), the command runs automatically and is added to historyte takes a unique approach to command editing:
| Tool | Scope | Key Feature |
|---|---|---|
| Terminal default | Any | Character-by-character editing |
AWS CLI --cli-auto-prompt |
AWS only | Interactive prompts with AWS-specific knowledge |
kube-prompt |
kubectl only | REPL with kubectl auto-completion |
trogon |
Click/Typer apps | Auto-generated forms from Python code |
te |
Any CLI tool | Modal editing: Navigate by component, not by character |
In Japanese, 手 (te) means "hand" - representing:
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE for details
Built with:
Star ⭐ this repo if you find it useful!