Try uutils coreutils directly in your browser! This interactive terminal runs Rust uutils via WebAssembly - no installation needed.
Try it out
Click an example to run it in the terminal:
Errors that point at the problem
Give a utility an argument it cannot parse and it does more than say so: it echoes the argument back and puts a caret under the character that broke. Click one and watch where it points
28 utilities do this in 0.11.0 π― - the blog post walks through how it works and what each one points at. Scripts and pipes are unaffected: the caret is only drawn when a person is watching, so anything reading stderr still gets the same single line it always did.
Sharing commands via URL
After running a command, click π Copy share link below the terminal to copy a link that reruns it. You can also build one by hand with the ?cmd= URL parameter. The command runs automatically when the page loads - great for sharing examples or linking from documentation.
Examples:
?cmd=date- show the current date?cmd=seq 1 10 | factor- factorize numbers 1β10?cmd=echo 'Hello, world!' | sha256sum- hash a string?cmd=sort fruits.txt | uniq -c | sort -rn- count and rank fruit
Multiple commands can be run in sequence, separated either by ; on one line or by newlines (%0A in the URL):
?cmd=echo hello%0Aecho world- run two commands in sequence?cmd=updatedb; locate names- build the locate database, then search it
Add ?lang= to run the command in another language - it sets the locale the
same way the Language dropdown does, before the command runs. Both the full
form (fr-FR) and the short form (fr) work, and an unknown language is
ignored. The share-link button includes it automatically when the locale isn't
the default:
?lang=fr-FR&cmd=cut -f 1,4-2,9-12 fruits.txt- a French error message?lang=de&cmd=ls /nope- a German error message
Available commands
The following commands run as real Rust coreutils compiled to WebAssembly:
Loading the list of available commandsβ¦
The following are shell builtins implemented in JavaScript:
help- list available commands and examplesclear- clear the terminal screencd- change the current working directorylocale- show or change the current locale
grep, find/locate/updatedb, diff/cmp and sed come from their own uutils projects and
are downloaded on demand the first time you use them.
Some commands (e.g. chcon, runcon, etc.) are not yet available in the WASM build because they
depend on platform-specific syscalls not fully supported by WebAssembly/WASI.
We are actively working on adding more commands as we improve WASI compatibility in uutils coreutils.
Curious about how this all works under the hood? Read the technical deep-dive on the playground architecture.
The source code for this website (including the playground) is available on GitHub.