TERMIDE(1)

NAME

termideA cross-platform terminal-based IDE, file manager, and virtual terminal written in Rust.

SYNOPSIS

$brew install termide

INFO

80 stars
1 forks
0 views

DESCRIPTION

A cross-platform terminal-based IDE, file manager, and virtual terminal written in Rust.

README

TermIDE

GitHub Release CI License: MIT

A cross-platform terminal-based IDE, file manager, and virtual terminal written in Rust.

Website | Documentation | Releases | Screenshots

Why TermIDE?

Unlike traditional terminal editors that need extensive plugin configuration, TermIDE works out of the box:

FeatureTermIDEVim/NeovimHelixMicro
Built-in Terminalplugin
File Managerplugin
Git Integrationplugin
LSP Supportpluginplugin
Syntax Highlighting
Zero Config
Resource Monitor
Sessionsplugin

TermIDE = Editor + File Manager + Terminal in one TUI application.

Features

  • 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, Find References (Shift+F12), Rename Symbol (F2), Go to Definition (Ctrl+Click), diagnostics
  • 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, stash management, inline blame (Alt+B)
  • Multi-panel Layout - Accordion system with smart auto-stacking; new panels open after the currently active one
  • Image Viewer - Native graphics in Kitty, WezTerm, iTerm2, Ghostty, foot terminals
  • External Apps - Open files with system default applications (Shift+Enter)
  • 38 Built-in Themes - Dark, light, retro, and cinematic themes (Dracula, Nord, Monokai, Solarized, Matrix, Pip-Boy, Blue Sky, Pinky Pie, 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, network I/O in menu bar and disk usage in status bar; click any indicator to open a detail modal (top processes by CPU/RAM, top processes by network connections with listening ports)
  • 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
  • Command Palette - Quick access to all commands (Ctrl+Shift+P)

Installation

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)

Choose Your Installation Method

📦 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.18.1-x86_64-unknown-linux-gnu.tar.gz
tar xzf termide-0.18.1-x86_64-unknown-linux-gnu.tar.gz
./termide

macOS Intel (x86_64)

curl -LO https://github.com/termide/termide/releases/latest/download/termide-0.18.1-x86_64-apple-darwin.tar.gz tar xzf termide-0.18.1-x86_64-apple-darwin.tar.gz ./termide

macOS Apple Silicon (ARM64)

curl -LO https://github.com/termide/termide/releases/latest/download/termide-0.18.1-aarch64-apple-darwin.tar.gz tar xzf termide-0.18.1-aarch64-apple-darwin.tar.gz ./termide

Linux ARM64 (Raspberry Pi, ARM servers)

wget https://github.com/termide/termide/releases/latest/download/termide-0.18.1-aarch64-unknown-linux-gnu.tar.gz tar xzf termide-0.18.1-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.18.1-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.18.1-1_amd64.deb
sudo dpkg -i termide_0.18.1-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.18.1-1.x86_64.rpm
sudo rpm -i termide-0.18.1-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-bin

Or 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

Requirements

  • For pre-built binaries: No additional requirements
  • For building from source:
    • Rust 1.70+ (stable)
    • For Nix users: Nix with flakes enabled

Command-Line Options

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

Usage

Quick Start

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.

Documentation

For detailed documentation, see:

Keyboard Shortcuts (Quick Reference)

All shortcuts are customizable in config.toml. See Configuration.

Global:

  • Alt+M - Toggle menu
  • Alt+H - Help panel
  • Alt+Q - Quit
  • Alt+←/→ or Alt+A/D - Switch panel groups
  • Alt+↑/↓ or Alt+W/S - Navigate panels in group
  • Alt+1-9 / Ctrl+Alt+1-9 - Jump to panel by number
  • Alt+K - Add bookmark
  • Ctrl+P - Command palette
  • Alt+X / Alt+Delete - Close panel
  • Alt+Backspace - Toggle panel stacking
  • Alt+PgUp/PgDn - Move panel between groups
  • Alt+=/- - Resize group width
  • Alt+/ - Sessions menu

Panels:

  • Alt+F - File Manager
  • Alt+T - Terminal
  • Alt+E - Editor
  • Alt+L - Journal
  • Alt+G - Git Status
  • Alt+O - Outline
  • Alt+I - Diagnostics
  • Alt+C - Git Log
  • Alt+P - Open config

