Self-hosted service
buyukakyuz/install-nothing avatar
buyukakyuz/install-nothing

install-nothing: A Nostalgic Terminal Installation Simulator

A terminal application that simulates installing things but doesn't actually install anything

1,350 stars45 forksRustMIT

At a glance

What is it?
install-nothing is a Rust terminal application that recreates the appearance of a long installation process without changing the system. It is aimed at developers and terminal users who want the visual ritual of installing software, presented through selectable stages and several distribution options.
Who is it for?
Adopt install-nothing for entertainment, demonstrations, or a lightweight terminal no-op, but do not use it to provision software or expect an interactive installation workflow. Before using it in a shared environment, verify that its output is suitable for the terminal setup and that everyone understands it cannot install packages, dependencies, or system components.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 48 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Why install-nothing Simulates Package Installation

install-nothing addresses a niche problem: recreating the visual experience of installing software without performing an installation. The README describes it as a terminal application that “simulates installing things” and explicitly states that it does not actually install anything. This makes it a novelty utility rather than a package manager, provisioning tool, build dependency, or replacement for an operating system installer.

The target audience is narrow but identifiable. Developers may want to demonstrate terminal interaction without downloading packages. Terminal enthusiasts may want a nostalgic infinite installer display. It can also serve as a harmless command that produces terminal activity, although the documentation does not define an automation interface or a scripting API.

The project should not be confused with tools such as Homebrew, Nix, Cargo, or Docker. Those systems install, build, or run software. install-nothing only presents a simulated process. Its Cargo.toml description calls it “A nostalgic infinite installer simulator,” which sets an important expectation: the intended experience is an ongoing installation display, not successful package placement.

That boundary makes install-nothing safe to treat as entertainment only if the operator understands the wording. A command named `install-nothing` may look like an installer, but it has no documented function for changing package state, invoking a package manager, creating files outside its application workflow, or configuring a machine.

Rust Dependencies and the Terminal Rendering Model

The repository uses Rust edition 2021 and declares several dependencies that align with an interactive terminal program. `clap` with the derive feature provides the command-line parser used for stage selection, exclusions, and help output. `crossterm` provides terminal interaction capabilities, while `colored` supports styled text. `rand` supplies random values, `chrono` supplies date and time handling, and `sysinfo` provides access to system information.

Those dependencies indicate a locally rendered terminal experience driven by CLI configuration and system data. The README confirms that users can select specific stages or exclude stages. The available stage names are obtained through the application's help command rather than hard-coded into the installation documentation. The examples use `kernel` as an included stage and `cloud` and `xorg` as excluded stages.

Based on the repository layout, `src/` contains the Rust application and `data/` is a separate top-level directory likely used for packaged content or configuration. The listed repository entries do not include the contents of the source code or data files, so the exact rendering loop, stage definitions, screen layout, and use of each dependency cannot be confirmed. It would be inaccurate to claim that it inspects a particular resource, changes terminal settings, or follows a documented event sequence beyond what the README establishes.

The application is also described as infinite. The README instructs users to press `Ctrl+C` to stop. That design implies a continuously updating display rather than a finite installation report. The documentation does not promise a completion state, success message, retry mechanism, or persistent record.

Running install-nothing Through Cargo

For a source-based first use, the README gives `cargo run --release` as the build and run command. This is the clearest documented path when a developer has the Rust toolchain and the repository checked out. The command builds the package and launches the simulator; it does not install the simulated items described on screen.

Run the default application with:

bash
cargo run --release

The simulator should begin its terminal display. Because the project is intentionally described as infinite, the expected action after inspecting it is to press `Ctrl+C`. The README does not document a completion prompt or a background daemon mode.

The command-line interface can narrow the simulation to one stage:

bash
cargo run --release -- kernel

This passes `kernel` as the selected stage. Alternatively, the user can exclude named stages:

bash
cargo run --release -- --exclude cloud xorg

The `--` separates Cargo runtime arguments from the application arguments. The README uses this form, and it avoids treating `--exclude` as a Cargo option. The application’s own help command is:

bash
cargo run --release -- --help

This should display the available stages and accepted options. The documentation does not state whether selecting an unknown stage produces an error, so users should rely on the help output rather than assuming a validation behavior.

Homebrew, Release Binaries, Nix, and Docker

The project offers several installation paths, but they differ in what they install. Homebrew and Nix install the simulator as software. The release-binary instructions execute a downloaded program. Docker packages the Rust binary into a container image. None of these routes causes the simulated stages to install real software.

For Homebrew, the documented command is:

bash
brew install install-nothing

After Homebrew completes, the application can be launched according to the user’s normal Homebrew environment. The README does not provide a separate launch command for that installation path.

For a downloaded release binary, the README uses this sequence:

bash
chmod +x install-nothing-*
./install-nothing-linux-x86_64

