bowline
Getting started

Installation

Install Bowline on macOS or Linux with one command, then verify the CLI, daemon, and macOS app.

Bowline installs as a small command-line tool (bowline), a local background daemon (bowline-daemon), and, on Apple Silicon macOS, the Bowline Menu Bar app. The installer picks the right artifact for your machine, verifies the download, installs the daemon, and leaves you at bowline setup --root ~/Code.

Requirements

Before you install, confirm your machine meets these basics.

  • Apple Silicon macOS, or a recent x86_64 Linux distribution.
  • A Bowline account. WorkOS handles account identity; your first bowline setup --root ~/Code walks you through it.
  • For remote hosts, working SSH access. See connect remote hosts.

Install Bowline

Run the installer from a terminal.

Terminal
curl -fsSL https://install.bowline.sh | sh

On Apple Silicon macOS, this installs Bowline.app into ~/Applications, links the bundled CLI and daemon into ~/.local/bin, starts the daemon, and opens the Menu Bar app. On Linux x86_64, it installs bowline and bowline-daemon into ~/.local/bin and starts the user systemd service.

If ~/.local/bin is not on your PATH, the installer prints the path warning before it exits. Add it to your shell profile, restart the shell, then continue with login.

Manual downloads

Bowline has no mutable per-file latest directory and no second update feed. The signed public release pointer selects one immutable release root, whose artifact entries all live below a versioned path such as https://install.bowline.sh/releases/v0.1.11. Use the installer unless you are auditing those signed release documents.

The supported release assets are:

  • install.sh
  • bowline-aarch64-unknown-linux-gnu.tar.gz
  • bowline-x86_64-unknown-linux-gnu.tar.gz
  • Bowline-aarch64-apple-darwin.app.zip
  • release-root.json
  • release-root.json.sig

Verify the selected release root with the pinned release public key, then hash each downloaded artifact against the exact digest and byte count in that root. The installer performs these checks automatically.

Manual release verification
cat > allowed-signers <<'EOF'
bowline-release ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDopN2SNIL9tc0boM8++a84hV4HZePJwD8TFJ5SkGLOv bowline-release-2026-07-05
EOF

ssh-keygen -Y verify -f allowed-signers -I bowline-release -n bowline-release \
  -s release-root.json.sig < release-root.json

Verify the install

Confirm the CLI is on your PATH and the daemon is reachable.

Terminal
bowline version
bowline-daemon --version
bowline daemon status

bowline daemon status reports whether the daemon process and OS service are running. Add --json for scriptable output.

Name collision

bowline version must report the Bowline workspace tool. If you get an unrelated tool, check your PATH and where the binary resolves with which bowline.

Supported platforms

Bowline supports these install targets today.

PlatformStatusInstall path
Apple Silicon macOSSupportedInstaller with Bowline.app, CLI, and daemon
Linux x86_64SupportedInstaller with CLI and daemon
Intel macOSUnsupportedBuild from source or wait for a release artifact
Linux ARMUnsupportedBuild from source or wait for a release artifact
WindowsUnsupportedNo release artifact

Build from source

If you'd rather build from source, you need a recent stable Rust toolchain. Clone the repository and build the release binaries.

Terminal
git clone https://github.com/bowline-sh/bowline.git
cd bowline
cargo build --release --bin bowline --bin bowline-daemon

The build produces target/release/bowline and target/release/bowline-daemon. Put them on your PATH, then run bowline daemon install to register the background service.

Uninstall

Uninstall the daemon first, then remove the binaries or app.

Terminal
bowline daemon uninstall
rm -f ~/.local/bin/bowline ~/.local/bin/bowline-daemon
rm -rf ~/Applications/Bowline.app

This removes generated Bowline binaries and service files. It does not remove projects under ~/Code.

Next steps

  • Quickstart: log in and bring your ~/Code tree to life.
  • Add a machine: put the same workspace on a second device.
  • macOS: understand the Menu Bar app and LaunchAgent.
  • Linux: understand the user systemd service.

On this page