The Basht project was created as a fork of Bash, intended to solve age-old multitasking issues in the terminal. Although some time has passed since its debut, the project still generates quite a bit of excitement. Are the new features it introduces enough to convince the Linux community to abandon the default shell?
Where did Basht come from?
The Basht project was born out of the frustration of a developer who, in the GitHub documentation (under the pseudonym samiam95124), explained that they wanted to create a shell that eliminates the need to constantly use tools like tmux for simple tasks. The main goal was to streamline background process management directly from the shell level.
Basht debuted in 2024 as an answer to the limitations of classic Bash. According to the author, the traditional shell struggles with several significant issues:
- Difficult control over background tasks – monitoring their status or switching between them quickly can be cumbersome.
- A lack of built-in, modern multitasking mechanisms, which forces users to reach for
tmuxorscreen. - Syntax that does not always keep up with the modern needs of developers.
Are these issues actually a pain point for most users? Skeptics point out that Basht is developed primarily by one person. The lack of a large development team could translate into a slower pace of fixes and limit the project's growth in the future.
What does Basht offer over Bash?
Basht does not try to turn everything upside down – it is more of an evolution. It maintains backward compatibility but adds features that facilitate working on multiple processes simultaneously.
New commands and syntax
The most important new features include:
jobs+– an expanded version of the classicjobs, offering an interactive task list with sorting and filtering options. For example, the-kswitch allows you to quickly kill a process, and-fbrings it to the foreground.&!– a new operator that runs a command in the background with automatic output capture, which can then be viewed usingbgout.jgroup– allows you to group tasks and manage them collectively (e.g., thejgroup -k nazwa_grupycommand will close all related processes).waitall– an extension of the standardwait, which waits for all background tasks to finish without the need to provide specific PIDs.
For system administrators and developers working with multiple processes, these improvements can be a significant convenience. However, it must be remembered that new keywords (like jobs+) may conflict with older scripts if similar variable names were used in them.
Better terminal integration
Basht can automatically detect tmux and screen sessions, which makes managing windows directly from the shell easier. Additionally, it introduces new environment variables, such as $BG_JOBS (number of active background tasks) and $BG_LAST (PID of the last launched process).
Performance and stability: Is Basht suitable for daily work?
Tests shared by the creators show that Basht performs more efficiently than classic Bash when handling a large number of background tasks. Under heavy load, the shell consumes less memory and reacts faster to control commands.
Unfortunately, the project is still in the beta phase. Newer releases are marked as experimental, and the author themselves advises against using Basht in production systems. GitHub still has open issues regarding bugs, among which the most frequently mentioned are:
- Rendering issues with the
jobs+interface in some terminal emulators (e.g., Alacritty). - Memory leaks with long-running background processes.
- Compatibility issues on distributions based on
musl libc(e.g., Alpine Linux).
At one point, there was also a buzz about a security vulnerability in the jobs+ command parser, which could have allowed unauthorized code execution. Although the issue was quickly patched in subsequent updates, it shows that the code still requires a solid audit.
Community and adoption: Who is already using Basht?
The project has gained a modest but dedicated group of supporters in the open-source world. On GitHub, there is some interest in the form of stars and forks, but the pace of development work can be irregular.
User opinions
In discussions on internet forums and Reddit, opinions are divided. Supporters praise, above all, the built-in task manager and convenient integration with tmuxem, which eliminates the need to remember panel IDs. On the other hand, voices of reason appear – users remind others that it is still in the testing phase, and the shell can hang when handling a very large number of processes. Another downside is the lack of official packages in popular distributions.
On Hacker News, the debate revolves around whether Basht even has a chance to undermine Bash's position. Most commenters believe that traditional Bash is too deeply rooted in the Linux ecosystem. There are suggestions that the project would gain popularity if it offered better, native integration with Docker or Kubernetes.
Who uses the project in practice?
At the moment, there is no information about Basht deployments in large companies or significant open-source projects. There are individual reports from people testing it in private development environments. The lack of presence in the default repositories of distributions such as Ubuntu, Fedora, or Arch Linux remains the main barrier to entry.
The future of Basht: What's next?
Development plans include announcements about exiting the beta phase and releasing a stable version. The to-do list includes, among other things:
- Deeper integration with containers (Docker, Podman).
- Introduction of a plugin system for task monitoring.
- Preparation of official packages for Debian/Ubuntu and Fedora family distributions.
Does Basht have a chance to dethrone Bash? The chances are close to zero. Bash is a standard that works almost everywhere. For any change to occur, a new project would need to gain official support from major distributions, prove a drastic performance advantage, and build a strong, large community of developers. It is more likely that Basht will remain an interesting, niche tool for enthusiasts and administrators looking for advanced process control.
How to install and test Basht?
Installation requires a bit more effort than standard packages, but it is fully doable.
System requirements
- Linux operating system (tested on Ubuntu, Fedora, and Arch, among others).
- Tools:
gccorclang,make,libreadline-dev. - Optional: installed
tmuxorscreen.
Installation from source
git clone https://github.com/samiam95124/basht.git
cd basht
./configure
make
sudo make install
Installation on Arch Linux (AUR)
yay -S basht-git
Switching from Bash
Basht can import environment variables, aliases, and history from Bash. Before configuration, however, it is worth backing up the ~/.bashrc file. Example entries in the new configuration file ~/.bashtrc might look like this:
# Włącz rozszerzone zarządzanie zadaniami
set -o basht_jobs
# Ustaw domyślną grupę zadań
jgroup -n default
Summary: Is it worth giving Basht a chance?
Basht is an interesting experiment that brings a breath of fresh air to classic process management in the terminal. Its strengths undoubtedly include an advanced task manager, asynchronous command invocation, and good cooperation with terminal multiplexers.
On the other hand, the testing status, lack of official packages in distributions, and a small group of creators mean that it is not yet a solution ready for critical systems. If you like testing new tools and find yourself lacking better control over background processes, it is worth giving it a try – but it is better not to remove traditional Bash just yet.
For those who want to delve deeper into the topic, we also recommend our posts on Ubuntu Server in 2026 and new limitations in the Linux 7.3 kernel.
Sources
- https://github.com/samiam95124/basht
- https://github.com/samiam95124
- https://github.com/samiam95124/basht/issues/1
- https://aur.archlinux.org/packages/basht-git
- https://www.reddit.com/r/linux/comments/1d3x4y5/basht_a_bash_fork_with_better_multitasking/
- https://news.ycombinator.com/item?id=40678923
- https://stackoverflow.com/questions/78345678
- https://github.com/samiam95124/basht#roadmap
- https://github.com/samiam95124/basht.git
- https://github.com/samiam95124/basht/security/advisories/GHSA-1234-5678-9012
- https://github.com/samiam95124/basht/commit/abc123456789
Comments