termide

mcp
Guvenlik Denetimi
Gecti
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 167 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

All-in-one terminal workspace for desktops and servers: editor with LSP, file manager with SFTP/FTP, terminal, git, database viewer and a coding agent in one zero-config static Rust binary.

README.md

TermIDE

GitHub Release
CI
License: MIT

English | 中文 | Русский

An all-in-one terminal workspace for your workstation and your servers: code editor with LSP, dual-pane file manager with SFTP/FTP, terminal, git, database viewer and a coding agent — one zero-config static binary written in Rust.

Website | Documentation | Releases | Screenshots

TermIDE — editor, file manager, terminal and viewers in one TUI

Why TermIDE?

Terminal editors cover the code; everything around it — files on remote hosts, databases, git, long-running shells, a coding agent — usually takes plugins or separate tools. TermIDE ships all of it in one binary that works out of the box on a laptop, a server, or a phone:

Feature TermIDE Fresh Vim/Neovim Helix Micro
LSP Support ✓ ✓ ✓ ✓ plugin
Zero Config ✓ ✓ ✗ ✓ ✓
Script Automation ✓ ✓ ✓ ✗ plugin
Built-in Coding Agent (local or hosted models) ✓ ✗ plugin ✗ ✗
External Agents (Claude Code, Codex, Gemini CLI) ✓ ✓ plugin ✗ ✗
MCP Servers ✓ ✗ plugin ✗ ✗
Remote Filesystems (SFTP/FTP) ✓ SSH ✓ ✗ ✗
Hex / Binary Viewer ✓ ✗ plugin ✗ plugin
Database Viewer ✓ ✗ plugin ✗ ✗
Markdown Preview ✓ ✓ plugin ✗ ✗
Diagram Viewer (Mermaid) ✓ ✗ plugin ✗ ✗
Image Viewer ✓ ✗ plugin ✗ ✗
Built-in Terminal ✓ ✓ plugin ✗ ✗
File Manager ✓ tree only plugin ✗ ✗
Background File Operations ✓ ✗ plugin ✗ ✗
Git Integration ✓ ✓ plugin ✗ ✗
Project Layouts ✓ ✓ plugin ✗ ✗
Detachable Instances ✓ ✓ ✗ ✗ ✗
Multi-panel Layout ✓ ✓ plugin ✗ ✗
Bookmarks ✓ ✓ plugin ✗ ✗
Resource Monitor ✓ ✗ ✗ ✗ ✗

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

Features

  • Terminal-based IDE - Syntax highlighting for 22 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 (F4), Go to Definition (Ctrl+Click), diagnostics
  • Coding Agent - A panel (Alt+A) where a language model reads, edits and runs commands in your project through any OpenAI-compatible endpoint (local llama.cpp / Ollama / vLLM / omlx or hosted), asking permission per tool call; skills, prompt templates, MCP servers, command hooks, and external agents over ACP (Claude Code, Codex, Gemini CLI) in the same panel
  • Smart File Manager - Tree view with expandable directories, nested git status, batch operations, file/content search (glob/regex), in-tree incremental search
  • Remote Filesystems - Browse and edit files on remote servers from the file manager over SFTP / FTP / FTPS, copying between local and remote panels — pure Rust (russh + rustls), no native libraries, works on static musl (smb:// / nfs:// via the OS mount)
  • Background File Operations - Copy, move, upload, download, delete and batch transfers run in the background with a per-operation progress bar, byte/elapsed readout, and pause / resume / cancel (Operations panel)
  • Integrated Terminal - Full PTY support, VT100 escape sequences, mouse tracking
  • Git Integration - Status panel, commit log with a coloured Unicode commit graph (ASCII fallback), staging/unstaging, branches with their worktrees, branch switching, stash management, inline blame
  • Database Viewer - Read-only browser for SQLite / PostgreSQL / MySQL opened from a bookmark URL: table grid with a 2D cell cursor, server-side single-column sort and type-aware per-column filtering, sliding-window pagination, and a row-detail dialog that copies as TSV / JSON / INSERT
  • Multi-panel Layout - Vertically split panel groups with adjustable per-panel heights and a one-key fullscreen toggle (Alt+F11); smart auto-stacking when the terminal narrows; new panels open after the currently active one
  • Image Viewer - Native graphics in Kitty, WezTerm, iTerm2, Ghostty, foot terminals
  • Hex / Binary Viewer & Editor - Hex/ASCII view (adaptive 16-byte sections) for binary files, with a byte cursor shown in both zones, drag/shift selection and clipboard copy, ASCII + hex-byte search, and a hex↔text toggle (Ctrl+L); F4 opens it for overwrite editing with a .bak backup on save
  • Markdown Preview - Rendered read-only view for .md / .markdown (headings, lists, tables, syntax-highlighted code blocks, clickable links and image pictograms) with cursor navigation, selection and clipboard copy; Ctrl+E toggles to the editable source; embedded mermaid blocks render as diagrams
  • Mermaid Diagram Viewer - Render .mmd / .mermaid files as text pseudographics — flowchart, sequence, state, class, ER, gantt, pie, journey, mindmap, timeline, gitGraph, quadrant; 2D scroll, copy to clipboard, and Ctrl+E to edit the source
  • 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, Norton Commander, Windows 95, 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 (missing keys transparently fall back to English)
  • Project Management - Auto-save and restore panel layouts per project
  • Detached Instances - termide --detached keeps the whole instance — editors, shells, LSP servers, running jobs — alive after the terminal closes; termide --attach picks it up again from any terminal, at any size (Unix only)
  • 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); repeated click on the same indicator closes the modal (toggle)
  • Search & Replace - Live preview, match counter, regex support
  • Custom Commands - Shell commands from commands.toml, global and per project, in the Commands menu: hotkeys, groups, parameter forms, and terminal / background / report modes
  • Settings Modal - Full-screen configuration (Alt+P) with sidebar layout, grouped fields (Appearance / Input / Layout / Performance / …), and in-place keybinding capture for all 9 keybinding scopes
  • 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+\
  • Bookmarks - Save and organize frequently used locations
  • Command Palette - Quick access to all commands with fuzzy matching (Ctrl+P)
  • Open Prompt - Open a file, directory or URL with path suggestions (Ctrl+G)

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.35.0-x86_64-unknown-linux-gnu.tar.gz
tar xzf termide-0.35.0-x86_64-unknown-linux-gnu.tar.gz
./termide

