A cross-platform reimplementation of GNU coreutils in Rust, providing drop-in replacements for commands like ls, cat, and cp.
landley/toybox
An all-in-one multicall binary that implements many standard Linux command line utilities in a single, configurable C program.
- Stars
- 3,161
- Forks
- 412
- Open issues
- 143
- Last commit
- last month
What is it?
Toybox is a single multicall executable that provides a large set of standard Linux command line tools, such as cp, mv, cat and echo. Which commands are included is chosen at build time through a kernel-style configuration system (defconfig, menuconfig), so a build can be kept small for embedded or minimal systems.
The binary behaves differently depending on the name it is invoked by, and running "toybox" with a command name as its first argument works without installing symlinks. Builds can be static and cross-compiled for other architectures, and the project includes a script, mkroot.sh, for assembling a small Linux system that boots to a shell under qemu.
The project is written in C and released under the 0BSD license. Its maintainer accepts patches through a mailing list, and the source is hosted on Codeberg.
Key features
- 01Bundles many standard Linux commands into one multicall binary.
- 02Lets you choose included commands through a kernel-style menuconfig build.
- 03Supports static builds and cross compilation for multiple architectures.
- 04Includes mkroot.sh for building a minimal bootable Linux system.
- 05Provides a help command documenting each included tool.
Use cases
- Building a small root filesystem for embedded devices.
- Running a minimal set of command line tools on resource-constrained systems.
- Creating a custom Linux userland with only the commands you need.
- Testing a Linux system bootstrapped under qemu.
Quick start
- 1
Configure the build with default settings
make defconfig - 2
Build toybox
make - 3
Install toybox
make install
In collections
Topics
FAQ
- What is toybox?
- An all-in-one multicall binary that implements many standard Linux command line utilities in a single, configurable C program. Toybox is a single multicall executable that provides a large set of standard Linux command line tools, such as cp, mv, cat and echo. Which commands are included is chosen at build time through a kernel-style configuration system (defconfig, menuconfig), so a build can be kept small for embedded or minimal systems.
- Is toybox free to use? What license does it have?
- toybox is open source under the 0BSD license. Check the license terms before using it in commercial products.
- Is toybox still maintained?
- Updated within 6 months. The last commit to toybox was on Oct 6, 2026.
- What can I use toybox for?
- Building a small root filesystem for embedded devices. Running a minimal set of command line tools on resource-constrained systems. Creating a custom Linux userland with only the commands you need. Testing a Linux system bootstrapped under qemu.
- How do I install toybox?
- Configure the build with default settings: make defconfig Build toybox: make Install toybox: make install
- Where can I get toybox?
- The source code and installation instructions are on GitHub: https://github.com/landley/toybox
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Linux operating system for embedded routers and devices with a fully writable filesystem and package management.
A cross-platform, GPU-accelerated OpenGL terminal emulator that relies on other tools like tmux for tabs and splits.
Termux is an Android terminal app and Linux environment that runs a shell with installable packages on your phone.
Cross-platform shell, scripting language and automation framework for Windows, Linux and macOS, built for structured data and objects.
Command-line tool that customizes the official Spotify desktop client with themes, injected CSS, extensions and custom apps.