Repository navigation
Releases
0.4.0
Purring may have developed as an evolutionary advantage as a signaling mechanism of reassurance between mother cats and nursing kittens, who are thought to use it as a care-soliciting signal. Although purring is popularly interpreted as indicative of pleasure, it has been recorded in a wide variety of circumstances, most of which involve physical contact between the cat and another, presumably trusted individual.
Changelog
New features
- Koshka now has the
koshconfbuiltin andkosh.conffor shell settings.- Every setting is now stored in
/etc/kosh/kosh.confand~/.config/kosh/kosh.conf.koshconf create koshwrites a fresh configuration file that documents every setting, andkoshconf set mood bash --persistsaves a change. .koshrcis gone. Thekoshmood now sourcesrc.kosh, and thebashmood loads existing Bash startup files untouched. Seekosh-switching(5).
- Every setting is now stored in
set --tab-selector,set -o space-after-completion,set -o mimicry, and related flags have been updated to havekoshconfsettings (completion.menu_style,completion.add_space_after_completed_word, andinterpreter.mimic_shebang).--no-configstarts the shell without loading them.- The line editor has been updated to have a kill ring, transposes,
Ctrl-X Ctrl-E, undo onCtrl-Z, live diagnostics in the hint row,M-xin Emacs mode, and:s,gg, andGin Vi mode. - Prompt rendering now has a right prompt (
RPS1andRPROMPT), a transient prompt (KOSH_TRANSIENT_PS1), andKOSH_PS1_...variables for every prompt escape. - Koshka now has the
slurpbuiltin, a full-screen file editor built on the line editor with Emacs and Vi keys.koshkitalso haskoshkit viandkoshkit emacslinked to it. koshkithas been updated to have new utilities and GNU options.- The utility suite now has
less,more,pwdx, andmeow. - Bundled utilities now have
sed -i,grep -H,grep -L,grep -m,grep -a,cp -a,date -d,diff -q,wc -L, additionalsortorders,cut --complement,xargs -P,realpath --relative-to, NUL-terminated output, and-xor--one-file-systemacross recursive tools.
- The utility suite now has
sourcenow has--moodto run a file in a selected mood.znow has an exact directory check before a frecency match, andcdnow hasinterpreter.cd_is_zto fall back toz.- Koshka moved to fennec-support.
- The build system now has
MODE=tinyrel(up to 40% smaller),NO_KOSHKIT=1(omits bundled utilities), andHARDENED=1(traps on an out-of-bounds index). - The release installers have been updated to have PowerShell 5 support and now install all three manual pages.
Fixes
- Windows process substitution now has a private pipe implementation, and
/dev/nulland/tmpmap to their Windows equivalents.compatibility.dev_nullandcompatibility.slash_tmpturn the mappings off. - The parser and utilities have been updated to have fixes for data loss, crashes, and wrong results on hostile input.
- Extended regular expressions now have back-reference support on Linux and Windows, and an invalid
=~regular expression returns2like Bash. - Restricted shells now refuse mood,
koshconf, and Koshkit changes, and history files are no longer written to restricted paths.
Performance
- Execution now has 2x the speed of Dash and 6x the speed of Bash, and static analysis checks 400,000 lines of shell in under a second.
- Release binaries now have context-sensitive profile-guided optimization.
- Regular expressions in
[[ =~ ]],grep,sed, andexprnow have 2x to 3x the speed on Linux and Windows.
Downloads
The recommended way to install is to run:
# on Linux, macOS, or any system with a POSIX shell:
curl -fsSL "https://fennec.support/kosh/install" | sh
# on Windows, Powershell:
irm "https://fennec.support/kosh/install" | iex
# on Linux or macOS, with Homebrew:
brew tap fennec-support/kosh
brew install fennec-support/kosh/kosh
# with Docker, as an Alpine image:
docker run --rm -it "ghcr.io/fennec-support/kosh"These commands do everything for you automatically, invoked install.sh/ps1 from the scripts/ on the master branch, based on your system.
Please check the editor integrations:
| VS Code | Zed | Neovim |
|---|---|---|
| kosh-vscode | kosh-zed | kosh.nvim |
Below are the attached assets:
| Download | OS | Arch | Size |
|---|---|---|---|
kosh-linux-amd64-0.4.0 |
Linux | x86-64 | 7.5 MiB |
kosh-win32-amd64-0.4.0.exe |
Windows | x86-64 | 9.9 MiB |
kosh-linux-aarch64-0.4.0 |
Linux | AARCH64 | 7.0 MiB |
kosh-darwin-aarch64-0.4.0 |
macOS | Apple Silicon | 5.2 MiB |
Extras
| File | Contents | Size |
|---|---|---|
kosh.1.zst |
The kosh(1) manpage |
65.9 KiB |
kosh.5.zst |
The kosh(5) manpage |
12.2 KiB |
kosh-switching.5.zst |
The kosh-switching(5) manpage |
2.7 KiB |
kosh.bash |
The bash-completion script | 25.7 KiB |
Read README.md or the manpages for usage information. Contact the author if you have any questions, or need help.
New Contributors
- @ilyhalight made their first contribution in #12
Full Changelog: 0.3.0...0.4.0
0.3.0
This
not very important
text that exists
to create space for the
image on the right will
probably be
replaced when sleepy
author finally gets
some long-awaited
rest. Enjoy the
much
anticipated
release
and try to
pat the new mascot
and radiate
joy
Changelog
NEW
-
New
set --tab-selector <plain/interactive/external>option.interactiveis the default. Tab selector opens on Tab or Ctrl + Space, filters as you type, and previews the selected entry.
Ctrl-R history search uses the same interactive menu and also syntax-highlights the commands.
fzf and external can completion commands can work through--tab-selector external. -
New
set -/+o space-after-completionandset -/+o autocdto change directory without explicitcd. -
Much more powerful LSP: shell code inside other files can now be linted and formatted in more than 20 different formats.
-
VS Code and Zed extensions, and a Neovim has a ready snippet with format on save.
See here: VSCode, Zed, Neovim snippet -
Koshkit with 51 POSIX utilities is now built-in in the binary.
Koshkit's new inspection tools in theevil...andgood...families show processes, I/O, network, disk health, containers, and namespaces. -
Koshkit's calc is now exact in every mood, and
tail -f,find -iname, andls --treeare new. -
A lot of new linter warnings.
-
ghcr.io/toiletbril/koshis an Alpine image for amd64 and aarch64.
Fixes
-
Intrinsic completions now cover
export,type,which,date, Makefile recipes, andpackage.jsonscripts. -
Completion engine now safely quotes edge cases.
-
--clean,--language-server,--mimicry, and--optimizer-diagnosticsare now--no-init-files,--as-language-server,--enable-mimicry, and--show-optimizer-diagnostics. -
--show-exit-codereports only failures, and-Nreports every status.
Performance
- Scripts with a lot of functions now parse up to 100x faster. Oops.
- sort, grep, tail, cat, wc, stat, and ls do two to six times less work, and every recursive tool reads the disk in batches using
aio,kqueue, orio_uringwhen available.
Downloads
The recommended way to install is to run:
# on Linux, macOS, or any system with a POSIX shell:
curl -fsSL "https://fennec.support/kosh/install" | sh
# on Windows, Powershell:
irm "https://fennec.support/kosh/install" | iex
# with Docker, as an Alpine image:
docker run --rm -it "ghcr.io/toiletbril/kosh"These commands do everything for you automatically, invoked install.sh/ps1 from the scripts/ on the master branch, based on your system.
Below are the attached assets:
| Download | OS | Arch | Size |
|---|---|---|---|
kosh-linux-amd64-0.3.0 |
Linux | x86-64 | 7.5 MiB |
kosh-win32-amd64-0.3.0.exe |
Windows | x86-64 | 7.5 MiB |
kosh-linux-aarch64-0.3.0 |
Linux | AARCH64 | 6.5 MiB |
kosh-darwin-aarch64-0.3.0 |
macOS | Apple Silicon | 4.4 MiB |
Extras
| File | Contents | Size |
|---|---|---|
kosh.1.zst |
The kosh(1) manpage |
29.7 KiB |
kosh.5.zst |
The kosh(5) manpage |
1.1 KiB |
kosh.bash |
The bash-completion script | 10.7 KiB |
Read README.md or the manpages for usage information. Contact the author if you have any questions, or need help.
New Contributors
- @wikifur made their first contribution in #3
- @a-andreyev made their first contribution in #7
- @ShaTie made their first contribution in #9
Full Changelog: 0.2.0-rc1...0.3.0
0.2.0-rc1
Koshka 0.2.0 release candidate 1
Attached are amd64 binaries for Windows and Linux, and aarch64 for macOS.
This release includes the following changes:
Major:
- Rename
shitto Koshka and the executable tokosh. - Add fully-featured Kosh/Bash/Dash language server via
kosh --language-server. - Add support for indenting and formatting for Kosh/Bash/Dash via
kosh --format.
Minor:
- Add
compgen -V. - Add Bash-compatible
fchistory editing and execution (#4). - Add configurable welcome and farewell messages.
- Add Git branch, ahead and behind counts.
- Add Arch Linux and Alpine Linux packaging (#7) and Nix flake (#2).
- Add runtime platform details to
--version - Change Interactive suggestions to be history-first.
- Many other small fixes for Windows, Linux and macOS.
Please see README for usage information.
———
Full Changelog
New Contributors
- @wikifur made their first contribution in #3
- @a-andreyev made their first contribution in #7
0.1.0
Initial release!
Attached are amd64 binaries for Windows and Linux, and aarch64 for macOS.
This release includes various small fixes for macOS, Windows and bash compatibility, several speed-ups and features.
Please see README.md for usage information.
Full Changelog: 0.1.0-rc7...0.1.0
0.1.0-rc7
Attached are amd64 binaries for Windows and Linux, and aarch64 for macOS.
This release includes various small fixes for macOS and bash compatibility.
Please see README.md for usage information.
Full Changelog: 0.1.0-rc4...0.1.0-rc7
0.1.0-rc4
Attached are amd64 binaries for Windows and Linux, and aarch64 for macOS.
New Contributors
Full Changelog: 0.0.8-beta...0.1.0-rc4
Please see README.md for usage information.
0.0.8
Attached are amd64 binaries for Windows and Linux, and aarch64 for macOS.
shit has successfully booted desktop environment on a runit system symlinked as bash, which could mean it's became usable as a Bash replacement.
Please see README.md for usage information.
Full Changelog: 0.0.7-beta...0.0.8-beta

