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

app magic-school-bus

Cross-platform TUI filesystem browser with Vi-like keybinds

3 unstable releases

new 0.2.1 Nov 7, 2018
0.2.0 Nov 7, 2018
0.1.0 Nov 7, 2018
Download history 20/week @ 2018-11-07

6 downloads per month

MIT license

980 lines

Magic School Bus

Current crates.io version

Seatbelts, everyone!

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

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


Magic School Bus needs Rust Beta 1.31 or newer to build since it uses features from the upcoming Rust 2018 Edition. That'll change when the edition reaches stable at the beginning of December, 2018!

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

rustup install beta
cargo +beta install 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: Move down in the list (repeatable)
  • k: 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 [character]: Jump to the next entry starting with [character] (repeatable)
  • F [character]: Jump to the previous entry starting with [character] (repeatable)
  • ;: 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:

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.


~17K SLoC