#magic #bus #tui #browser #cross-platform

app magic-school-bus

Cross-platform TUI filesystem browser with Vi-like keybinds

9 releases (breaking)

✓ Uses Rust 2018 edition

0.7.0 Mar 1, 2019
0.6.0 Dec 10, 2018
0.5.0 Nov 11, 2018
0.4.0 Nov 8, 2018
0.1.0 Nov 7, 2018
Download history 15/week @ 2018-12-13 36/week @ 2018-12-20 19/week @ 2019-01-03 13/week @ 2019-01-10 8/week @ 2019-01-17 1/week @ 2019-01-24 3/week @ 2019-01-31 1/week @ 2019-02-21 27/week @ 2019-02-28 10/week @ 2019-03-07 3/week @ 2019-03-14 112/week @ 2019-03-21

63 downloads per month

MIT license


Magic School Bus

Current crates.io version

Seatbelts, everyone!

Magic School Bus is a terminal UI filesystem browser with Vi-inspired keybindings.

It's a work in progress, but runs on Windows, MacOS, and Linux!



Pre-built binaries are available on the GitHub Releases page.

Other Platforms and Rust Developers

Magic School Bus needs Rust 1.31 or newer to build.

If you already have Rust installed, you can grab Magic School Bus with:

cargo install magic-school-bus

# To upgrade, add --force to overwrite your current installation
cargo install --force magic-school-bus


To start up Magic School Bus, just run:

# Start in the current directory

# You can also pass a directory to start in
msb ../some-directory

This will start you on an educational adventure in your current directory:

Example of Magic School Bus

For detailed information on all options and flags, run:

msb --help


Actions marked with '(repeatable)' can be prefixed by a number, which will repeat the command N times.

  • q: Exit
  • j or <down arrow>: Move down in the list (repeatable)
  • k or <up arrow>: Move up in the list (repeatable)
  • g: Move to the top of the list
  • G: Move to the bottom of the list
  • <return>: Activate an item in the list
    • If the item is a folder, it'll become the focus
    • If the item is a file, it will be opened according to your operating system preferences
  • f: Find an entry starting with the given input
    • Use <tab> to cycle between options matching the current input
    • Use <return> or <escape> to exit find mode
  • ;: Jump to the next entry matching the most recent find command (repeatable)
  • ,: Jump to the previous entry matching the most recent find command (repeatable)
  • n: Create a new file, prompted for the name
    • Use <escape> to cancel
  • N: Create a new directory, prompted for the name
    • Use <escape> to cancel
  • x: Prompt to delete the selected entry
    • Press y to confirm or <escape> to cancel
  • r: Refresh the directory list, useful for when an outside program modifies the directory

Changing shell working directory on exit

Magic School Bus has a special mode intended to help move your shell to the location you navigated to when you exit!

Passing --pwd will cause the last working directory to be printed to stderr. You can set up an alias or function to capture stderr and cd to it if msb exited successfully!

The function I have configured in my .profile for Bash is:

function brw() {
	{ error=$(msb --pwd "$@" 2>&1 1>&$out); } {out}>&1

	if [ "$?" -eq 0 ]
		cd "$error"

I can type brw anywhere to be dropped into a filesystem explorer, navigate around, and when I pop out, I'll be in the right spot!


This project is available under the MIT license. Details are available in LICENSE.txt.


~16K SLoC