| # | Time | Cycle | Stage | Package | Message | Progress | Copy |
|---|---|---|---|---|---|---|---|
| {{ row.idx }} | {{ row.time }} | {{ row.cycle }} | {{ row.stage }} | {{ row.package }} | {{ row.message }} | {{ row.progress }} | |
| No events yet. Start the simulator to populate the table. | |||||||
Installer logs are staged text streams that show dependency setup, package download, unpacking, configuration, and cleanup. People read them to judge whether an install is moving forward, waiting on a network, or failing early, so the rhythm of those lines matters almost as much as the words themselves. This simulator recreates that rhythm without touching the host machine.
The package covers ten preset families modeled after APT, Homebrew, Winget, DNF, Pacman, Chocolatey, npm, pip, Cargo, and a shell-installer pattern. Instead of replaying one canned transcript, it builds looping package queues, stage-aware messages, synthetic network telemetry, retries, and completion lines so the terminal keeps feeling alive.
That makes it useful for onboarding videos, classroom demos, interface mockups, conference booths, and product shots where you need believable terminal motion without actually installing software. A cleaner run can sit behind narration, while a noisier run can show throttling, retries, and recovery without risking a real system state.
The same session can also be presented in different shells while still keeping a structured event history and a JSON summary. A numeric seed lets you replay the same sequence when you need matching takes, which is especially helpful when timing a recording around a particular retry or completion moment.
The output is simulated, and that boundary matters. A convincing download, checksum, or install message here does not prove a real package manager would behave the same way, so use the result for presentation and rehearsal rather than diagnostics, audit evidence, or change tracking.
For a clean first pass, choose one Scenario, leave Network profile on auto, set Line pace to 1.00x, and turn Warnings & jitter off. That gives you a readable baseline with normal stage changes and no theatrical stalls. Once that looks right, add noise only if the story you are telling actually needs it.
The most common misread is treating the session like a performance test. Progress, Retries, average speed, and latency are narrative metrics inside this package, so verify the scenario label, seed, and retained line count before you treat two runs as comparable.
The simulator keeps a local session state that includes the chosen preset, an active package queue, current stage, loop progress, event history, network telemetry, and an optional deterministic seed. On Start or Reset, it builds a queue of 3 to 18 packages from the selected preset, guarantees that installer-sim appears in that queue, types the scenario command, and then begins emitting stage-aware lines.
Each package moves through five stages: Prepare, Download, Install, Configure, and Finalize. Those stages select different template families, and the package also tracks stage-local download or install percentages so progress lines feel plausible instead of random. Package-level completion rolls into loop-level Progress, and once every selected package reaches the end, the cycle increments and the queue starts over.
Network profile shapes timing as much as message content. Stable profiles use lower base delay, higher throughput, and lower latency. Throttled or flaky profiles add more jitter, slower transfer samples, and a stronger bias toward warnings. When warning injection is enabled, retries and slowdowns reduce stage progress and push the average speed and latency badges away from the clean baseline.
A numeric Random seed switches the generator from non-deterministic randomness to a repeatable pseudo-random stream. That affects package order, versions, hosts, network samples, and warning placement. The popup and fullscreen views do not start a separate run; they mirror the same live session. Older events are trimmed to the configured 80 to 600 line cap, and exports operate on that retained event set.
| Stage | Boundary rule | Typical message family |
|---|---|---|
| Prepare | 0 <= progress < 12 |
Dependency resolution, package selection, or preflight checks. |
| Download | 12 <= progress < 38 |
Package fetches, transfer sizes, speeds, retries, and checksum-style noise. |
| Install | 38 <= progress < 68 |
Unpacking, linking, or compiling lines. |
| Configure | 68 <= progress < 96 |
Hooks, PATH hints, post-install tasks, or trigger processing. |
| Finalize | 96 <= progress <= 100 |
Completion summaries and loop restart lines. |
| Output | What it carries |
|---|---|
| Terminal | Live prompt, scrolling log lines, timestamps, and current status line for the active session. |
| Events Table | Structured rows with #, Time, Cycle, Stage, Package, Message, and Progress. |
| JSON | Scenario label, command, display state, metrics, config, and the retained event list. |
| Summary badges | Progress, Packages, average speed, latency, network profile, and optional retry count. |
The terminal viewport is the presentation surface, but the Events Table is the authoritative retained record because CSV, DOCX, and JSON exports are all built from the same in-memory session state.
The cleanest workflow is to lock the story first, then let the simulator fill in the visual detail around it.
For faithful reruns, keep Scenario, Random seed, Network profile, Line pace, warning mode, and package count unchanged.
Progress is progress through the current simulated loop, not a real installer percentage. Packages 4/9 means four selected packages in the current cycle have finished. Retries, average speed, and latency describe the synthetic conditions used to shape the narrative, not actual repository or disk behavior.
A realistic-looking finish line does not mean software is ready. The useful trust check is whether the retained event record says exactly what you intend to present, not whether the terminal looks dramatic.
Set Scenario to Homebrew (macOS), keep Line pace at 0.90x, turn Warnings & jitter off, set Packages per loop to 6, and enter Random seed = 424242. The terminal title shows brew install --formula installer-sim, the summary starts with Loop #1 · Homebrew (macOS), and the badges climb through Progress with no retry count shown. The Events Table moves cleanly through Prepare, Download, Install, Configure, and Finalize, which makes this a strong choice for narrated tutorial footage.
Choose Shell installer (curl | bash), switch Network profile to Unstable hotspot, turn Warnings & jitter on, and keep Packages per loop at 4. The summary badges show Unstable hotspot and a rising Retries count, while the terminal mixes fetch lines with checksum mismatches, slowed TLS sessions, and retry scheduling before the loop completes. That is useful when you want visible drama, but the right reading is still theatrical: none of those warnings validate a real bootstrap script.
Run APT (Linux) with Packages per loop = 12 and Max log lines = 80, then let the session continue until Loop #2 begins. When you open Events Table, row #1 is no longer the start of the whole session because older events were trimmed. The CSV, DOCX, and JSON exports will reflect that same retained view. Increase Max log lines to 300 and press Reset before the next capture if you need more early-stage history.
No. The package generates a simulated session in the browser. It does not contact repositories, execute shell commands, or inspect the local package database.
Yes. Enter a numeric Random seed, keep the same Scenario, Network profile, Line pace, warning mode, and Packages per loop, then use Reset. Changing any of those inputs gives the deterministic generator a different path to follow.
Max log lines trims the retained event history. The terminal, Events Table, CSV, DOCX, and JSON exports all follow that same retained set, so raise the cap and reset the session before you record a longer sequence.
If the simulator is already running, a scenario switch is queued. The form tells you that the change will apply on the next Start or Reset, and the current terminal keeps using the active scenario until then.
No. Those views mirror the same live session state. They are presentation modes for the current terminal, not independent generators with separate progress or retry counts.