Skip to content

Releases

0.4.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 20:29

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 koshconf builtin and kosh.conf for shell settings.
    • Every setting is now stored in /etc/kosh/kosh.conf and ~/.config/kosh/kosh.conf. koshconf create kosh writes a fresh configuration file that documents every setting, and koshconf set mood bash --persist saves a change.
    • .koshrc is gone. The kosh mood now sources rc.kosh, and the bash mood loads existing Bash startup files untouched. See kosh-switching(5).
  • set --tab-selector, set -o space-after-completion, set -o mimicry, and related flags have been updated to have koshconf settings (completion.menu_style, completion.add_space_after_completed_word, and interpreter.mimic_shebang). --no-config starts the shell without loading them.
  • The line editor has been updated to have a kill ring, transposes, Ctrl-X Ctrl-E, undo on Ctrl-Z, live diagnostics in the hint row, M-x in Emacs mode, and :s, gg, and G in Vi mode.
  • Prompt rendering now has a right prompt (RPS1 and RPROMPT), a transient prompt (KOSH_TRANSIENT_PS1), and KOSH_PS1_... variables for every prompt escape.
  • Koshka now has the slurp builtin, a full-screen file editor built on the line editor with Emacs and Vi keys. koshkit also has koshkit vi and koshkit emacs linked to it.
  • koshkit has been updated to have new utilities and GNU options.
    • The utility suite now has less, more, pwdx, and meow.
    • Bundled utilities now have sed -i, grep -H, grep -L, grep -m, grep -a, cp -a, date -d, diff -q, wc -L, additional sort orders, cut --complement, xargs -P, realpath --relative-to, NUL-terminated output, and -x or --one-file-system across recursive tools.
  • source now has --mood to run a file in a selected mood. z now has an exact directory check before a frecency match, and cd now has interpreter.cd_is_z to fall back to z.
  • Koshka moved to fennec-support.
    • Distribution now has the container image ghcr.io/fennec-support/kosh and a Homebrew tap.
    • The editor extensions now have separate repositories for VS Code, Zed, and Neovim.
  • The build system now has MODE=tinyrel (up to 40% smaller), NO_KOSHKIT=1 (omits bundled utilities), and HARDENED=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/null and /tmp map to their Windows equivalents. compatibility.dev_null and compatibility.slash_tmp turn 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 returns 2 like 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, and expr now 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

Full Changelog: 0.3.0...0.4.0

0.3.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 19:22

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. interactive is 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-completion and set -/+o autocd to change directory without explicit cd.

  • 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 the evil... and good... 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, and ls --tree are new.

  • A lot of new linter warnings.

  • ghcr.io/toiletbril/kosh is an Alpine image for amd64 and aarch64.

Fixes

  • Intrinsic completions now cover export, type, which, date, Makefile recipes, and package.json scripts.

  • Completion engine now safely quotes edge cases.

  • --clean, --language-server, --mimicry, and --optimizer-diagnostics are now --no-init-files, --as-language-server, --enable-mimicry, and --show-optimizer-diagnostics.

  • --show-exit-code reports only failures, and -N reports 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, or io_uring when 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

Full Changelog: 0.2.0-rc1...0.3.0

0.2.0-rc1

Choose a tag to compare

@github-actions github-actions released this 22 Aug 06:48

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 shit to Koshka and the executable to kosh.
  • 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 fc history 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

0.1.0...0.2.0-rc1

New Contributors

0.1.0

Choose a tag to compare

@toiletbril toiletbril released this 04 Aug 17:52

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

Choose a tag to compare

@toiletbril toiletbril released this 06 Jul 21:53

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

Choose a tag to compare

@toiletbril toiletbril released this 01 Jul 22:11

Attached are amd64 binaries for Windows and Linux, and aarch64 for macOS.

New Contributors

  • @duumxh made their first contribution in #2

Full Changelog: 0.0.8-beta...0.1.0-rc4


Please see README.md for usage information.

0.0.8

Choose a tag to compare

@toiletbril toiletbril released this 22 Jun 15:58

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

0.0.7

Choose a tag to compare

@toiletbril toiletbril released this 12 Jun 19:28

Initial release!

No binaries yet. Please standby.

Please see README.md for usage information.