npx skills add https://github.com/ggprompts/tfe --skill bubbleteaInstala esta habilidad con la CLI y comienza a usar el flujo de trabajo SKILL.md en tu espacio de trabajo.
A powerful and clean terminal-based file explorer built with Go and Bubbletea. TFE combines traditional file management with modern features like dual-pane preview, syntax highlighting, and an integrated AI prompts library. Works beautifully on desktop and mobile (Termux) with full touch support.
.obsidian/ config display 🧠 brain emoji instead of folder iconFull walkthrough: navigation, dual-pane mode, fuzzy search, prompts library, and real-world usage with pyradio

Clean file browser with Detail view, toolbar buttons, and command prompt

TFE with light color scheme for different terminal preferences

Split-screen with syntax-highlighted preview and line numbers

Hierarchical folder navigation with expandable directories

Right-click menu with file operations and Quick CD

AI prompt templates with fillable fields and variable substitution

Blazing fast file search using external fzf + fd/find
TFE stands out from other terminal file managers with unique features designed for modern AI-assisted workflows:
| Feature | TFE | ranger | nnn | lf | yazi | Midnight Commander |
|---|---|---|---|---|---|---|
| Language | Go | Python | C | Go | Rust | C |
| AI Prompts Library | ✅ Unique! | ❌ | ❌ | ❌ | ❌ | ❌ |
| Fillable Field Templates | ✅ Unique! | ❌ | ❌ | ❌ | ❌ | ❌ |
| Mobile/Termux Tested | ✅ Fully tested | Partial | ✅ | Partial | ⚠️ | Partial |
| Touch Controls | ✅ Full support | Limited | Limited | Limited | Limited | Limited |
| Context-Aware F1 Help | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Dual-Pane Preview | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Syntax Highlighting | ✅ (Chroma) | ✅ | ✅ | ❌ | ✅ | ✅ |
| Fuzzy Search | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Tree View | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
| Trash/Recycle Bin | ✅ | ❌ | ⚠️ Plugin | ❌ | ❌ | ❌ |
| Quick CD (Shell Integration) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Image Viewing (TUI) | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| Markdown Preview | ✅ (Glamour) | ✅ | ❌ | ❌ | ✅ | ❌ |
| Git Status Indicators | ✅ Unique! | ❌ | ❌ | ❌ | ❌ | ❌ |
| Git Operations | ✅ (Pull/Push/Sync) | ❌ | ❌ | ❌ | ❌ | ❌ |
| Context Menu | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| Mouse Support | ✅ Full | Limited | ❌ | ❌ | ✅ | ✅ |
| F-Key Shortcuts | ✅ MC-style | Custom | Custom | Custom | Custom | ✅ |
| Command Prompt | ✅ Always visible | : command |
! shell |
: command |
: command |
✅ |
| Favorites/Bookmarks | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| External Editor | ✅ Auto-detect | ✅ Config | ✅ Config | ✅ Config | ✅ Config | ✅ Config |
🤖 AI Prompts Library - The only terminal file manager with an integrated prompt template system designed for AI workflows. Manage prompt templates, fill variables interactively, and copy rendered prompts with F5.
📱 Mobile-First Design - Extensively tested on Termux/Android with full touch controls (tap, double-tap, long-press). Other file managers have partial mobile support, but TFE is built with mobile as a first-class platform.
📝 Fillable Field Templates - Interactive variable substitution with smart type detection (file paths, dates, custom inputs). No other file manager has this feature.
🗑️ Trash/Recycle Bin - Safe, reversible deletion with restore functionality. Most file managers permanently delete files.
🎯 Context-Aware Help - F1 intelligently jumps to the help section that matches your current context (dual-pane, preview, prompts mode, etc.).
🖱️ Full Mouse & Touch Support - Click toolbar buttons, right-click for context menu, double-click navigation, column sorting - works like a GUI but in your terminal.
TFE combines the power of traditional file managers with modern features designed for AI-assisted development workflows, making it perfect for developers using Claude Code, GitHub Copilot, or other AI tools.
npm install @xterm/addon-unicode11sudo apt install fzfbrew install fzfpkg install fzfsudo apt install fd-find (command is fdfind on Ubuntu/Debian)brew install fdpkg install fdfind command if not installedtermux-api for clipboard support: pkg install termux-apiTFE works great without these, but install them for additional features:
For HD Image Previews (Inline in Preview Pane):
For Image Viewing (External Viewers - Press V key):
# Install via cargo (Rust package manager)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
cargo install viu
# Termux
pkg install rust
cargo install viu
# Ubuntu/Debian
sudo apt install timg
# Ubuntu/Debian
sudo apt install chafa
# Termux
pkg install chafa
For Image Editing:
# Ubuntu/Debian (requires system dependencies)
sudo apt install -y python3-dev libjpeg-dev zlib1g-dev libtiff-dev libfreetype6-dev liblcms2-dev libwebp-dev
pipx install textual-paint
# Or via pip
pip3 install --user textual-paint
# Termux
pkg install python-pillow
pip install textual-paint
Notes:
For File Type Viewers (F4 Smart Opening):
# Ubuntu/Debian
sudo apt install visidata
# Or via pip
pip3 install visidata
# Termux
pip install visidata
# Ubuntu/Debian
sudo apt install mpv
# Termux
pkg install mpv
# Ubuntu/Debian (via cargo)
cargo install hexyl
# Or download binary from https://github.com/sharkdp/hexyl/releases
pip3 install harlequin
For Text Editing:
# Ubuntu/Debian
sudo apt install micro
# Or via go
go install github.com/zyedidia/micro/cmd/micro@latest
# Termux
pkg install micro
Note: TFE auto-detects available editors: micro > nano > vim > viFor Tools Menu (Optional TUI Applications):
# Ubuntu/Debian
sudo apt install lazygit
# Termux
pkg install lazygit
# Ubuntu/Debian
sudo apt install htop
# Termux
pkg install htop
# Ubuntu/Debian
sudo apt install bottom
# Termux
pkg install bottom
pip3 install pyradio
# Ubuntu/Debian
sudo apt install lnav
# Termux
pkg install lnav
Notes:
💡 Need help installing? Ask Claude or your AI assistant: "Help me install TFE from https://github.com/GGPrompts/TFE on [your OS]"
One-line installation with Quick CD feature:
curl -sSL https://raw.githubusercontent.com/GGPrompts/TFE/main/install.sh | bash
This script will:
go install~/.config/tfe/After installation:
source ~/.bashrc # or source ~/.zshrc
tfe # Launch TFE with Quick CD enabled
Uninstall:
curl -sSL https://raw.githubusercontent.com/GGPrompts/TFE/main/uninstall.sh | bash
✅ What you get:
tfe command - launch from anywhereInstall globally using Go:
go install github.com/GGPrompts/tfe@latest
This installs the tfe binary to ~/go/bin/ (or $GOPATH/bin). Make sure this directory is in your PATH:
# Add to ~/.bashrc or ~/.zshrc if not already present
export PATH=$PATH:~/go/bin
Usage:
tfe # Launch from any directory
✅ What you get:
tfe command - launch from anywherego install github.com/GGPrompts/tfe@latest❌ What's missing:
For users who want the source code or want to customize TFE:
git clone https://github.com/GGPrompts/tfe.git
cd tfe
go build -o tfe
# Add wrapper to your shell config
echo 'source ~/tfe/tfe-wrapper.sh' >> ~/.bashrc
# For zsh users:
echo 'source ~/tfe/tfe-wrapper.sh' >> ~/.zshrc
# Reload your shell
source ~/.bashrc # or source ~/.zshrc
The wrapper automatically finds the binary in the same directory. If you move it, edit tfe-wrapper.sh and adjust the path.
Usage:
tfe # Launch from any directory with Quick CD support
✅ What you get:
tfe command - launch from anywhereChoose Option 1 (Automated Install) if you:
Choose Option 2 (Manual Go Install) if you:
Choose Option 3 (Clone & Build) if you:
Note: You can always start with Option 2 and upgrade to Option 1 later if you want Quick CD!
If you're embedding TFE in a web-based terminal using xterm.js (e.g., VS Code terminal, web IDEs, custom terminal apps), you'll need to install the Unicode11 addon for proper emoji rendering. Without it, emoji alignment will be off by 1 space per emoji.
xterm.js by default renders emojis inconsistently:
Install and configure the @xterm/addon-unicode11 addon:
1. Install the addon:
npm install @xterm/addon-unicode11
2. Load the addon in your terminal code:
import { Terminal } from '@xterm/xterm';
import { Unicode11Addon } from '@xterm/addon-unicode11';
// After creating your terminal instance
const term = new Terminal(options);
// Load Unicode11 addon
const unicode11Addon = new Unicode11Addon();
term.loadAddon(unicode11Addon);
term.unicode.activeVersion = '11'; // Use Unicode 11 for consistent emoji width
3. Result:
The Unicode11 addon provides Unicode 11 width tables that make East Asian Width properties consistent. All emojis render as fullwidth (2 cells), matching modern terminal emulator standards and TFE's expectations.
If you cannot install the addon, you can filter the WT_SESSION environment variable before spawning the PTY, and TFE will detect as xterm with narrow emoji compensation. However, this is less reliable and requires custom TFE builds.
Resources:
TFE supports command-line arguments for integration with other tools and scripts:
# Basic usage
tfe # Open current directory
tfe ~/projects # Open specific directory
tfe ~/projects/main.go # Open directory with file selected
tfe --preview src/app.ts # Open with file selected and preview pane focused
# All options
tfe [options] [path]
Options:
--preview, -p Auto-open preview pane (useful with file path)
--light Use light theme (for light terminal backgrounds)
--dark Use dark theme (default)
--version, -v Show version information
--help, -h Show help message
Integration Examples:
# Launch TFE from another tool showing a specific file
tmux split-window "tfe --preview /path/to/file.go"
# Open with preview pane focused (60% width for file content)
tfe --preview ~/projects/README.md
# Scripting: open directory containing a file
tfe "$(dirname /path/to/file.txt)"
| Key | Action |
|---|---|
F1 |
Show context-aware help (automatically jumps to relevant section based on current mode) |
F2 |
Open context menu for current file |
F3 |
View/Preview file in full-screen |
F4 |
Edit file in external editor |
F5 |
Copy file path to clipboard (or prompt in F11 mode) |
F6 |
Toggle favorites filter |
F7 |
Create directory |
F8 |
Delete file/folder |
F9 |
Cycle through display modes |
F10 |
Quit application |
F11 |
Toggle Prompts Library mode |
F12 |
Navigate to Trash/Recycle Bin (auto-exits on navigation) |
| Key | Action |
|---|---|
↑ / k |
Move cursor up (or scroll preview when right pane focused) |
↓ / j |
Move cursor down (or scroll preview when right pane focused) |
h / ← |
Navigate to parent directory |
PageUp |
Scroll preview up one page (when right pane focused) |
PageDown |
Scroll preview down one page (when right pane focused) |
Enter |
Open folder or preview file |
Space |
Toggle dual-pane mode on/off |
Tab |
Toggle dual-pane mode / switch between panes |
Ctrl+L |
Lock/unlock panel widths (prevents resize on focus change) |
| Key | Action |
|---|---|
F9 |
Cycle through display modes |
1 |
Switch to List view |
2 |
Switch to Detail view |
3 |
Switch to Tree view |
. / Ctrl+h |
Toggle hidden files |
| Key | Action |
|---|---|
s / S |
Toggle favorite for current file/folder |
F6 |
Toggle favorites filter (show only favorites) |
| Key | Action |
|---|---|
Ctrl+P |
Launch fuzzy file search |
Ctrl+F |
Search within file preview (n: next, Shift-N: previous, Esc: exit) |
m / M |
Toggle mouse & border in full preview mode (for clean text selection) |
n / N |
Edit file in nano specifically |
Esc |
Exit dual-pane/preview mode / close context menu |
Ctrl+C |
Force quit application |
Press F1 from anywhere in TFE to open the complete keyboard shortcuts reference. The help system is context-aware and automatically jumps to the most relevant section based on what you're currently doing:
| When you press F1... | Help opens to... |
|---|---|
| From single-pane mode | Navigation section |
| From dual-pane mode | Dual-Pane Mode section |
| While viewing a file (full preview) | Preview & Full-Screen Mode section |
| With context menu open | Context Menu section |
| While filling prompt fields | Prompt Templates & Fillable Fields section |
| With command prompt focused (press :) | Command Prompt section |
This means you get instant access to the shortcuts that matter for what you're currently doing, without scrolling through the entire help file. You can still manually scroll to other sections if needed.
TFE has been extensively tested on Termux/Android throughout development and works beautifully with touch controls:
Touch Controls:
Optimized for Mobile:
Termux Installation:
# Install required packages
pkg install golang-1.21 git termux-api
# Clone and build
git clone https://github.com/GGPrompts/tfe.git
cd tfe
go build -o tfe
# Run
./tfe
Tips for Mobile:
termux-api package for clipboard supportRight-click (or press F2) on any file or folder to access:
For Folders:
For Files:
For Images (PNG, JPG, GIF, SVG, etc.):
For HTML Files:
TFE includes a built-in Prompts Library system for managing AI prompt templates across multiple locations. Press F11 to enter Prompts Mode and access your prompt collection.
Key Features:
~/.prompts/ (global), .claude/commands/, .claude/agents/, and local project folders~/.prompts/ from any directory (shown at top of file list).prompty (Microsoft Prompty format), .yaml, .md, and .txt files{{file}}, {{filename}}, {{project}}, {{path}}, {{DATE}}, {{TIME}} from current context{{VARIABLES}} with smart type detection
Supported Formats:
.prompty) - YAML frontmatter between --- markers:---
name: Code Review
description: Review code changes
---
Please review {{file}} for best practices and potential issues.
.yaml, .yml) - Simple YAML with template field (only in .claude/ or ~/.prompts/):name: Bug Fix
description: Create a bug fix
template: |
Fix the bug in {{file}}.
Project: {{project}}
.md, .txt) - Plain text with {{variables}} (only in .claude/ or ~/.prompts/):Analyze {{file}} and suggest improvements for the {{project}} project.
Setting Up Your Prompts Library:
To use the global prompts feature, create a ~/.prompts/ directory in your home folder:
# Create the global prompts directory
mkdir -p ~/.prompts
# Create an example prompt (Microsoft Prompty format)
cat > ~/.prompts/code-review.prompty << 'EOF'
---
name: Code Review
description: Review code for best practices and potential issues
---
Please review the following code for:
- Best practices and code quality
- Potential bugs or edge cases
- Performance considerations
- Security vulnerabilities
File: {{file}}
Project: {{project}}
Provide specific, actionable feedback.
EOF
Now when you press F11 in TFE, you'll see 🌐 ~/.prompts/ (Global Prompts) at the top of the file list, accessible from any directory.
Creating New Prompts:
You can create new prompt templates directly from TFE using the File menu:
--- markers){{variable}} placeholders showing the syntaxThe file is created as new-prompt-YYYYMMDD-HHMMSS.prompty in your current directory, so you can rename it and move it to ~/.prompts/ for global access or keep it in your project's .claude/ folder for project-specific prompts.
Quick Start with Sample Prompts:
TFE includes 8 example prompts to get you started:
# Copy sample prompts to your home directory
mkdir -p ~/.prompts
cp examples/prompts/*.prompty ~/.prompts/
Included prompts:
/context output for optimization (Advanced)See examples/prompts/README.md for detailed usage and customization.
Featured: Context Analyzer 🌟
The Context Analyzer prompt helps you optimize your Claude Code setup:
/context and copy the outputcontext-analyzer.prompty{{CONTEXT_PASTE}} fieldTips:
~/.prompts/coding/, ~/.prompts/writing/, etc..prompty format for the best metadata support~/.prompts/ folder auto-expands when you enable F11 modeQuick Start (Manual Setup):
🌐 ~/.prompts/ (Global Prompts) or .claude/ folders{{VARIABLES}}:
TFE offers three distinct interface modes:
┌─────────────────────────────────────────┐
│ TFE - Terminal File Explorer │
│ /current/path/here │
│ │
│ ▸ folder1 │
│ ▸ folder2 │
│ • file1.txt │
│ [GO] file2.go │
│ │
│ ↑/↓: nav • Tab: dual-pane • q: quit │
└─────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│ TFE - Terminal File Explorer [Dual-Pane] │
│ /current/path/here │
├───────────────────────┬────────────────────────────────────┤
│ │ Preview: file2.go │
│ ▸ folder1 │ ──────────────────── │
│ ▸ folder2 │ 1 │ package main │
│ • file1.txt │ 2 │ │
│ ► [GO] file2.go │ 3 │ import "fmt" │
│ │ 4 │ │
│ │ 5 │ func main() { │
│ │ 6 │ fmt.Println("...") │
│ │ │
├───────────────────────┴────────────────────────────────────┤
│ [LEFT focused] • Tab: switch • Space: exit │
└────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│ Preview: file2.go │
│ Size: 1.2KB | Lines: 42 | Scroll: 1-20 │
│ │
│ 1 │ package main │
│ 2 │ │
│ 3 │ import "fmt" │
│ 4 │ │
│ 5 │ func main() { │
│ ... (full screen content) │
│ │
│ ↑/↓: scroll • PgUp/PgDown: page • E: edit • Esc: close │
└────────────────────────────────────────────────────────────┘
The command prompt is always visible at the top of the screen (3rd row, below the toolbar). Press : (colon) to focus the command prompt - your cursor will appear and you can type commands. Press Enter to execute commands in the current directory context:
┌─────────────────────────────────────────┐
│ TFE - Terminal File Explorer │ ← Title bar
│ 🏠 ⭐ V ⬌ >_ 🔍 📝 🔀 🗑️ │ ← Toolbar (clickable buttons)
│ $ ls -la█ │ ← Command prompt (3rd row)
│ │
│ ▸ folder1 │ ← File list
│ ▸ folder2 │
│ • file1.txt │
│ │
│ /current/path • 3 folders, 12 files │ ← Status bar
└─────────────────────────────────────────┘
Command Prompt Features:
: (colon) to focus, Esc to unfocus and clear~/.config/tfe/command_history.json, survives restarts█ shows position, ! prefix appears in red:!command to run command and exit TFE (perfect for launching Claude Code!)Example Commands:
ls -la - List files with detailstouch newfile.txt - Create a new filemkdir testdir - Create a new directorygit status - Check git repository statusvim file.txt - Open file in vim and return to TFE:!claude - Launch Claude Code in current directory and exit TFE:!claude --dangerously-skip-permissions - Launch Claude Code in YOLO mode (skips all permission prompts)tfe/
├── main.go # Entry point (21 lines)
├── types.go # Type definitions (135 lines)
├── styles.go # Lipgloss styles (36 lines)
├── model.go # Model initialization & layout (75 lines)
├── update.go # Event handling (900+ lines)
├── view.go # View dispatcher (120 lines)
├── render_file_list.go # File list rendering (440 lines)
├── render_preview.go # Preview rendering (442 lines)
├── file_operations.go # File operations & formatting (465 lines)
├── editor.go # External editor & clipboard (76 lines)
├── command.go # Command prompt execution (128 lines)
├── context_menu.go # Context menu system (205 lines)
├── favorites.go # Favorites/bookmarks (115 lines)
├── helpers.go # Helper functions (45 lines)
├── tfe-wrapper.sh # Shell wrapper for Quick CD
├── go.mod # Go module definition
├── go.sum # Dependency checksums
├── README.md # User documentation
├── HOTKEYS.md # Keyboard shortcuts reference
├── PLAN.md # Development roadmap
├── CLAUDE.md # Architecture & development guide
└── tfe # Compiled binary (after build)
TFE is designed to be simpler than full-featured file managers like Midnight Commander while maintaining modern terminal capabilities. The focus is on:
TFE uses its own prompts library for customization documentation! Instead of complex YAML config files, we provide step-by-step guides as .prompty files that you can view in TFE itself.
Open TFE in the project directory and press F11 to access:
examples/.prompts/)
add-tui-tool.prompty - Add tools like ncdu, ranger to context menucustomize-toolbar.prompty - Change emoji buttons and colorsadd-file-icons.prompty - Add icons for file typeschange-colors.prompty - Apply color schemes (Gruvbox, Dracula, Nord, etc.)add-keyboard-shortcut.prompty - Add or modify shortcutsEach guide provides:
No config files = Simple codebase. Direct code edits = Full control. TFE's prompts library = Your customization docs! 🎯
See examples/.prompts/TFE-Customization/ for all guides.
TFE integrates with TUIClassics - a collection of classic terminal games including Snake, Minesweeper, Solitaire, and 2048.
# Clone the games repository
git clone https://github.com/GGPrompts/TUIClassics ~/projects/TUIClassics
# Build the games launcher
cd ~/projects/TUIClassics
make build
Once installed, launch games from TFE via:
Tools Menu: Navigate to Tools → Games Launcher
This launches the TUIClassics menu where you can select from:
All games feature:
Note: Games are a separate project and completely optional. TFE works fully without them.
go run .
Quick build and install (recommended):
./build.sh
This builds the binary and automatically installs it to ~/.local/bin/tfe.
Manual build:
go build -o tfe
cp ./tfe ~/.local/bin/tfe # Install to PATH
Install dependencies manually if needed:
go get github.com/charmbracelet/bubbletea
go get github.com/charmbracelet/lipgloss
go get github.com/charmbracelet/bubbles
TFE follows a modular architecture with 13 focused files:
MIT License - feel free to use and modify as needed.
Contributions are welcome! Please feel free to submit issues or pull requests.
Created by GGPrompts
Note: This project uses Unicode emojis for icons. Most modern terminals support these out of the box. If icons don't display properly, ensure your terminal has Unicode/emoji support enabled.