Skip to content

Releases: Alakazam-211/K2

v0.40.5

19 Jun 16:16

Choose a tag to compare

0.40.5 — Menu bar icon refresh

  • The macOS menu bar icon now shows K2 — it previously still read K2SO.

v0.40.4

19 Jun 14:46

Choose a tag to compare

0.40.4 — The .k2/ workspace rename + access fixes

  • Your workspace's .k2so/ folder is now .k2/. The K2 rebrand
    finally reaches the per-workspace directory. The first time the updated
    daemon starts, K2 renames each registered workspace's .k2so/ to
    .k2/ automatically, re-points the harness symlinks (CLAUDE.md,
    GEMINI.md, and the .claude//.opencode//.pi/ files), and updates
    .gitignore so the previously-ignored inbox/sessions/logs stay
    ignored. Nothing is lost — git sees it as a clean set of renames, so
    your history follows; just commit the rename in each repo when it's
    convenient. Workspaces still on .k2so/ keep working — K2 reads either
    name. This is the last structural rename; everything from here is
    additive.

  • Disabling or removing a K2 Connect user now ends their live session
    immediately.
    Previously a revoked user's already-open terminal stream
    kept flowing until they happened to disconnect. Now disabling,
    removing, or changing a user's role drops their token and tears down
    any live terminal/events socket within seconds.

  • CLI version no longer shows "v?" after the rename. If you updated
    in place, the k2 command-line tool could still point at the old
    K2SO.app path and report its version as v?. K2 now self-heals the
    /usr/local/bin/k2 link on startup — whether your app is named
    K2.app or the older K2SO.app.

  • The "Canonical Agent" harness fan-out toggle stays checked. Turning
    it on no longer silently reverts — a leftover "skip harness management"
    flag was overriding it, and that's now cleared when you enable fan-out.

v0.40.3

17 Jun 16:22

Choose a tag to compare

0.40.3 — Honest message-delivery status

  • k2 msg stops crying wolf. Live messages between agents sometimes
    reported as failed (no_submit, exit code 2) even though they
    delivered fine — a false alarm from the after-send screen check racing
    the recipient's redraw, which could push agents into re-sending and
    stacking duplicate text. Delivery itself was already solid (the paste
    framing and insurance Enter from the comms-reliability release keep it
    that way); now the status reflects reality: a message handed to a
    live agent session with its submit keystroke is reported as sent.
    Genuine failures — a crashed recipient session — still surface loudly.

  • Updated from K2SO and want the app file itself named "K2"? An
    in-place update keeps the old K2SO.app filename on disk (its name and
    icon already display as K2, so this is purely cosmetic — updates
    keep flowing to it either way). For a clean K2.app, download the
    latest from k2.dev and drag it into your
    Applications folder, replacing the old one. Optional, not required.

  • Remote access is "K2 Connect" in Settings again. The remote-access
    tab briefly carried an internal codename; it's back to the clear,
    familiar K2 Connect label.

v0.40.2

11 Jun 03:30

Choose a tag to compare

0.40.2 — Clearer permission prompts after the rename

The K2SO → K2 rename means macOS sees a brand-new app, so a few system
permission prompts can appear once after updating. This release makes
them clearer and reduces how often you'll see them:

  • The CLI-install password prompt now explains itself. Instead of the
    generic "osascript wants to make changes," it reads "K2 needs to
    install the k2 command-line tool…" so you know exactly what you're
    approving.
  • Your K2 Connect sign-in carries over without opening Settings. If
    you had a tunnel running, K2 now moves your saved session to its new
    home at startup — your tunnel keeps working without you having to visit
    the K2 Connect page first.
  • The keychain prompt is friendlier. When macOS asks to unlock your
    K2 Connect credentials, it now names them "K2 Connect sign-in" instead
    of a cryptic identifier. (macOS controls the rest of that dialog's
    wording — the lock icon and title are the system's, not ours.)

v0.40.1

11 Jun 03:05

Choose a tag to compare

0.40.1 — CLI upgrade heals itself

  • If you had the CLI installed, K2 now finishes the upgrade for you.
    On first launch, K2 detects a pre-0.40 CLI install and offers to set up
    the new k2 command (one admin prompt) — keeping k2so working as an
    alias. No trip to Settings needed.
  • The k2so compatibility alias works again from /usr/local/bin.
    On machines that had the CLI installed, the 0.40.0 alias resolved its
    new k2 sibling next to the symlink instead of next to the real
    script, and failed. It now finds the bundled CLI no matter how it's
    invoked.
  • k2 daemon status stops saying "Running: no" while the daemon is
    running
    — a long-standing parse bug on macOS, now fixed (it shows
    the PID and port again).
  • Last few "K2SO" mentions in CLI messages updated to K2.

Updating remote / headless macOS servers

The rename is a once-per-product-lifetime identity change, and most of it self-heals — but a few things on a macOS server need someone at the machine once:

Fully automatic (no hands needed): the update itself, the ~/.k2so~/.k2 data migration, launchd agent migration (dev.k2.daemon), daemon reconnection, and headless daemon-only installs (the standalone k2-daemon self-update has no prompts at all). The k2so CLI alias keeps working without any approval.

Needs one screen visit: macOS keys permissions to the app's bundle ID, and K2's is new (dev.k2.app). Re-grant Accessibility / microphone / notifications where the old app had them, approve the keychain access dialog if it appears on first K2 Connect use, and (optionally) approve the one-time admin prompt that puts the new k2 command on your PATH.

Every future update rides the new identity — this does not happen again.

v0.40.0

11 Jun 02:43

Choose a tag to compare

0.40.0 — Welcome to K2 by Alakazam Labs

K2SO is now K2. New name, new icon, new home — same product, and
everything you had is exactly where you left it.

What this update did on your machine (automatically):

  • Your app is now K2.app with the new K2 icon.
  • All workspaces, sessions, agents, schedules, settings, and your
    K2 Connect sign-in carried over. The daemon, heartbeat, and credential
    refresher re-registered themselves under their new names and
    reconnected on their own — if you can read this, it worked.
  • The CLI is now k2 (try k2 activity). Your existing k2so
    commands and scripts still work — k2so stays as an alias through
    the 0.x series, and prints a gentle reminder to switch.
  • Your data folder moved from ~/.k2so to ~/.k2, with a
    compatibility link left behind so older scripts keep working.
  • Updates now come from K2's new home:
    github.com/Alakazam-211/K2.

Licensing, as announced in 0.39.48: K2 is now Fair Source
(FSL-1.1-Apache-2.0). Free to use for individuals and businesses, source
visible, each version converts to Apache 2.0 after two years. Details:
LICENSE.md, COMMERCIAL_HOSTING_GRANT.md, and TRADEMARKS.md in the new
repository.

Thanks for riding along since the K2SO days. Onward.


Updating remote / headless macOS servers

The rename is a once-per-product-lifetime identity change, and most of it self-heals — but a few things on a macOS server need someone at the machine once:

Fully automatic (no hands needed): the update itself, the ~/.k2so~/.k2 data migration, launchd agent migration (dev.k2.daemon), daemon reconnection, and headless daemon-only installs (the standalone k2-daemon self-update has no prompts at all). The k2so CLI alias keeps working without any approval.

Needs one screen visit: macOS keys permissions to the app's bundle ID, and K2's is new (dev.k2.app). Re-grant Accessibility / microphone / notifications where the old app had them, approve the keychain access dialog if it appears on first K2 Connect use, and (optionally) approve the one-time admin prompt that puts the new k2 command on your PATH.

Every future update rides the new identity — this does not happen again.