HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ibara
oksh
C2019–2026
ibara / oksh

oksh

Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh).

7Distinct people
11Mentions
1Explicit recommenders
462GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh).

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

Some of this could be down to the completions that are provided. A package such as bash-completions comes with completions for a lot of common software. One specific solution…

roryrjb used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

  • ksh93/ksh · linked in 2 of the same discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year11 dated mentions

Observed mentions: 2019-01-08 17:39:04 UTC to 2026-03-17 21:07:46 UTC.

01232019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC303
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC303
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

11 sources
It depends on what you are looking for. My recommendation for learning "how is X done in a shell" is the OpenBSD ksh: https://github.com/ibara/oksh It's what they use for /bin/sh, it has everything that a complete shell needs (including a mechanism for providing command completions) and has code that is much easier to read than bash or zsh. Something that I also would recommend is the design document for the plan9 rc shell; it is a worthwhile read for anybody interested in shells: https://doc.cat-v.org/plan_9/4th_edition/papers/rc An implementation is also available if one wants to look at how it could be done: https://github.com/rakitzis/rc
In Building a Shell
All of Android is still based on a pdksh-derivative known as mksh, which is an enormous install base. http://www.mirbsd.org/mksh.htm OpenBSD switched their default shell to their own pdksh-derivative known as oksh. https://github.com/ibara/oksh There was an effort to (re)start ksh93 development, but AT&T halted this effort. The bugfixes from the failed effort have moved back into Korn's last release. https://github.com/ksh93/ksh/tree/dev
In Pnut: A C to POSIX shell compiler you can trust
I've added links to the below quote: >"oasis uses smaller and simpler implementations of libraries and tools whenever possible: musl instead of glibc (https://www.musl-libc.org/) sbase instead of coreutils (https://git.suckless.org/sbase/file/README.html) ubase instead of util-linux (https://git.suckless.org/ubase/file/README.html) pigz instead of gzip (https://zlib.net/pigz/) mandoc instead of man-db (https://mandoc.bsd.lv/) bearssl instead of openssl (https://bearssl.org/) oksh instead of bash (https://github.com/ibara/oksh) sdhcp instead of dhclient or dhcpcd (https://core.suckless.org/sdhcp/) vis instead of vim or emacs (https://github.com/martanne/vis) byacc instead of bison (https://invisible-island.net/byacc/) perp and sinit instead of sysvinit or system 44 (http://b0llix.net/perp/ https://github.com/wereHamster/perp https://troubl
Read the rest
eshooters.com/linux/diy/suckless_init_on_plop....) netsurf instead of chromium or firefox (https://www.netsurf-browser.org/) samurai instead of ninja (https://github.com/michaelforney/samurai) velox instead of Xorg (https://github.com/michaelforney/velox) netbsd-curses instead of ncurses (https://github.com/sabotage-linux/netbsd-curses)" (Oh, and not to quote Dwayne "The Rock" Johnson's character "Maui" from Disney's Moana or anything -- but "You're welcome!" <g> :-) <g>)
In Oasis – a small, statically-linked Linux system
David Korn's ksh93 was passed on to a new set of developers, who attempted to release a new version; AT&T rolled back these changes due to performance problems which raised questions of support status. It does appear that ksh93 development has resumed, and a new version was released late last year. https://github.com/ksh93/ksh/releases The independent pdksh spawned mksh, which is the default shell used in Android (as it has a BSD license); mksh appears to be very much active. http://www.mirbsd.org/mksh.htm [https site has cert problems] OpenBSD also forked oksh from pdksh. This is certainly well-maintained. https://github.com/ibara/oksh
In Faster shell startup with shell switching
There are many unofficial efforts to bring OpenBSD software to other systems. For example, there are at least two maintained ports of OpenBSD ksh, https://github.com/dimkr/loksh (Linux) and https://github.com/ibara/oksh (cross-platform). There are also at least two of doas, https://github.com/slicer69/doas and https://github.com/nholstein/OpenDoas. I wish they were catalogued somewhere, like an "awesome list". I would love to see portable OpenBSD cron. Features like random ranges with steps (https://undeadly.org/cgi?action=article;sid=20230507122935) and `-s` (https://man.openbsd.org/OpenBSD-7.2/crontab.5#s) put it ahead of almost every other. It could replace many uses of systemd timers on Linux. Edit: Added doas ports.
In Portable OpenBSD vi for Unix systems
...and that ksh descended from pdksh, and is distributed as the oksh portable project here: https://github.com/ibara/oksh The MirBSD Korn Shell also descended from pdksh, and it can be found here: http://www.mirbsd.org/mksh.htm I don't know about the feature differences and code quality between these two; they both implement most of ksh88, and a small amount of ksh93. I prefer mksh when I need something more than a POSIX shell.
In OpenBSD 7.0
As an alternative, as mentioned already in response to another comment is oksh (https://github.com/ibara/oksh), a portable version of OpenBSD's pdksh. It's in the same Bourne shell lineage as bash but is lighter and the completion is simpler: you have to customise it if you want it to work for you, but it's very easy and quick to do.
In How Bash Completion Works
roryrjb·Oct 6, 2019Recommendation phrase
Some of this could be down to the completions that are provided. A package such as bash-completions comes with completions for a lot of common software. One specific solution to your problem, well a suggestion is to use oksh (https://github.com/ibara/oksh) a portable version of pdksh (public domain Korn shell) that comes from OpenBSD. The reason why I recommend this shell is that it has programmable completion, although it is much simpler than what's provided by bash and that aside from the built in file name completion it won't come with anything else and you won't find (aside from people's dotfiles on Github) any packages that provide you with anything. Basically you have to customise it to your needs, but because the completion is so simple, whenever you find yourself in a situation where you'd want completion, spend a few minutes addi
Read the rest
ng it to your .kshrc and move on.
In How Bash Completion Works
"If anyone knows of a shell which meets my criteria of being lightweight but with command history and tab completion (paths, command names and command arguments), I'd really appreciate any suggestions. Otherwise I may have to look into extending dash or something." I would also love to know the answer to this question. I am a big fan of shells and shell programming in general and POSIX shell in particular. Only suggestion I currently have is ksh, of which there are a few implementations, ksh93 still developed (https://github.com/att/ast), pdksh from OpenBSD (of which there is a portable version here: https://github.com/ibara/oksh) and MirBSD ksh (https://www.mirbsd.org/mksh.htm). Otherwise of interest is mrsh: https://github.com/emersion/mrsh which was recently mentioned by Drew DeVault in a blog post linked here: https://news.ycombinator
Read the rest
.com/item?id=18777909. EDIT: And by mentioning mrsh, I meant it as a better/easier base to extend to get what you are asking for.
In Bash 5.0 released

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.