The first command makes the matching downloaded file executable. The second runs the Linux x86_64 binary named in the README. The exact filename is platform-specific, so the user must choose the release asset that matches the local system rather than assuming every binary has that name.

Nix support is also documented:

bash
nix profile install github:buyukakyuz/install-nothing
nix run install github:buyukakyuz/install-nothing

The first command installs the project into a Nix profile. The second runs the installed project through Nix.

Docker uses a two-step workflow:

bash
docker build -t install-nothing .

This builds the image from the repository’s `Dockerfile`. The documented run command is:

bash
docker run -it --rm --init install-nothing

The `-it` flag allocates an interactive terminal, `--rm` removes the container when it exits, and `--init` supplies an init process. The image entrypoint is `install-nothing`, as defined by the Dockerfile. The final runtime stage uses `debian:bookworm-slim`, runs as `appuser`, and places the compiled binary at `/usr/local/bin/install-nothing`.

Maintenance Signals and the MIT Licensing Boundary

The repository is not archived, and its last push was on 2026-09-05. That status indicates a recently changed repository, but it does not by itself promise a release schedule or long-term compatibility. The latest listed release is `v0.5.0`, dated 2025-12-17, while `Cargo.toml` also records version `0.5.0`.

Upgrade cost is low for casual use because the project is a standalone simulator with a small dependency list. The repository includes `Cargo.lock`, which gives a pinned dependency resolution for reproducible builds. It also includes `Dockerfile`, `flake.nix`, and `flake.lock`, so there are documented paths for containerized and Nix-based use. The Cargo.toml dependencies include exact-looking major and minor version declarations, while `Cargo.lock` is the stronger reference for the resolved dependency graph used by a particular build.

The project uses the MIT license. That permits broad use, modification, distribution, and reuse subject to the license terms, including preservation of the required notice. The README adds a playful request that movie use should credit the author “or something.” That sentence is not a substitute for the actual `LICENSE` file, and the repository information does not establish that the extra request modifies the MIT grant. Organizations should read the repository’s `LICENSE` file directly and handle compliance separately rather than treating this review as legal advice.

There is no documented migration guide, rollback procedure, or compatibility policy for future Rust, `clap`, `crossterm`, or terminal changes. The absence of a public homepage also means that installation and behavior documentation are concentrated in the repository README and release assets.

Why install-nothing Is Not a Package Manager

The main limitation is also the project’s defining feature. install-nothing cannot be used when the goal is to install a runtime, update a dependency, provision a container, or repair a system package. Its README explicitly says that it does not actually install anything, and it documents no package-manager integration or filesystem change operation.

It is also the wrong tool for environments that require deterministic completion. The application is described as an infinite simulator, and the documented exit method is `Ctrl+C`. That makes it unsuitable for scripts that require a finite status, installation result, machine-readable output, or dependency completion signal.

A real alternative is a conventional package manager such as Homebrew. The difference is direct: Homebrew resolves and installs packages, while install-nothing only renders a terminal simulation. Nix is another alternative for declarative software installation. Cargo is appropriate when the goal is to compile and run Rust code. Docker can package an application and its runtime environment, but the Dockerfile for install-nothing still runs a simulator rather than provisioning the stages shown by the program.

The practical comparison is therefore about intent. Use Homebrew, Nix, Cargo, or Docker to obtain and run software. Use install-nothing when the goal is a nostalgic terminal display with no installation side effect.

Editorial conclusion

Adopt install-nothing for entertainment, demonstrations, or a lightweight terminal no-op, but do not use it to provision software or expect an interactive installation workflow. Before using it in a shared environment, verify that its output is suitable for the terminal setup and that everyone understands it cannot install packages, dependencies, or system components. The v0.5.0 release, MIT license, repository state, and documented build paths support casual use, while Cargo.lock, the Dockerfile, and flake.nix provide concrete inputs for reproducing or packaging the application.

Frequently asked questions

Does install-nothing install software or packages?

No. The README states that install-nothing simulates installing things and does not actually install anything. Its purpose is a terminal installation display, not package provisioning.

How do I run install-nothing from source?

From the repository, run `cargo run --release`. The README documents this as the source build and launch command.

How do I stop the install-nothing terminal simulator?

Press `Ctrl+C`. The README describes the simulator as infinite and gives `Ctrl+C` as the way to stop it.

Can I choose which install-nothing stages appear?

Yes. The README documents selecting a stage with `cargo run --release -- kernel` and excluding stages with `cargo run --release -- --exclude cloud xorg`. Use `cargo run --release -- --help` to see the available stages.

Official sources

  1. buyukakyuz/install-nothing on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/buyukakyuz-install-nothing.svg)](https://hysenlabs.com/projects/buyukakyuz-install-nothing)

Was this useful?