Skip to content
Install

Install

ByteAsk installs from a single line on Linux, macOS and Windows. Below that line is the part most install pages leave out: exactly what the script writes to your machine, how to read it first, and how to take it back off.

The command

Pick your platform. Each of these is the same command the front page shows.

Linux / macOS
$ curl -fsSL https://code.byteask.ai/install.sh | sh
Windows
$ irm https://code.byteask.ai/install.ps1 | iex

Or from a package manager

pip
$ pip install byteask
uv
$ uv tool install byteask
npm
$ npm i -g @byteask/cli

The short URL

byteask.ai/install answers a terminal with a redirect to the script, so the short form works too. Keep the -L: without it curl prints the redirect instead of following it, and the shell gets nothing to run.

$ curl -fsSL byteask.ai/install | sh

The canonical command is still curl -fsSL https://code.byteask.ai/install.sh | sh. That is the URL the script itself is published at, and the one to use in a Dockerfile or a CI job where you would rather not depend on a redirect.

What the installer does

Everything here is read off the two live scripts. If a behaviour is not in the script, it is not claimed on this page.

Linux and macOS, install.sh

  • PlatformsLinux and macOS, on x86_64 or arm64. Any other uname exits with an error before anything is downloaded. On Windows the script tells you to use WSL, or use the PowerShell installer below.
  • Install directoryYour PREFIX if you set one, otherwise /usr/local/bin when that is already writable by you, otherwise ~/.local/bin. The script never elevates to create it.
  • What lands thereTwo executables, byteask-engine and the byteask launcher (a small POSIX shell script), plus a .engine-release marker file recording which release asset produced the engine, so a later update can skip a download it does not need.
  • Directories createdThe install directory, ~/.byteask (or BYTEASK_HOME), and ~/.byteask/skills/compress and ~/.byteask/skills/terse for the two bundled skills.
  • Files in ~/.byteaskA gateway file, a config.toml, a downloaded models-catalog.json, the own-key sidecar and its translator modules, a SKILL.md per skill, and a one-shot referral file if you passed --ref=. An existing login token is read out of the old config.toml and written back into the new one, so an update does not sign you out.
  • Shell startup filesNot touched. The script does not append to .bashrc, .zshrc, or any other startup file. If the install directory is not already on your PATH it prints the export line and leaves you to add it.
  • ~/.gdbinitOne block is appended, wrapped in marker comments and skipped if the marker is already present, so re-running does not duplicate it. The block sources ~/.byteask/byteask_gdb_bridge.py when that file exists, which is what defines the byteask-bridge gdb command. The block's own comment says nothing is armed until you run that command, and that you disable it by deleting the block or running byteask --uninstall-gdb-bridge.
  • sudoTwo best-effort package installs, each only when the tool is missing. On Linux: bubblewrap (the sandbox the engine uses for model-run shell commands) and ripgrep, through whichever of apt-get, dnf, yum, pacman, zypper or apk is present, prefixed with sudo when you are not root. On macOS bubblewrap is skipped entirely and ripgrep goes through brew, with no sudo. Every one of those branches swallows its exit code, so a failure is never fatal: the script prints a note and carries on.
  • ChecksumsBefore each candidate download the script fetches SHA256SUMS from the same source. If the manifest lists that asset and the digest disagrees, the file is deleted and refused outright. If the manifest is unreachable or does not list the asset, the install continues with a printed note. Set BYTEASK_REQUIRE_SHA256=1 to make a missing entry fatal as well. Either way every download must also clear a size floor of roughly 20 MB and an ELF or Mach-O magic-byte check.
  • Where the engine comes fromThe release assets at github.com/ByteAsk/cli first, with code.byteask.ai as the fallback if that is unreachable. It walks a compressor ladder, .zst then .xz then .gz then the uncompressed asset, using only the decompressors actually on your PATH. The byteask launcher script itself comes from BUNDLE_URL, which is code.byteask.ai unless you override it.
  • Install pingOne short request to <BUNDLE_URL>/byteask/dl/<os>-<arch>, code.byteask.ai by default, capped at 3 seconds and ignoring failure. The script's comment calls it the per-platform install signal.
  • Environment overridesPREFIX, BYTEASK_HOME, ENGINE_URL, BUNDLE_URL, GATEWAY_URL, MODEL (the model id written into config.toml), BYTEASK_REQUIRE_SHA256, BYTEASK_FORCE_ENGINE_DOWNLOAD, and BYTEASK_REF. All are read from the environment with a default, so exporting one before the pipe is enough.

Windows, install.ps1

  • Platforms64-bit Windows only. The script errors out on a 32-bit OS. It runs under the built-in Windows PowerShell 5.1 or pwsh 7.
  • Install directoryYour PREFIX if set, otherwise %LOCALAPPDATA%\Programs\ByteAsk.
  • What lands therebyteask-engine.exe, a byteask.ps1 wrapper, a byteask.cmd shim so the command works from any shell, and the same .engine-release marker.
  • PATHThis one does edit your environment: if the install directory is not already in your user Path, it is appended to the registry-backed user PATH. The script tells you to open a new terminal to pick it up.
  • Config%USERPROFILE%\.byteask (or BYTEASK_HOME) gets the same set of files as the Unix installer: gateway, config.toml, model catalog, the own-key sidecar and translators, and the two skills. An existing login token is carried across.
  • ElevationNone. Ripgrep is attempted through winget, scoop or choco if one of them is on PATH, inside a try/catch, and a failure only prints a note. There is no ~/.gdbinit step on Windows.
  • ChecksumsThe same policy as the shell installer: a listed digest that disagrees is refused, an absent manifest is a printed note, and BYTEASK_REQUIRE_SHA256=1 makes absence fatal. Downloads must also clear the 20 MB floor and an MZ magic-byte check.

Verify the script

Piping a script into a shell means trusting it sight unseen. You do not have to. Download it, read it, then run the copy you read.

1 . Download it
$ curl -fsSLO https://code.byteask.ai/install.sh
2 . Read it
$ less install.sh
3 . Run the copy you read
$ sh install.sh

The engine binaries the script downloads are published as release assets on github.com/ByteAsk/cli, which is the default ENGINE_URL in the script. Each release carries a SHA256SUMS, and the installer refuses any asset whose digest disagrees with it.

Uninstall

The installer has no --uninstall flag yet. Removing ByteAsk means deleting the files it created, all of which are listed above.

Linux and macOS

From your install directory, which is PREFIX if you set one, otherwise /usr/local/bin or ~/.local/bin: delete byteask, byteask-engine and .engine-release. Then delete the ~/.byteask directory (or BYTEASK_HOME), which holds the config, the model catalog, the sidecar files and the skills. Finally, open ~/.gdbinit and delete the ByteAsk block, the lines from the marker comment to the matching end marker.

Windows

Delete %LOCALAPPDATA%\Programs\ByteAsk (or your PREFIX) and %USERPROFILE%\.byteask, then remove that install directory from your user Path, since the installer added it there.

What is left behind

Nothing else. The installer does not touch your shell startup files on Unix, so there is no line to unpick there. Any packages it asked your package manager for, bubblewrap and ripgrep, stay installed: remove them with the same package manager if you want them gone.

Editors

The CLI is the whole product; the editor connectors just put it next to your code.