File Manager:

  • Ctrl+/ - Open directory switcher
  • Alt+K - Add bookmark
  • Enter - Open file/directory
  • Backspace - Parent directory
  • / l - Expand directory (tree view)
  • / h - Collapse directory (tree view)
  • / - In-tree incremental search
  • Space - File info
  • Insert - Toggle selection (cascades into directories)
  • Ctrl+A - Select all
  • Ctrl+F - Search by name
  • Ctrl+Shift+F - Search in contents
  • Ctrl+N - New file
  • D / F7 - New directory
  • C / F5 - Copy
  • M / F6 - Move
  • Delete / F8 - Delete
  • F3 - Preview file
  • Shift+Enter - Open with system app
  • . - Toggle hidden files
  • Ctrl+G - Go to path/URL

Editor:

  • Ctrl+S - Save
  • Ctrl+Shift+S - Save As (with executable checkbox)
  • Ctrl+Z - Undo
  • Ctrl+Y / Ctrl+Shift+Z - Redo
  • Alt+B - Toggle git blame
  • Ctrl+F - Find
  • Ctrl+H - Replace
  • F3 / Shift+F3 - Next/previous match
  • Ctrl+/ - Toggle comment (line/block)
  • Ctrl+D - Duplicate line
  • Ctrl+C/X/V - Copy/Cut/Paste
  • Ctrl+Left/Right - Move cursor by word
  • Ctrl+Shift+Left/Right - Select by word
  • Ctrl+Up/Down - Jump to paragraph/symbol boundary
  • Ctrl+Shift+Up/Down - Select to paragraph/symbol boundary

Git Status:

  • Tab - Switch focus
  • Ctrl+S - Stage selected
  • Ctrl+U - Unstage selected
  • Ctrl+R - Refresh

Git Log:

  • j/k or ↑/↓ - Navigate commits
  • Enter / d - View diff
  • c - Copy commit hash
  • g/G - First/last commit
  • o / Shift+Enter - Open commit in browser

Configuration

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

Example Configuration

[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"

Available Themes

Dark Themes:

  • windows-xp - Default theme (Windows XP style)
  • dracula - Popular Dracula theme
  • monokai - Classic Monokai theme
  • nord - Nord theme with blue tones
  • onedark - Atom One Dark theme
  • solarized-dark - Dark Solarized theme
  • midnight - Midnight Commander inspired
  • macos-dark - macOS dark style

Light Themes:

  • atom-one-light - Atom One Light theme
  • ayu-light - Ayu Light theme
  • github-light - GitHub Light theme
  • manuscript - Medieval manuscript with aged parchment tones
  • material-lighter - Material Lighter theme
  • solarized-light - Light Solarized theme
  • macos-light - macOS light style

Retro Themes:

  • far-manager - FAR Manager style
  • norton-commander - Norton Commander style
  • dos-navigator - DOS Navigator style
  • volkov-commander - Volkov Commander style
  • windows-95 - Windows 95 style
  • windows-98 - Windows 98 style

Cinematic Themes:

  • matrix - The Matrix digital rain (green on black)
  • pip-boy - Fallout Pip-Boy 3000 phosphor CRT
  • terminator - Skynet HUD / Mars red aesthetics

Other Themes:

  • terminal - Classic terminal style (inherits terminal colors)

Theme Examples:

Windows XPDraculaAyu Light
Windows XP (default)DraculaAyu Light
MonokaiNordMaterial Lighter
MonokaiNordMaterial Lighter

Custom Themes

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.

Custom Scripts

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.sh

Note: On Unix systems, scripts must have the executable permission (chmod +x). Use Options → Manage scripts to open the scripts folder.

Development

Project Structure

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

Building

# Development build
cargo build

Release build with optimizations

cargo build --release

Run tests

cargo test

Check code quality

cargo clippy cargo fmt --check

Nix Development

The project includes a Nix flake for reproducible development environments:

# Enter development shell
nix develop

Build with Nix

nix build

Run checks

nix flake check

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

License

This project is licensed under the MIT License.

Acknowledgments

Built with:

SEE ALSO

clihub3/29/2026TERMIDE(1)