Skip to content
arrowdocs
§ 01 — installation

Install arrow on any box you own.

arrow ships as a single static binary - no runtime, no daemon, no service account. Pick the install method that fits your platform.


§ 01 · macOS · Linux · WSL

One-line installer

Downloads the latest release, verifies the signature against the GitHub attestation, and writes the binary to ~/.local/bin. Idempotent and rerunnable.

terminal
$ curl -fsSL https://arrow.run/install | sh › downloaded arrow 0.3.2› verified signature (a4f9c12)› installed to ~/.local/bin/arrow # ensure ~/.local/bin is on $PATH$ arrow --version› arrow 0.3.2 (a4f9c12)
A single curl pipeline.
§ 02 · macOS

Homebrew

arrow is published on Homebrew core. The tap is maintained by the core team and refreshed within minutes of each release.

terminal
$ brew install arrow # verify$ arrow --version› arrow 0.3.2 (a4f9c12) # update later$ brew upgrade arrow
§ 03 · Windows

Scoop or winget

On Windows, arrow ships as a portable zip and through the Scoop and winget package managers. Pick whichever fits your toolchain.

Scoop

powershell
› scoop install arrow # verify› arrow --version› arrow 0.3.2 (a4f9c12)

winget

powershell
› winget install --id=Arrow.Arrow -e › found Arrow.Arrow 0.3.2› installed successfully
§ 04 · Anywhere with Node

npm / npx

If your project already uses Node, you can install arrow alongside your other dev dependencies. The package wraps the same static binary.

terminal
# dev dependency$ pnpm add -D arrow # or run ad-hoc without installing$ npx arrow@latest run build # verify$ pnpm arrow --version› arrow 0.3.2 (a4f9c12)
§ 05 · git + rust

From source

The main branch is published continuously. Building from source is a quick cargo build --release with no external system dependencies.

terminal
$ git clone https://github.com/example/arrow$ cd arrow$ cargo build --release ›   Compiling arrow v0.3.2›    Finished release in 14.2s $ ./target/release/arrow --version› arrow 0.3.2 (a4f9c12)

§ 06 · the small print

Verifying, updating, removing

Verification, updates, and uninstall are deliberately a one-liner each. We do not run a native installer that needs admin rights.

Verify the install

terminal
$ arrow doctor › ✓ arrow 0.3.2 (a4f9c12)› ✓ cache directory ~/.arrow/cache is writable› ✓ ~/.local/bin is on $PATH for your shell› ✓ TOML config parser loaded (arrow.toml v3)

Update

terminal
# self-update for any install method$ arrow self update › current 0.3.2 → latest 0.4.0› downloaded, verified, replaced› arrow is now 0.4.0

Uninstall

terminal
$ arrow self uninstall › removed ~/.local/bin/arrow› left ~/.arrow/cache in place (kept in case you reinstall)› nothing else was written to disk

§ 07 · polish

Shell completions

arrow ships completions for zsh, fish, and PowerShell. They are generated at build time and printed as static snippets so the CLI is fast even at very large tab-completion depths.

~/.zshrc
# arrow shell completions — generated for arrow 0.3.2
eval "$(arrow completions zsh)"
One line, evaluated at shell start.

For bash, append the snippet to ~/.bash_completion.d/arrow. For fish, save it to ~/.config/fish/completions/arrow.fish. The one-liner adds tab-completion for every subcommand, flag, and config key - including values from any arrow.toml in the current directory.