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.
$ curl -fsSL https://code.byteask.ai/install.sh | sh$ irm https://code.byteask.ai/install.ps1 | iexOr from a package manager
$ pip install byteask$ uv tool install byteask$ npm i -g @byteask/cliThe 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 | shThe 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
unameexits with an error before anything is downloaded. On Windows the script tells you to use WSL, or use the PowerShell installer below. - Install directoryYour
PREFIXif you set one, otherwise/usr/local/binwhen that is already writable by you, otherwise~/.local/bin. The script never elevates to create it. - What lands thereTwo executables,
byteask-engineand thebyteasklauncher (a small POSIX shell script), plus a.engine-releasemarker 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(orBYTEASK_HOME), and~/.byteask/skills/compressand~/.byteask/skills/tersefor the two bundled skills. - Files in ~/.byteaskA
gatewayfile, aconfig.toml, a downloadedmodels-catalog.json, the own-key sidecar and its translator modules, aSKILL.mdper skill, and a one-shotreferralfile if you passed--ref=. An existing login token is read out of the oldconfig.tomland 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 yourPATHit prints theexportline 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.pywhen that file exists, which is what defines thebyteask-bridgegdb 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 runningbyteask --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) andripgrep, through whichever of apt-get, dnf, yum, pacman, zypper or apk is present, prefixed withsudowhen you are not root. On macOS bubblewrap is skipped entirely and ripgrep goes throughbrew, 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
SHA256SUMSfrom 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. SetBYTEASK_REQUIRE_SHA256=1to 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,
.zstthen.xzthen.gzthen the uncompressed asset, using only the decompressors actually on your PATH. Thebyteasklauncher script itself comes fromBUNDLE_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 overrides
PREFIX,BYTEASK_HOME,ENGINE_URL,BUNDLE_URL,GATEWAY_URL,MODEL(the model id written into config.toml),BYTEASK_REQUIRE_SHA256,BYTEASK_FORCE_ENGINE_DOWNLOAD, andBYTEASK_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
PREFIXif set, otherwise%LOCALAPPDATA%\Programs\ByteAsk. - What lands there
byteask-engine.exe, abyteask.ps1wrapper, abyteask.cmdshim so the command works from any shell, and the same.engine-releasemarker. - 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(orBYTEASK_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
~/.gdbinitstep 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=1makes absence fatal. Downloads must also clear the 20 MB floor and anMZmagic-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.
$ curl -fsSLO https://code.byteask.ai/install.sh$ less install.sh$ sh install.shThe 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.
$ code --install-extension byteask.byteask-vscode$ cursor --install-extension byteask.byteask-vscode{ 'ByteAsk/byteask.nvim' }