marimo is an open-source reactive notebook for Python - reproducible, git-friendly, executable as a script, and shareable as an app.
Run one cell and marimo reacts by automatically running affected cells, eliminating the error-prone chore of managing notebook state. marimo's reactive UI elements, like dataframe GUIs and plots, make working with data feel refreshingly fast, futuristic, and intuitive. marimo notebooks are pure Python and stored as .py files. Version with git, run as Python scripts, import symbols from a notebook into other notebooks or Python files, and lint or format with your favorite tools. You'll always be able to reproduce your collaborators' results. Notebooks are executed in a deterministic order, with no hidden state — delete a cell and marimo deletes its variables while updating affected cells.
Collaborate on notebooks with git: small changes yield small diffs. Goodbye JSON, hello Python! Want to share outputs? Export to static HTML, or serve your notebook as a web app with the marimo CLI. The marimo editor comes with GitHub Copilot, autocomplete, hover tooltips, vim keybindings, code formatting, debugging panels, and extensive hotkeys. marimo also ships with a CLI, a library, and a VS Code extension. Learn more at our docs.
Zellij is a terminal workspace. It has the base functionality of a terminal multiplexer (similar to tmux or screen) but includes many built-in features that would allow users to extend it and create their own personalized environment. Like other multiplexers, Zellij allows users to split their terminal into different panels and tabs. Zellij includes a layout engine, allowing users to define a map of panes in a configuration file and load it when they start the app. This way, one can have one’s panes laid out just the way one wants them without having to do all the setup work. Supports plugins written in any compiled language.
A game to learn (or teach) how to use standard commands in a Unix shell.
Teaching first-year university students or high schoolers to use a Unix shell is not always the easiest or most entertaining of tasks. GameShell was devised as a tool to help students at the Université Savoie Mont Blanc to engage with a real shell, in a way that encourages learning while also having fun. The original idea, due to Rodolphe Lepigre, was to run a standard bash session with an appropriate configuration file that defined "missions" which would be "checked" in order to progress through the game.
Available in English, French and Italian.
GameShell should work on any standard Linux system, and also on macOS and BSD (but we have run fewer tests on the latter systems). On Debian or Ubuntu, the only dependencies (besides bash) are the gettext-base and awk packages (the latter is generally installed by default). Some missions have additional dependencies: these missions will be skipped if the dependencies are not met.
In the AUR.
Busybox ported to Windows. Can be compiled for both 32-bit and 64-bit Windows. Includes shells. Can be cross-compiled from a Linux box. Make sure that you look at the README.md file, not the regular README for build documentation.
Rc is a command interpreter for Plan 9 that provides similar facilities to UNIX’s Bourne shell, with some small additions and less idiosyncratic syntax. This paper uses numerous examples to describe rc’s features, and contrasts rc with the Bourne shell, a model that many readers will be familiar with.
direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory. Load 12factor apps environment variables. Create per-project isolated development environments. Load secrets for deployment.
Before each prompt, direnv checks for the existence of a .envrc file in the current and parent directories. If the file exists (and is authorized), it is loaded into a bash sub-shell and all exported variables are then captured by direnv and then made available to the current shell.
It supports hooks for all the common shells like bash, zsh, tcsh and fish. This allows project-specific environment variables without cluttering the ~/.profile file.
Because direnv is compiled into a single static executable, it is fast enough to be unnoticeable on each prompt. It is also language-agnostic and can be used to build solutions similar to rbenv, pyenv and phpenv.
A set of shell scripts and aliases that improve your shell usage. Automatically prints system status reports when a shell boots up, does basic monitoring, sets useful aliases, can even print an ASCIIfied logo when you log in. Tries to be configurable; you can pick only the stuff you want when you install it and has its own configuration files. Called from your ~/.bashrc file. Easy to uninstall, too:
rm -rf ~/.config/synth-shell/
Does not work so well on OSX. Seems to be Linux-specific, regardless of the fact that it uses bash.
A quick, fast, and easy reverse shell generator for bash, Lua, netcat, PHP, and other tools and languages.
Eternal Terminal (ET) is a remote shell that automatically reconnects without interrupting the session. A layer in between an application and unix TCP sockets that make the sockets robust to TCP disconnects including roaming and connection failure. Implements some of the tmux user experience, even works with the tmux control center (tmux -CC
). Buffers bytes written and read so they can be replayed in the event of a disconnection. Starts with SSH to make the initial connection and authentication. After that, it uses its own encrypted network protocol.
An alternative initramfs for Linux that offers additional technical capability. Boot from systems with some combination of encrypted storage, softraid, and LVM. Has a minimal rescue environment that you can SSH into. Even supports booting into and restoring suspended systems.
SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more. Some of this stuff can be used to prime discovery operations.
How to make cronjobs run stuff in shells with full sets of environment variables.
An open source GUI app for Linux which helps you clean out old tempfiles and logs that are taking up disk space. The fact that this also makes for good personal information hygine is parenthetical. Can clean out files for Firefox, bash, Beagle, Flash, and more.