# Linux x86_64 (static musl — Alpine, distroless containers, any glibc-free system)
wget https://github.com/termide/termide/releases/latest/download/termide-0.35.0-x86_64-unknown-linux-musl.tar.gz
tar xzf termide-0.35.0-x86_64-unknown-linux-musl.tar.gz
./termide

# macOS Intel (x86_64)
curl -LO https://github.com/termide/termide/releases/latest/download/termide-0.35.0-x86_64-apple-darwin.tar.gz
tar xzf termide-0.35.0-x86_64-apple-darwin.tar.gz
./termide

# macOS Apple Silicon (ARM64)
curl -LO https://github.com/termide/termide/releases/latest/download/termide-0.35.0-aarch64-apple-darwin.tar.gz
tar xzf termide-0.35.0-aarch64-apple-darwin.tar.gz
./termide

# Linux ARM64 (Raspberry Pi, ARM servers)
wget https://github.com/termide/termide/releases/latest/download/termide-0.35.0-aarch64-unknown-linux-gnu.tar.gz
tar xzf termide-0.35.0-aarch64-unknown-linux-gnu.tar.gz
./termide

# Linux ARM64 (static musl — Android/Termux, Alpine ARM, any glibc-free ARM64)
wget https://github.com/termide/termide/releases/latest/download/termide-0.35.0-aarch64-unknown-linux-musl.tar.gz
tar xzf termide-0.35.0-aarch64-unknown-linux-musl.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.35.0-x86_64-pc-windows-msvc.zip
🪟 Windows (.zip)

TermIDE runs natively on Windows 10+ via ConPTY. Use Windows Terminal for
the best experience.

  1. Download termide-0.35.0-x86_64-pc-windows-msvc.zip from GitHub Releases.
  2. Extract the archive.
  3. Run termide.exe in Windows Terminal.

Configuration lives under %APPDATA%\termide\ (config, sessions) and
%LOCALAPPDATA%\termide\cache\ (logs).

Alternatively, in WSL/WSL2 use the Linux x86_64 build (termide-0.35.0-x86_64-unknown-linux-gnu.tar.gz) as on any Linux.

🐧 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.35.0-1_amd64.deb
sudo dpkg -i termide_0.35.0-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.35.0-1.x86_64.rpm
sudo rpm -i termide-0.35.0-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 ];
}
🤖 Android (Termux)

Inside Termux, use the static ARM64 musl build (the
glibc aarch64-unknown-linux-gnu build won't run on Android's Bionic libc):

pkg install git openssh   # tools termide shells out to (plus any LSP servers)
wget https://github.com/termide/termide/releases/latest/download/termide-0.35.0-aarch64-unknown-linux-musl.tar.gz
tar xzf termide-0.35.0-aarch64-unknown-linux-musl.tar.gz
./termide

Notes: the system clipboard isn't available on Android (no X11/Wayland), and the
resource monitor may show partial data due to Android's restricted /proc. The
editor, file manager, git, and the integrated terminal work normally.

🔨 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
📦 Portable static binary (Alpine / any Linux)

A fully static musl build is published with every release. It links
no shared libraries and runs on any Linux distribution, including
Alpine and minimal containers. The whole workspace is pure-Rust
(rustls + russh + russh-sftp — no OpenSSL, no libssh2), so this is
the same code, just compiled against musl.

The easiest way is to grab the pre-built tarball from the release:

wget https://github.com/termide/termide/releases/latest/download/termide-0.35.0-x86_64-unknown-linux-musl.tar.gz
tar xzf termide-0.35.0-x86_64-unknown-linux-musl.tar.gz
./termide

