Zashterminal is a modern, intuitive, and innovative terminal built with GTK4 and Adwaita. While it offers advanced features appreciated by developers and system administrators, it also stands out for making the command-line environment more accessible, helping those who are just beginning to learn how to use the terminal. Its simplified session management, built-in file manager, automatic color highlighting for improved readability, and a variety of other features bring convenience to users of all skill levels on any Linux distribution.
Zashterminal creates a bridge between your shell and Large Language Models (LLMs), offering an optional and fully non-intrusive AI experience. The assistant only processes the content that you explicitly select and choose to send, ensuring full control over your privacy.
- Multi-Provider Support: Native integration with Groq, Google Gemini, OpenRouter, and Local LLMs (Ollama/LM Studio).
- Context Aware: The AI understands your OS and distribution context to provide accurate and relevant commands.
- Chat Panel: A dedicated side panel for persistent conversations, command suggestions, and "Click-to-Run" code snippets.
- Smart Suggestions: Ask how to perform tasks and receive ready-to-execute commands directly in the UI.
- Integrated Side Panel: Browse local and remote file systems without leaving the terminal.
- Remote Editing: Click to edit remote files (SSH/SFTP) in your favorite local editor. Zashterm watches the file and automatically uploads changes on save.
- Drag & Drop Transfer: Upload files to remote servers simply by dragging them into the terminal window over (SFTP/Rsync)
- Transfer Manager: Track uploads and downloads with a detailed progress manager and history.
- Input Broadcasting: Type commands in one terminal and execute them simultaneously across multiple selected tabs/panes.
- Quick Prompts: One-click AI prompts for common tasks (e.g., "Explain this error", "Optimize this command").
- Session Management: Save, organize (with folders), and launch Local, SSH, and SFTP sessions.
- Flexible Layouts: Split panes horizontally and vertically; save and restore complex window layouts.
- Directory Tracking: Updates tab titles automatically based on the current working directory (OSC7 support).
- Deep Customization: Visual theme editor, font sizing, transparency (window and headerbar), and extensive keyboard shortcuts.
To build and run Zashterminal, you will need:
- Python 3.9+
- GTK4 and Adwaita 1.0+ (
libadwaita) - VTE for GTK4 (
vte4>= 0.76 recommended) - Python Libraries:
PyGObject(GTK bindings)cryptography(Secure password storage)requests(For AI API connectivity)pygments(For syntax highlighting)psutil(Optional, for advanced process tracking)regex(Optional, for high-performance highlighting patterns)
Arch/Manjaro (AUR):
yay -S zashterminal # ou
paru -S zashterminalDebian/Ubuntu/Fedora/openSUSE/etc. via Distrobox installer:
# Quick install (no clone required)
curl -fsSL https://raw.githubusercontent.com/leoberbert/zashterminal/refs/heads/main/install.sh | bash
# Alternatively, download and run
curl -fsSLO https://raw.githubusercontent.com/leoberbert/zashterminal/refs/heads/main/install.sh
bash install.shzashterminal [options] [directory]| Option | Description |
|---|---|
-w, --working-directory DIR |
Set initial working directory |
-e, -x, --execute COMMAND |
Execute command on startup (all remaining args are included) |
--close-after-execute |
Close the terminal tab after the command finishes |
--ssh [USER@]HOST |
Immediately connect to an SSH host |
--new-window |
Force opening a new window instead of a tab |
# Open terminal in a specific directory
zashterminal ~/projects
# Execute a command
zashterminal -e htop
# SSH connection
zashterminal --ssh user@server.example.com
# Execute command and close after completion
zashterminal --close-after-execute -e "ls -la"Configuration files are stored in ~/.config/zashterminal/:
| File/Directory | Description |
|---|---|
settings.json |
General preferences, appearance, terminal behavior, shortcuts, and AI configuration |
sessions.json |
Saved SSH/SFTP connections and session folders |
session_state.json |
Window state and session restore data |
layouts/ |
Saved window layouts (split panes configuration) |
logs/ |
Application logs (when logging to file is enabled) |
backups/ |
Manual encrypted backup archives |
Note: Syntax highlighting rules are bundled with the application in data/highlights/ and include rules for 50+ commands (docker, git, systemctl, kubectl, and more).
Contributions are welcome!
- Fork the repository.
- Create your feature branch (
git checkout -b feature/amazing-feature). - Commit your changes.
- Push to the branch.
- Open a Pull Request.
This project is licensed under the GNU GPL v3 (or later) - see the LICENSE file for details.
- Developers of GNOME, GTK, VTE, and Pygments.