MarketDeck docs

Install via shell

One-liner installer for macOS and Linux — fetches the latest release, drops the binary on your PATH. The simplest install path.

The fastest way onto MarketDeck. A single shell command grabs the latest release for your OS / architecture, extracts it under ~/.local/share/marketdeck, and symlinks ~/.local/bin/marketdeck so the CLI is on your PATH immediately. No clone, no npm install, no native rebuild.

This is the recommended path for most users — pick npm or source only if you want the install rooted in your Node global prefix or a working tree you can edit.

What you need#

  • macOS or Linux. (Windows: see the PowerShell installer below.)
  • Node.js 20+ on PATH. The installer ships the JS bundle and the native better-sqlite3 .node, but the interpreter itself is yours.
  • curl. Already there on every supported distro and on macOS ≥ 10.15.

Verify Node:

node --version   # should report v20.x or higher

If you don't have Node 20+ yet, the cleanest path is nvm on Linux/macOS:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20

Install#

curl -sSL https://marketdeck.io/install.sh | sh

That's it. The script:

  1. Detects your OS (linux/darwin) and architecture (x64/arm64).
  2. Resolves the latest version from the public Gitea releases feed.
  3. Downloads marketdeck-<version>-<platform>-<arch>.tar.gz.
  4. Extracts into $MARKETDECK_PREFIX (default ~/.local/share/marketdeck).
  5. Symlinks $MARKETDECK_BIN_DIR/marketdeck (default ~/.local/bin/marketdeck).
  6. Prints a PATH warning if the bin dir isn't on your PATH yet.

If ~/.local/bin isn't on your PATH (some minimal distros), add this to your shell init (~/.profile, ~/.bashrc, ~/.zshrc, …):

export PATH="$HOME/.local/bin:$PATH"

Open a new shell and you're set.

Pinning a version#

The installer reads MARKETDECK_VERSION from the environment, so you can pin to a specific release instead of always pulling latest:

curl -sSL https://marketdeck.io/install.sh | MARKETDECK_VERSION=0.3.1 sh

Air-gapped install#

If the machine can't reach git.marketdeck.io, download the tarball on a connected box, copy it across, then run the installer with the local path:

curl -sSL https://marketdeck.io/install.sh \
  | sh -s -- /path/to/marketdeck-0.3.1-linux-x64.tar.gz

The installer skips its own download step when the first argument points to a readable tarball.

Custom install location#

Both prefix and bin dir respect environment overrides:

curl -sSL https://marketdeck.io/install.sh | \
    MARKETDECK_PREFIX="$HOME/opt/marketdeck" \
    MARKETDECK_BIN_DIR="$HOME/opt/bin" sh

Useful for system-wide installs (MARKETDECK_PREFIX=/opt/marketdeck, MARKETDECK_BIN_DIR=/usr/local/bin, run with sudo) or when you want to keep MarketDeck out of ~/.local.

Verify#

which marketdeck
marketdeck version
marketdeck doctor

marketdeck doctor is the canonical "is my install healthy" check — it walks every prerequisite, the keyring, available exchanges and the feed daemon. See the doctor reference.

Update#

Re-run the same one-liner. The installer wipes the old prefix tree before extracting, so a stale better-sqlite3 .node after an ABI bump can't shadow the new one:

curl -sSL https://marketdeck.io/install.sh | sh

User state under ~/.local/share/marketdeck/ and ~/.config/marketdeck/ is left intact across upgrades.

Uninstall#

rm -rf ~/.local/share/marketdeck
rm -f  ~/.local/bin/marketdeck

To wipe state too:

rm -rf ~/.local/share/marketdeck ~/.config/marketdeck ~/.cache/marketdeck

Windows PowerShell#

The shell installer is macOS / Linux only. On Windows there's an equivalent PowerShell one-liner that downloads the win32-x64 release and adds the bin dir to your user PATH:

irm https://marketdeck.io/install.ps1 | iex

Same shape — MARKETDECK_VERSION, MARKETDECK_PREFIX, and MARKETDECK_BIN_DIR work as PowerShell parameters too:

irm https://marketdeck.io/install.ps1 -OutFile install.ps1
.\install.ps1 -Version 0.3.1 -Prefix C:\opt\marketdeck

Troubleshooting#

  • install.sh: unsupported OS … — the installer only ships linux and darwin tarballs. Use the npm install or from source routes on other Unixes.
  • install.sh: node 20+ required — bump Node to 20+ first via your package manager or nvm; then re-run the one-liner.
  • download failed — check git.marketdeck.io is reachable (curl -I https://git.marketdeck.io). Behind a proxy? https_proxy=… curl … | sh.
  • $BIN_DIR is NOT on your PATH — that's the warning the installer prints when ~/.local/bin isn't on your PATH yet. Add the export PATH=… line above to your shell init and re-open the shell.