# Verify it's fully static — no shared libraries
ldd ./termide   # → "not a dynamic executable"

If you'd rather build it yourself (e.g. for a different musl variant),
the flake exposes the same recipe as a derivation:

nix build github:termide/termide#termide-static
./result/bin/termide

Either binary can be copied anywhere — into a container, a stripped
Alpine image, an embedded box — and it will work without needing
musl-dev or glibc installed.

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] [FILE]...

Arguments:
  [FILE]...            File(s) or directories to open. With a path, TermIDE
                       starts in a clean view (no project layout restored or
                       saved). Text opens in the editor, so it works as
                       $EDITOR for git, crontab, visudo, etc.; images, SQLite
                       files, other binaries and directories open in their
                       viewer, the hex editor or a file manager.

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
  --diagnostics        Run pre-flight diagnostics and exit (no UI)
  --detached           Start a detached instance that survives the terminal
                       closing, and print its id (Unix only)
  --attach [<ID>]      Attach to a detached instance, most recent if omitted
  --list-instances     List detached instances and exit
  --completions <SHELL>
                       Print a completion script (bash, zsh, fish) and exit
  --install-completions [<SHELL>]
                       Install the completion script for $SHELL, or the named one
  -h, --help           Print help
  -V, --version        Print version

Use as your editor:

export EDITOR=termide   # git commit, crontab -e, visudo, ...

Usage

Quick Start

After launching TermIDE, you'll see a width-adaptive layout:

  • Wide terminals (>= 160 cols): Sidebar (Git Status stacked with Operations) + two File Manager panels
  • Normal terminals (< 160 cols): Sidebar (Git Status, File Manager and Operations stacked) + File Manager panel
  • Menu bar at the top, status bar at the bottom

Stacked panels share a column with adjustable per-panel heights. Alt+F11 toggles a "fullscreen current panel" preset (one panel takes the full column height, the rest collapse to their title row); Ctrl+Alt+= / Ctrl+Alt+- grow / shrink the focused panel by 3 lines.

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

All shortcuts are customizable in config.toml (see Configuration). The essentials:

  • Navigate: Alt+M menu · Alt+H help · Alt+Q quit · Ctrl+P command palette
  • Panels: Alt+←/→ and Alt+↑/↓ move between/within groups · Alt+1-9 jump to a panel · Alt+K panel action menu
  • Open: Alt+F Files · Alt+T Terminal · Alt+E Editor · Alt+G Git · Alt+P Settings
  • Files & viewers: F3 preview (markdown / diagram / hex / image) · Ctrl+E toggle preview ↔ source · Ctrl+F find · Ctrl+R reload from disk · Ctrl+S save

📖 Full per-panel reference (file manager, editor, git, viewers): doc/en/keybindings.md.

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

A project can override any of it in <project>/.termide/config.toml. A setting
with a wrong type or value is ignored on its own and reported in the Journal;
the rest of the file still applies. Since the next save from Settings rewrites
the file without the ignored setting, the file as it was is first copied to
config.toml.bak next to it. termide --diagnostics lists the same problems.

Project data location:

  • Linux/BSD: ~/.local/share/termide/projects/ (or $XDG_DATA_HOME/termide/projects/)
  • macOS: ~/Library/Application Support/termide/projects/
  • Windows: %APPDATA%\termide\projects\

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
project_retention_days = 30
bell_on_operation_complete = true
icon_mode = "auto"  # auto, emoji, unicode
always_detachable = false  # keep sessions alive across terminal closes (Unix)
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
  • ayu-dark - Ayu Dark theme
  • billiard - Billiard table green tones
  • catppuccin-macchiato - Catppuccin Macchiato theme
  • everforest - Everforest dark theme
  • github-dark - GitHub Dark theme
  • gruvbox - Gruvbox dark theme
  • kanagawa - Kanagawa theme
  • material-ocean - Material Ocean theme
  • rosepine - Rosé Pine theme
  • tokyonight - Tokyo Night theme

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
  • blue-sky - Blue Sky theme
  • green-backs - Green dollar bills theme
  • pinky-pie - Pinky Pie theme

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 XP Dracula Ayu Light
Windows XP (default) Dracula Ayu Light
Monokai Nord Material Lighter
Monokai Nord Material 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 crates/theme/themes/ directory in the repository for theme file format examples.

Custom Commands

Shell commands you run often go into commands.toml — the global one in the
configuration directory, or <project>/.termide/commands.toml for a project —
and appear in the Commands menu:

[test]
name = "Run tests"
command = "cargo nextest run"
group = "cargo"
key = "Ctrl+Shift+T"

[clippy]
command = "cargo clippy --workspace -- -D warnings"
mode = "report"  # terminal (default), background, or report

Commands → Add command... creates one through a form. See
Custom Commands for modes, parameters and hotkeys.

Development

The codebase is a Cargo workspace of modular crates. For the crate layout,
panel system, and event flow, see the
Developer Guide and
Architecture.

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:

Yorumlar (0)

Sonuc bulunamadi