Download
Free and open source · macOS

Learn bash by using it.

Bashbox is a Mac app with a real bash shell built in. Read a short lesson, then complete missions in the terminal right beside it. Bashbox checks your work as you type.

Universal app for Apple silicon and Intel · macOS 14 Sonoma or later

Bashbox showing the 'Pipes, redirection, head & tail' lesson on the left and a bash terminal running head, tail and grep on the right.
22lessons
96hands-on missions
8topics, prompt to cron
0accounts or setup
How it works

Read a little, type a lot.

Every lesson follows the same loop, so you spend your time in the shell instead of reading about it.

1

Read the lesson

Short explanations with real examples. Hit Try it on any example and Bashbox types it into the terminal for you.

2

Run it yourself

The shell next to the lesson is real bash. Each lesson gets its own folder with practice files already in it, like logs, CSVs and scripts.

3

Clear the missions

Bashbox watches what you run and the files you change, and ticks off each mission when you get it right. Hints and solutions are there if you're stuck.

Features

Everything you need, nothing in the way.

Missions

Your progress is checked as you type.

The mission bar shows the one task you're on, with a progress bar for the lesson. No quizzes or multiple choice: you pass by running the command or making the file.

  • Hints and full solutions stay hidden until you ask for them
  • Collapse the sidebar for a focused, two-pane view
  • Progress is saved, so you can pick up where you left off
Processes & jobs lesson with the sidebar collapsed. The mission bar reads 'Mission 2/5: Start sleep 300 in the background', and the terminal shows background jobs being listed and killed.
Diagrams

See what's happening under the hood.

Every lesson has a diagram of the mechanism behind the commands: how a pipe connects processes, where stderr goes, what SSH does with your keys.

  • 22 diagrams, one per lesson
  • A quick reference table of the options you'll actually use
  • macOS notes wherever BSD tools differ from GNU/Linux
Diagram of the pipeline cat server.log | grep ERROR | wc -l, with stderr redirected to errors.txt.
Roadmap

A clear path from first prompt to cron jobs.

The roadmap lays out every lesson and topic in order, with what you've finished marked off. Work top to bottom, or jump to whatever you need today.

The Bashbox roadmap: a vertical path of lessons from 'The shell & the prompt' through Basic Commands, each with its topics.
Dashboard

Always know what's next.

The dashboard shows your progress through each topic and takes you straight back into the lesson you were working on.

The Bashbox dashboard with quick actions, configuration details and per-topic progress bars.
The details

Built for practice.

A real shell

Not a simulator. It's your Mac's own /bin/bash, so everything you learn works the same in Terminal.

Its own home folder

The shell starts in a separate practice folder, with one workspace per lesson, so your own files stay out of the way.

Reset any lesson

Broke something? One click restores the lesson's starting files and clears its missions so you can go again.

Try it buttons

Examples type themselves into the prompt without pressing Return, so you can read and tweak them first.

Private and offline

No account, no tracking, no network needed. Your progress lives on your Mac.

Keyboard friendly

⌘ [ and ⌘ ] move between lessons, and ⌘ \ hides the sidebar.

Curriculum

The bash every engineer uses.

Eight topics, ordered so each one builds on the last. Based on the everyday material from the W3Schools Bash tutorial.

01

Getting Started

What a shell is, how to read the prompt, and the shape of every command.

1 lesson5 missions
02

Basic Commands

Move around the filesystem and create, read, copy, move and delete files.

4 lessons18 missions
03

Text Processing

Chain small tools with pipes to search, slice, sort and rewrite text.

4 lessons19 missions
04

System Monitoring

See what's running, stop what's stuck, and find out where your disk and memory went.

2 lessons10 missions
05

Networking

Check connectivity, call HTTP APIs, and work with remote machines over SSH.

2 lessons8 missions
06

File Compression

Bundle and compress folders, peek inside archives, and extract them.

1 lesson4 missions
07

File Permissions

Read permission strings, make scripts executable, and control who owns what.

2 lessons8 missions
08

Scripting

Turn commands you repeat into scripts with variables, conditions, loops and functions, then schedule them.

6 lessons24 missions
Install

Up and running in a minute.

Bashbox comes as a standard Mac disk image (DMG).

  1. Download the DMG

    Get Bashbox.dmg from the latest GitHub release. It's one universal download for Apple silicon and Intel Macs.

  2. Open it and drag Bashbox to Applications

    Double-click Bashbox.dmg in your Downloads folder. In the window that opens, drag the Bashbox icon onto the Applications folder.

  3. Eject the disk image

    In Finder's sidebar, click the eject button next to Bashbox. You can then delete the DMG.

  4. Open Bashbox

    Launch it from Applications, Launchpad or Spotlight (⌘ Space, then type “Bashbox”). The first launch needs one extra step; see below.

If macOS says Bashbox can't be opened. Bashbox is free and isn't notarized by Apple, so the first launch is blocked by Gatekeeper. To allow it:

macOS 15 Sequoia and later: open Bashbox once and click Done. Then go to System Settings → Privacy & Security, scroll down to the message about Bashbox, click Open Anyway, and confirm with your password.

macOS 14 Sonoma: in Applications, Control-click Bashbox, choose Open, then click Open again.

You only need to do this once.

Requirements

  • macOS14 Sonoma or later
  • MacApple silicon or Intel
  • DownloadAbout 5 MB
  • ShellBuilt-in /bin/bash
Prefer the Terminal?

Clear the quarantine flag after copying the app to Applications:

xattr -dr com.apple.quarantine /Applications/Bashbox.app
Build from source

Needs Xcode 16 or the Swift 6 toolchain.

git clone https://github.com/mmerioles/bashbox.git cd bashbox swift run

To make your own DMG, run scripts/build-dmg.sh.

Uninstall

Drag Bashbox from Applications to the Trash. To also remove your practice files and progress:

rm -rf ~/Library/Application\ Support/Bashbox defaults delete io.github.mmerioles.bashbox

Open a shell and start typing.

Free, open source, and ready in a minute.