Skip to content

feat(install): support macOS and install skills in the curl installer - #1057

Open
JackNDwyer wants to merge 1 commit into
mainfrom
jackdwyer/devx-843-curl-installer
Open

JackNDwyer wants to merge 1 commit into
mainfrom
jackdwyer/devx-843-curl-installer

Conversation

@JackNDwyer

Copy link
Copy Markdown
Contributor

What

  • install-cli.sh (what get.livekit.io/cli serves) now installs on macOS as well as Linux, using the existing darwin release archives for Intel and Apple silicon.
  • It no longer needs jq or sha256sum, which macOS before 15 doesn't ship: the version comes from where /releases/latest redirects, and the checksum falls back to shasum -a 256.
  • On macOS it creates /usr/local/bin if a fresh Mac doesn't have it. LK_INSTALL_PATH installs somewhere else, such as a user-level folder that needs no sudo.
  • After installing, it runs lk skills install --global --yes, which installs LiveKit's skills and the Docs MCP server for the coding agents it finds. It runs when stdout is a terminal (under curl | bash, stdin is the script) or with LK_INSTALL_SKILLS=1, and is skipped in CI, as root, or with LK_INSTALL_SKILLS=0. A failure there is a warning, not a failed install.
  • It warns when another lk, usually Homebrew's, comes first on PATH, or when the install folder isn't on PATH.
  • Windows stays on winget; the script now says so instead of a generic error.

Why

This is the second half of DEVX-843: one command that installs the CLI, the Docs MCP server and the skills, so coding agents can build LiveKit agents from the start (DEVX-840). Mac users had only Homebrew, which can't run that step. The first half, a one-time offer in lk itself, is #1056.

get.livekit.io/cli redirects to this file on main, so merging ships it immediately; there's no release step.

How to verify

Without touching /usr/local/bin, run the branch's script into a temporary folder, with a test home that has a Claude Code folder:

T=$(mktemp -d); mkdir -p $T/home/.claude
curl -sSL https://raw.githubusercontent.com/livekit/livekit-cli/jackdwyer/devx-843-curl-installer/install-cli.sh \
  | HOME=$T/home LK_INSTALL_PATH=$T/bin bash

Expect the darwin (or linux) archive to download and pass the checksum, $T/bin/lk --version to print the latest version, and seven skills in $T/home/.claude/skills with the Docs MCP server added. With LK_INSTALL_SKILLS=0 or CI=1, no skills are installed.

What I tested on macOS 26 (Apple silicon): the full install with skills, the skip paths (no terminal, LK_INSTALL_SKILLS=0, CI=1), no coding agents (warning, exit 0), and the Homebrew PATH warning. With a stubbed uname, Linux x86_64, Linux aarch64 and Intel macOS each downloaded the right archive, passed the checksum and installed the right binary. Not tested: the default /usr/local/bin install with sudo, a real Linux machine, and shellcheck (Docker wasn't running locally; bash -n passes).

🤖 Generated with Claude Code

install-cli.sh (served at get.livekit.io/cli) now installs on macOS as
well as Linux, picking the darwin archive for Intel or Apple silicon. It
no longer needs jq or sha256sum, which older macOS lacks, and creates
/usr/local/bin when a fresh Mac doesn't have it. LK_INSTALL_PATH installs
elsewhere.

After installing, it runs `lk skills install --global --yes` when
someone is watching (stdout is a terminal) or LK_INSTALL_SKILLS=1, and
skips it in CI, as root, or with LK_INSTALL_SKILLS=0. A failure there
doesn't fail the install. It also warns when another lk, such as
Homebrew's, comes first on PATH.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant