Repository navigation
v0.16.5 — Sinopia Design, voice input, ask a human, signed releases
New
- Update notice for self-hosted runtimes. A standalone runtime built from a release checks the project's GitHub
releases at start and every 12 hours, and shows a quiet "new version" notice with a link to the notes. It sends
nothing but standard request headers. Turn it off withRUNTIME_UPDATE_CHECK=0. - Signed GitHub releases and a multi-arch image. A
vX.Y.Ztag publishes archives for linux and macOS (amd64,
arm64) withchecksums.txtsigned keyless with cosign (checksums.txt.sigstore.json) and a build provenance
attestation, plusghcr.io/ly-solutions/harnesslyfor linux/amd64 and linux/arm64 (X.Y.Z,X.Y,latest, and
the-with-agentsvariants), signed and attested. Verification commands are in docs/deploy.md. - Sinopia Design. A design space for prototypes, sites and presentations, kept as plain folders on your machine.
The board engine is bring-your-own: runharnessly design engine fetchon a machine with Claude Code logged in to
your own account. See docs/design-engine.md. - Voice input. A microphone in the message field with built-in recognition (whisper.cpp). The model downloads on
first use; audio stays on the machine. Needsffmpeg(included in the Docker images). See docs/voice.md. - Ask a human.
harnessly askandharnessly ask approveput a question or an approval in a Telegram chat with
buttons; the person answers in Telegram or on the page. Contacts and approvers are set in the People section of
Settings, Notifications.
Changed
- The Docker quick start is now
docker run ... ghcr.io/ly-solutions/harnessly:latest(no local build). The README
and docs/deploy.md start with Docker, release binary and source quick starts. - The hub is documented for self-hosting: spaces, invitations, sign-in by email code, passkey, GitHub, Yandex ID or
OIDC, and machines opened at<id>.<machines domain>whenHUB_RUNTIME_DOMAINis set. The hub and its machine
image are still built locally from this repository (docker compose -f compose.hub.yaml up -d --build).
Upgrade notes
Nothing updates itself; how you update is how you installed (docs/deploy.md).
-
Docker: pull the new image and recreate the container. The home volume keeps your password, workspaces and logins.
docker pull ghcr.io/ly-solutions/harnessly:latest docker rm -f harnessly docker run -d --name harnessly -p 127.0.0.1:8022:8022 -v harnessly-home:/home/agent ghcr.io/ly-solutions/harnessly:latest
With a pinned tag, put the new version in both places. With compose:
docker compose pull && docker compose up -d. -
Binary: download and verify the new archive, replace
runtime(andagent,harnesslyif you use them) and
restart. The data in~/.harnesslyis kept. Under systemd the restart keeps tmux and the agents running. -
From source:
git pull && make run(ormake installand restart the service).
/api/health reports the running version. Machines carried by a hub are updated through the hub.
Install
Docker: docker pull ghcr.io/ly-solutions/harnessly:0.16.5 (the image is latest too, and with-agents
adds Claude Code and Codex). Binaries: take the archive of your system below, harnessly_0.16.5_<os>_<arch>.tar.gz
(it holds harnessly, runtime and agent). How to run, verify and update:
docs/deploy.md.