A powerful file manager that runs both in the terminal and as a native desktop application. Navigate your filesystem with keyboard shortcuts in a clean, intuitive dual-pane interface with comprehensive file operations, advanced text editing, and professional-grade features.
Run in Terminal Mode (all platforms) or Desktop Mode (macOS native app with GPU acceleration).
- Dual-pane interface with independent navigation and cross-pane operations
- Archive browsing - Navigate ZIP, TAR, and compressed archives as virtual directories
- SFTP support - Browse and manage remote servers via SSH with optimized performance
- Advanced search with real-time filtering and background processing
- Multi-selection with bulk operations and progress tracking
- Built-in text viewer with syntax highlighting for 20+ file formats
- External program integration with configurable launchers
- AWS S3 support for cloud storage operations
- Customizable interface with multiple color schemes and key bindings
- Remote log monitoring for debugging and system monitoring
This application was developed using Kiro heavily - an AI-powered development assistant. Approximately 99% of the code was auto-generated from natural language based interactive chat sessions, demonstrating the power of AI-assisted development for creating complex, feature-rich applications.
-
Ensure you have Python 3.9+ installed
-
Clone or download TFM:
git clone https://github.com/shimomut/tfm.git cd tfm -
Install dependencies:
Terminal Mode (all platforms):
pip install -r requirements.txt python3 tfm.py
Desktop Mode (macOS only):
# Install base dependencies plus PyObjC pip install -r requirements.txt pip install pyobjc # Or install with the macos extra pip install -e .[macos] # Run as native desktop application python3 tfm.py --desktop
- Navigate:
↑↓to move up/down,←→to switch panes/navigate directories - Enter archives: Press
Enteron.zip,.tar,.tar.gzfiles to browse contents - Select:
Spaceto select/deselect files,afor all files,Afor all items - File operations:
c/C(copy),m/M(move),k/K(delete),r/R(rename) - Help:
?for comprehensive help dialog - Quit:
q/Qto exit
Press ? to open the comprehensive help dialog with all key bindings and features organized by category. The help dialog is your quick reference guide - no need to memorize all shortcuts!
For comprehensive information about TFM's features and usage:
- Complete User Guide - Comprehensive guide covering all features, configuration, and usage
- Configuration - Complete configuration reference and customization guide
- SFTP Support - Remote server access via SSH with file operations and search
- AWS S3 Support - Cloud storage integration and S3 bucket management
- Archive Virtual Directory Browsing - Browse archives as directories
- Remote Log Monitoring - Real-time log monitoring setup and usage
- Search Animation - Advanced search features and visual feedback
- Path Polymorphism System - Storage-agnostic architecture and extensibility
- Navigation System - Core navigation implementation
- Remote Log Implementation - Technical details of log monitoring
- External Programs - Program integration system
All key bindings are fully customizable through the configuration system. For complete key binding reference, press ? in TFM or see the User Guide.
- Navigation: Arrow keys, Tab to switch panes, Enter to open directories/files/archives
- Archive Browsing: Press Enter on
.zip,.tar,.tar.gz,.tgz,.tar.bz2,.tar.xzfiles to browse as virtual directories - File Operations: Copy (
c/C), Move (m/M), Delete (k/K), Rename (r/R) - Selection: Space to select files,
afor all files,Afor all items - Search:
ffor incremental search,Ffor filename search,Gfor content search - Archives:
p/Pto create archives,u/Uto extract, Enter to browse contents - Text Viewer:
v/Vto view files with syntax highlighting (works inside archives)
- Favorite Directories:
jfor quick access to bookmarked locations - External Programs:
xfor custom program integration - Sub-shell Mode:
Xto enter shell with TFM environment variables - Configuration:
Zfor settings menu - SFTP Support: Navigate remote servers using
ssh://hostname/pathsyntax - AWS S3 Support: Navigate S3 buckets using
s3://bucket/pathsyntax
For comprehensive SFTP setup and usage, see the SFTP Support Feature Guide.
For comprehensive S3 setup and usage, see the AWS S3 Support Feature Guide.
TFM lets you browse archive files as if they were regular directories - no extraction needed!
Supported formats: .zip, .tar, .tar.gz, .tgz, .tar.bz2, .tar.xz
How to use:
- Navigate to any archive file
- Press
Enterto browse its contents - Navigate directories inside the archive with arrow keys
- Press
Enteron files to view them - Copy files out with
F5(or your copy key) - Search within archives with
Alt+F7 - Press
Backspaceto exit the archive
What you can do:
- Browse nested directories within archives
- View text files with syntax highlighting
- Copy files and directories from archives to local/S3
- Search for files by name or content
- Select multiple files for batch operations
- Sort by name, size, date, or extension
See Archive Virtual Directory Feature for complete documentation.
TFM includes a powerful text viewer with syntax highlighting for 20+ file formats. Press Enter on text files or use v to open the viewer. Works seamlessly with files inside archives!
Features:
- Syntax highlighting for Python, JavaScript, JSON, Markdown, YAML, and more
- Line numbers, horizontal scrolling, search functionality
- Multiple encoding support (UTF-8, Latin-1, CP1252)
- View files directly from archives without extraction
Enhanced highlighting: Install pygments for full syntax support:
pip install pygmentsPress X to temporarily suspend TFM and enter a shell with environment variables providing access to current directories and selected files:
TFM_LEFT_DIR,TFM_RIGHT_DIR- Directory paths for each paneTFM_THIS_DIR,TFM_OTHER_DIR- Current and other pane directoriesTFM_LEFT_SELECTED,TFM_RIGHT_SELECTED- Selected files in each paneTFM_ACTIVE- Set to '1' to indicate TFM sub-shell mode
Type exit to return to TFM.
- Archive Virtual Directories: Browse ZIP, TAR, and compressed archives as if they were directories - navigate, search, view files, and copy contents without extraction
- SFTP Support: Access remote servers via SSH with full file operations, search, and optimized performance through connection multiplexing and bulk operations
- Batch Rename: Regex-based renaming with capture groups and macros
- Threaded Search: Non-blocking filename and content search with progress tracking (works inside archives and on remote servers)
- Pane Management: Resizable layout, directory sync, state persistence
- External Integration: VSCode, Beyond Compare, and custom program support
- Remote Log Monitoring: Stream logs to remote terminals for debugging
- AWS S3 Support: Navigate and manage S3 buckets with seamless local/remote operations
For detailed information on all features, see the User Guide.
# Run in terminal mode (default)
python3 tfm.py
# Run in desktop mode (macOS only)
python3 tfm.py --desktop
python3 tfm.py --backend coregraphics # Alternative syntax
# Specify startup directories
python3 tfm.py --left /path/to/projects --right /path/to/documents
# Enable remote log monitoring
python3 tfm.py --remote-log-port 8888
# Enable performance profiling (specify targets: event, rendering, or both)
python3 tfm.py --profile event
python3 tfm.py --profile rendering,event
# Enable debug mode (full stack traces)
python3 tfm.py --debug
# Combined usage - desktop mode with custom directories
python3 tfm.py --desktop --left ./src --right ./test
# Help and version
python3 tfm.py --help
python3 tfm.py --versionTFM supports two rendering backends:
- Terminal Mode (
--backend curses): Traditional terminal interface, works on all platforms - Desktop Mode (
--backend coregraphicsor--desktop): Native macOS application with GPU acceleration
Desktop mode provides:
- Native macOS window with resizing and full-screen support
- GPU-accelerated rendering at 60 FPS
- Customizable fonts and window size
- Better color accuracy with true RGB colors
See the User Guide for detailed desktop mode configuration.
Terminal Mode (all platforms):
- Python 3.9+ with curses library (built-in on macOS/Linux, 3.13 supported)
- Windows:
pip install windows-curses(automatically installed via setup.py) - Terminal with curses support
Desktop Mode (macOS only):
- Python 3.9+ (3.13 supported)
- macOS 10.13 (High Sierra) or later
- PyObjC framework (see installation below)
Base dependencies (installed via requirements.txt):
pip install pygments # Enhanced syntax highlighting (20+ file formats)
pip install boto3 # AWS S3 support (cloud storage operations)macOS Desktop Mode (optional):
# Option 1: Install pyobjc directly
pip install pyobjc
# Option 2: Install with the macos extra
pip install -e .[macos]
# Option 3: Install from PyPI with macos extra (when published)
pip install tfm[macos]# Install dependencies
pip install -r requirements.txt
# Terminal mode (all platforms)
python3 tfm.py
# Desktop mode (macOS only - requires pyobjc)
pip install pyobjc
python3 tfm.py --desktop# Install from source directory
cd tfm
# Terminal mode only
pip install .
# With macOS desktop mode support
pip install .[macos]
# Run from anywhere
tfm # Terminal mode
tfm --desktop # Desktop mode (macOS only, if installed with [macos])# Install in editable mode (changes reflected immediately)
cd tfm
# Terminal mode only
pip install -e .
# With macOS desktop mode support
pip install -e .[macos]
# Run from anywhere
tfmTFM is highly configurable through ~/.tfm/config.py. Access configuration via the Settings menu (Z key) or edit manually.
Key areas:
- Color schemes and display preferences
- Key bindings (fully customizable)
- External programs and text editor
- Favorite directories and startup paths
- Performance and behavior settings
For detailed configuration options, see the Configuration Feature Guide and the User Guide.
tfm/
├── src/ # Core application code
│ └── tools/ # External programs for end users
├── tools/ # Development tools and utilities
├── test/ # Test files (720+ passing tests)
├── doc/ # User documentation
├── doc/dev/ # Developer documentation
├── demo/ # Interactive demonstrations
└── tfm.py # Main entry point
Monitor TFM operations remotely for debugging:
# Start TFM with remote log monitoring
python3 tfm.py --remote-log-port 8888
# Connect from another terminal
python3 src/tools/tfm_log_client.py localhost 8888The log client provides color-coded output for different log sources and handles network connectivity gracefully.
Installation Issues:
- Ensure Python 3.9+ is installed
- Check terminal compatibility with curses library (terminal mode)
- Install PyObjC for desktop mode:
pip install pyobjcorpip install .[macos]
Desktop Mode Issues:
- Desktop mode only works on macOS
- If PyObjC is missing, TFM automatically falls back to terminal mode
- Check console output for backend initialization messages
- See Desktop Mode Guide for detailed setup
Performance Issues:
- Install
pygmentsfor better text viewer performance - Check available memory for large directory operations
- First access to large archives may be slow while structure is cached
- Desktop mode provides better performance with GPU acceleration
Archive Issues:
- Verify archive file is not corrupted
- Ensure you have read permissions for the archive
- Check supported formats:
.zip,.tar,.tar.gz,.tgz,.tar.bz2,.tar.xz - Archives are read-only - use copy operations to extract files
For detailed troubleshooting, see the User Guide.
Have questions, suggestions, or found a bug? Get in touch:
- GitHub Repository: https://github.com/shimomut/tfm
- GitHub Issues: Report bugs or request features
- Author's X (Twitter): @smmrtmnr
We welcome feedback and contributions to make TFM even better!
MIT License - see LICENSE file for details.
- Issues: Create an issue on the project repository
- Documentation: Review files in
doc/anddoc/dev/directories - User Guide: See TFM_USER_GUIDE.md for comprehensive information








