Summary
Give the dcd install experience a visual polish pass. Two related surfaces:
- The install script —
install.sh (served via curl -fsSL https://get.devicecloud.dev/install.sh | sh)
- The CLI progress loader —
src/utils/progress.ts (the @clack/prompts spinner wrapper used across commands)
Both work correctly today; this is purely about making them look nicer / feel more premium.
install.sh
Currently all output goes through a plain info() / printf '%s\n'. Ideas to make it prettier:
- A small branded header/banner at the top (ASCII wordmark or a single tasteful line) so it's obvious the install started.
- Color + symbols (guarded on TTY +
NO_COLOR): green ✓ for success, dim grey for secondary lines like from: / to:, yellow ! for the shadowing-install warning, red for errors.
- Group the "Resolving latest version…" → "Installing…" → download → "✓ Installed" steps into clear visual stages rather than a flat wall of lines.
- Nicer final "next steps" block (PATH hint /
dcd --help) — visually set apart from the install log.
Constraints to respect:
- Must stay POSIX
sh (script is #!/usr/bin/env sh, set -eu), no bash-isms.
- Keep the
curl | sh safety property (everything wrapped in main(), invoked on the last line).
- Degrade gracefully with no colors when not a TTY /
NO_COLOR is set / dumb terminal.
- Don't change the
--progress-bar download to anything that breaks non-interactive/CI installs.
Progress loader (src/utils/progress.ts)
- Review spinner frames, colors, and status-line styling for a more polished look, consistent with
src/utils/styling.ts / ui.ts.
- Ensure the CI fallback (one plain line per distinct status) still reads well and stays clean.
Acceptance
- Install output looks noticeably more polished in an interactive terminal.
- No regressions in CI / non-TTY /
NO_COLOR environments.
- Still POSIX-sh clean and
curl | sh-safe.
Summary
Give the
dcdinstall experience a visual polish pass. Two related surfaces:install.sh(served viacurl -fsSL https://get.devicecloud.dev/install.sh | sh)src/utils/progress.ts(the@clack/promptsspinner wrapper used across commands)Both work correctly today; this is purely about making them look nicer / feel more premium.
install.shCurrently all output goes through a plain
info()/printf '%s\n'. Ideas to make it prettier:NO_COLOR): green✓for success, dim grey for secondary lines likefrom:/to:, yellow!for the shadowing-install warning, red for errors.dcd --help) — visually set apart from the install log.Constraints to respect:
sh(script is#!/usr/bin/env sh,set -eu), no bash-isms.curl | shsafety property (everything wrapped inmain(), invoked on the last line).NO_COLORis set / dumb terminal.--progress-bardownload to anything that breaks non-interactive/CI installs.Progress loader (
src/utils/progress.ts)src/utils/styling.ts/ui.ts.Acceptance
NO_COLORenvironments.curl | sh-safe.