A cross-platform terminal-based IDE, file manager, and virtual terminal written in Rust.
Website | Documentation | Releases | Screenshots
Unlike traditional terminal editors that need extensive plugin configuration, TermIDE works out of the box:
| Feature | TermIDE | Vim/Neovim | Helix | Micro |
|---|---|---|---|---|
| Built-in Terminal | ✓ | plugin | ✗ | ✗ |
| File Manager | ✓ | plugin | ✗ | ✗ |
| Git Integration | ✓ | plugin | ✗ | ✗ |
| LSP Support | ✓ | plugin | ✓ | plugin |
| Syntax Highlighting | ✓ | ✓ | ✓ | ✓ |
| Zero Config | ✓ | ✗ | ✓ | ✓ |
| Resource Monitor | ✓ | ✗ | ✗ | ✗ |
| Sessions | ✓ | plugin | ✗ | ✗ |
TermIDE = Editor + File Manager + Terminal in one TUI application.
- Terminal-based IDE - Syntax highlighting for 21 languages, word navigation (Ctrl+Left/Right), paragraph/symbol navigation (Ctrl+Up/Down), toggle comment (Ctrl+/), auto-indentation, auto-close brackets
- LSP Support - Code completion with rust-analyzer, pylsp, typescript-language-server, and other LSP servers
- Smart File Manager - Tree view with expandable directories, nested git status, batch operations, file/content search (glob/regex), in-tree incremental search
- Integrated Terminal - Full PTY support, VT100 escape sequences, mouse tracking
- Git Integration - Status panel, commit log with ASCII graph, staging/unstaging, branch switching
- Multi-panel Layout - Accordion system with smart auto-stacking
- Image Viewer - Native graphics in Kitty, WezTerm, iTerm2, Ghostty, foot terminals
- External Apps - Open files with system default applications (Shift+Enter)
- 25 Built-in Themes - Dark, light, retro, and cinematic themes (Dracula, Nord, Monokai, Solarized, Matrix, Pip-Boy, etc.)
- Custom Themes - Create your own themes in TOML format
- 15 UI Languages - Bengali, Chinese, English, French, German, Hindi, Indonesian, Japanese, Korean, Portuguese, Russian, Spanish, Thai, Turkish, Vietnamese
- Session Management - Auto-save and restore panel layouts
- System Monitor - Real-time CPU, RAM, disk usage in status bar
- Search & Replace - Live preview, match counter, regex support
- Custom Scripts - Run user-defined scripts from the Scripts menu (supports
.bg.for background,.report.for modal output) - Cross-platform - Linux (x86_64, ARM64), macOS (Intel, Apple Silicon), Windows (native via ConPTY, WSL)
- Full Mouse Support - Click navigation, scroll, double-click actions
- Keyboard Layouts - Cyrillic support with automatic hotkey translation
- Vim Mode - Optional Vim-style editing with Cyrillic keyboard support
- Directory Switcher - Quick directory switching with Ctrl+P
- Bookmarks - Save and organize frequently used locations
Quick Start: Download pre-built binaries from GitHub Releases or install via your package manager.
Supported Platforms: Linux (x86_64, ARM64), macOS (Intel, Apple Silicon), Windows (x86_64)
📦 Pre-built Binaries (Recommended)
Download the latest release for your platform from GitHub Releases:
# Linux x86_64 (also works in WSL)
wget https://github.com/termide/termide/releases/latest/download/termide-0.16.3-x86_64-unknown-linux-gnu.tar.gz
tar xzf termide-0.16.3-x86_64-unknown-linux-gnu.tar.gz
./termide
# macOS Intel (x86_64)
curl -LO https://github.com/termide/termide/releases/latest/download/termide-0.16.3-x86_64-apple-darwin.tar.gz
tar xzf termide-0.16.3-x86_64-apple-darwin.tar.gz
./termide
# macOS Apple Silicon (ARM64)
curl -LO https://github.com/termide/termide/releases/latest/download/termide-0.16.3-aarch64-apple-darwin.tar.gz
tar xzf termide-0.16.3-aarch64-apple-darwin.tar.gz
./termide
# Linux ARM64 (Raspberry Pi, ARM servers)
wget https://github.com/termide/termide/releases/latest/download/termide-0.16.3-aarch64-unknown-linux-gnu.tar.gz
tar xzf termide-0.16.3-aarch64-unknown-linux-gnu.tar.gz
./termide
# Windows x86_64 (download .zip from Releases, extract, run in Windows Terminal)
# https://github.com/termide/termide/releases/latest/download/termide-0.16.3-x86_64-pc-windows-msvc.zip🐧 Debian/Ubuntu (.deb)
Download and install the .deb package from GitHub Releases:
# x86_64 only (ARM64 use tar.gz above)
wget https://github.com/termide/termide/releases/latest/download/termide_0.16.3-1_amd64.deb
sudo dpkg -i termide_0.16.3-1_amd64.deb🎩 Fedora/RHEL/CentOS (.rpm)
Download and install the .rpm package from GitHub Releases:
# x86_64 only (ARM64 use tar.gz above)
wget https://github.com/termide/termide/releases/latest/download/termide-0.16.3-1.x86_64.rpm
sudo rpm -i termide-0.16.3-1.x86_64.rpm🐧 Arch Linux (AUR)
Install from the AUR using your favorite AUR helper:
# Build from source
yay -S termide
# Or install pre-built binary
yay -S termide-binOr manually:
git clone https://aur.archlinux.org/termide.git
cd termide
makepkg -si🍺 Homebrew (macOS/Linux)
Install via Homebrew tap:
brew tap termide/termide
brew install termide❄️ NixOS/Nix (Flakes)
Install using Nix flakes:
# Run without installing
nix run github:termide/termide
# Install to user profile
nix profile install github:termide/termide
# Or add to NixOS configuration.nix
{
nixpkgs.overlays = [
(import (builtins.fetchTarball "https://github.com/termide/termide/archive/main.tar.gz")).overlays.default
];
environment.systemPackages = [ pkgs.termide ];
}🔨 Build from Source (Cargo)
Build from source using Cargo:
# Clone the repository
git clone https://github.com/termide/termide.git
cd termide
# Build and run
cargo run --release🔨 Build from Source (Nix)
Build from source using Nix (for development):
# Clone the repository
git clone https://github.com/termide/termide.git
cd termide
# Enter development environment (includes Rust toolchain and all dependencies)
nix develop
# Build the project
cargo build --release
# Run
./target/release/termide- For pre-built binaries: No additional requirements
- For building from source:
- Rust 1.70+ (stable)
- For Nix users: Nix with flakes enabled
termide [OPTIONS] [PATH]
Options:
--log-level <LEVEL> Set log level (trace, debug, info, warn, error)
--no-lsp Disable LSP language servers
--config <FILE> Use custom config file path
-h, --help Print help
-V, --version Print version
After launching TermIDE, you'll see a width-adaptive layout:
- Wide terminals (>= 160 cols): Sidebar (Git Status + Operations accordion) + two File Manager panels
- Normal terminals (< 160 cols): Sidebar (Git Status + File Manager + Operations accordion) + File Manager panel
- Menu bar at the top, status bar at the bottom
Use Alt+←/→ to switch between panel groups, Alt+↑/↓ to navigate within a group, Alt+M to open the menu.
For detailed documentation, see:
- English: doc/en/README.md
- Russian: doc/ru/README.md
- Chinese: doc/zh/README.md
All shortcuts are customizable in
config.toml. See Configuration.
Global:
Alt+M- Toggle menuAlt+H- Help panelAlt+Q- QuitAlt+←/→orAlt+A/D- Switch panel groupsAlt+↑/↓orAlt+W/S- Navigate panels in groupAlt+1-9- Jump to panel by numberAlt+X/Alt+Delete- Close panelAlt+Backspace- Toggle panel stackingAlt+PgUp/PgDn- Move panel between groupsAlt+=/-- Resize group widthAlt+/- Sessions menu
Panels:
Alt+F- File ManagerAlt+T- TerminalAlt+E- EditorAlt+L- JournalAlt+G- Git StatusAlt+O- OutlineAlt+I- DiagnosticsAlt+C- Git LogAlt+P- Open config
File Manager:
Ctrl+P- Open directory switcherCtrl+B- Add bookmarkEnter- Open file/directoryBackspace- Parent directory→/l- Expand directory (tree view)←/h- Collapse directory (tree view)/- In-tree incremental searchSpace- File infoInsert- Toggle selection (cascades into directories)Ctrl+A- Select allCtrl+F- Search by nameCtrl+Shift+F- Search in contentsCtrl+N- New fileD/F7- New directoryC/F5- CopyM/F6- MoveDelete/F8- DeleteF3- Preview fileShift+Enter- Open with system app.- Toggle hidden filesCtrl+G- Go to path/URL
Editor:
Ctrl+S- SaveCtrl+Shift+S- Save As (with executable checkbox)Ctrl+Z/Y- Undo/RedoCtrl+F- FindCtrl+H- ReplaceF3/Shift+F3- Next/previous matchCtrl+/- Toggle comment (line/block)Ctrl+D- Duplicate lineCtrl+C/X/V- Copy/Cut/PasteCtrl+Left/Right- Move cursor by wordCtrl+Shift+Left/Right- Select by wordCtrl+Up/Down- Jump to paragraph/symbol boundaryCtrl+Shift+Up/Down- Select to paragraph/symbol boundary
Git Status:
Tab- Switch focusCtrl+S- Stage selectedCtrl+U- Unstage selectedCtrl+R- Refresh
Git Log:
j/kor↑/↓- Navigate commitsEnter/d- View diffc- Copy commit hashg/G- First/last commito/Shift+Enter- Open commit in browser
TermIDE follows the XDG Base Directory Specification for file organization.
Configuration file location:
- Linux/BSD:
~/.config/termide/config.toml(or$XDG_CONFIG_HOME/termide/config.toml) - macOS:
~/Library/Application Support/termide/config.toml - Windows:
%APPDATA%\termide\config.toml
Session data location:
- Linux/BSD:
~/.local/share/termide/sessions/(or$XDG_DATA_HOME/termide/sessions/) - macOS:
~/Library/Application Support/termide/sessions/ - Windows:
%APPDATA%\termide\sessions\
Log file location:
- Linux/BSD:
~/.cache/termide/termide.log(or$XDG_CACHE_HOME/termide/termide.log) - macOS:
~/Library/Caches/termide/termide.log - Windows:
%LOCALAPPDATA%\termide\cache\termide.log
Bookmarks location:
- Linux/BSD:
~/.local/share/termide/bookmarks.toml(or$XDG_DATA_HOME/termide/bookmarks.toml) - macOS:
~/Library/Application Support/termide/bookmarks.toml
[general]
theme = "windows-xp"
language = "auto" # auto, bn, de, en, es, fr, hi, id, ja, ko, pt, ru, th, tr, vi, zh
vim_mode = false
session_retention_days = 30
bell_on_operation_complete = true
icon_mode = "auto" # auto, emoji, unicode
resource_monitor_interval = 1000
[editor]
tab_size = 4
show_git_diff = true
word_wrap = true
auto_indent = true
auto_close_brackets = true
[file_manager]
extended_view_width = 50
[lsp]
enabled = true
auto_completion = true
[logging]
min_level = "info"Dark Themes:
windows-xp- Default theme (Windows XP style)dracula- Popular Dracula thememonokai- Classic Monokai themenord- Nord theme with blue tonesonedark- Atom One Dark themesolarized-dark- Dark Solarized thememidnight- Midnight Commander inspiredmacos-dark- macOS dark style
Light Themes:
atom-one-light- Atom One Light themeayu-light- Ayu Light themegithub-light- GitHub Light thememanuscript- Medieval manuscript with aged parchment tonesmaterial-lighter- Material Lighter themesolarized-light- Light Solarized thememacos-light- macOS light style
Retro Themes:
far-manager- FAR Manager stylenorton-commander- Norton Commander styledos-navigator- DOS Navigator stylevolkov-commander- Volkov Commander stylewindows-95- Windows 95 stylewindows-98- Windows 98 style
Cinematic Themes:
matrix- The Matrix digital rain (green on black)pip-boy- Fallout Pip-Boy 3000 phosphor CRTterminator- Skynet HUD / Mars red aesthetics
Other Themes:
terminal- Classic terminal style (inherits terminal colors)
Theme Examples:
![]() |
![]() |
![]() |
| Windows XP (default) | Dracula | Ayu Light |
![]() |
![]() |
![]() |
| Monokai | Nord | Material Lighter |
You can create custom themes by placing TOML files in the themes directory:
- Linux:
~/.config/termide/themes/ - macOS:
~/Library/Application Support/termide/themes/ - Windows:
%APPDATA%\termide\themes\
User themes take priority over built-in themes with the same name. See themes/ directory in the repository for theme file format examples.
You can add custom scripts to the Scripts menu by placing executable files in:
- Linux:
~/.local/share/termide/scripts/ - macOS:
~/Library/Application Support/termide/scripts/ - Windows:
%APPDATA%\termide\scripts\
Features:
- Scripts appear in the Scripts menu (menu bar)
- Subdirectories create nested submenus
- Add
.bg.to filename for background execution (e.g.,deploy.bg.sh) - Add
.report.to filename for background with modal output (e.g.,check.report.sh) - Display name is the part before the first dot
Example:
# Create scripts directory
mkdir -p ~/.local/share/termide/scripts
# Add a simple script
cat > ~/.local/share/termide/scripts/hello.sh << 'EOF'
#!/bin/bash
echo "Hello from TermIDE!"
read -p "Press Enter to close..."
EOF
# Make it executable (required on Unix)
chmod +x ~/.local/share/termide/scripts/hello.shNote: On Unix systems, scripts must have the executable permission (chmod +x). Use Options → Manage scripts to open the scripts folder.
TermIDE uses a Cargo workspace with modular crates:
crates/
├── app/ # Application core, event handling, panel management
├── app-core/ # Core application traits and types
├── app-event/ # Event handling logic
├── app-modal/ # Modal dialog handling
├── app-panel/ # Panel management operations
├── app-session/ # Session save/restore
├── app-watcher/ # File system watcher integration
├── buffer/ # Text buffer implementation
├── clipboard/ # System clipboard integration
├── config/ # Configuration management
├── core/ # Core Panel trait and types
├── file-ops/ # File operations (copy, move, delete, upload, download)
├── git/ # Git integration
├── highlight/ # Syntax highlighting (tree-sitter)
├── i18n/ # Internationalization (15 languages)
├── keyboard/ # Keyboard handling and layout translation
├── layout/ # Panel layout and accordion system
├── logger/ # Logging system
├── lsp/ # Language Server Protocol client
├── modal/ # Modal dialog implementations
├── panel-diagnostics/ # LSP diagnostics panel
├── panel-editor/ # Text editor panel
├── panel-file-manager/ # File manager panel
├── panel-git-diff/ # Git diff viewer panel
├── panel-git-log/ # Git log panel
├── panel-git-status/ # Git status panel
├── panel-image/ # Image viewer panel
├── panel-misc/ # Help and Journal panels
├── panel-operations/ # Background operations panel
├── panel-outline/ # Structural code navigation panel
├── panel-terminal/ # Terminal emulator panel
├── session/ # Session persistence
├── state/ # Application state management
├── system-monitor/ # CPU/RAM/Disk monitoring
├── theme/ # Theme system and built-in themes
├── ui/ # UI utilities and path formatting
├── ui-render/ # UI rendering (menu, status bar, panels)
├── vfs/ # Virtual filesystem (SFTP, FTP, SMB)
└── watcher/ # File system event watcher
themes/ # Built-in theme definitions (TOML files)
doc/
├── en/ # English documentation
├── ru/ # Russian documentation
└── zh/ # Chinese documentation
# Development build
cargo build
# Release build with optimizations
cargo build --release
# Run tests
cargo test
# Check code quality
cargo clippy
cargo fmt --checkThe project includes a Nix flake for reproducible development environments:
# Enter development shell
nix develop
# Build with Nix
nix build
# Run checks
nix flake checkContributions are welcome! Please feel free to submit issues and pull requests.
This project is licensed under the MIT License.
Built with:
- ratatui - Terminal UI framework
- crossterm - Cross-platform terminal manipulation
- portable-pty - PTY implementation
- tree-sitter - Syntax highlighting
- ropey - Text buffer
- sysinfo - System resource monitoring





