Skip to content

Releases

Kelpi 0.2.25

Choose a tag to compare

@github-actions github-actions released this 09 Nov 23:32
7e2a406

Highlights

  • Web tabs you have left give back their graphics memory. A web tab that was on screen and then went out of view (another workspace, another tab, Kelpi hidden) used to keep its graphics memory for as long as Kelpi ran. After a minute out of view with nothing using it, a tab now goes to sleep and releases it: in testing, six such tabs went from 523 MB to 235 MB. Its page keeps running at full speed, so an agent waiting on a background tab is unaffected, and switching back to the tab or any kelpi web command wakes it. A tab that slept redraws its page when it comes back, so it may be blank for a moment (#469).

What's Changed

  • Put parked web tabs to sleep so they give back their GPU memory by @benfriebe in #469

Full Changelog: v0.2.24...v0.2.25

Kelpi 0.2.24

Choose a tag to compare

@github-actions github-actions released this 09 Nov 04:03
f78115e

Highlights

  • Web panes use less memory. Each web tab could hold up to 200 MB of page responses it never used, and tabs left open for days (GitHub pull requests especially) filled it. Tabs now keep none of it (#468).
  • Start an agent when you create a workspace. New Workspace has an Agent row (Claude Code or Codex) and a prompt box. The prompt is typed into the agent's input for you to review, or sent straight away with Send immediately. From the CLI: kelpi workspace create --agent claude|codex --prompt <text> [--send]. Set the default agent and each agent's command in Settings ▸ General ▸ Agents (#452).
  • Phone notifications with Kelpi closed. The phone now gets agent notifications in the background or locked, through Web Push. On the phone, tap the host name in the bottom bar, then Notifications, then Turn on notifications. On an iPhone this needs Kelpi added to the Home Screen (iOS 16.4 or later) (#462).
  • Clearer worktree errors. A worktree create that fails now reports git's own error, not the error of a second attempt that should never have run (#457).
  • Kelpi is MIT licensed, with a home at kelpi.sh (#464).

What's Changed

  • Push notifications to a phone with Kelpi closed, in the background or locked (Web Push) by @benfriebe in #462
  • Decide a plain worktree create from the refs that exist instead of retrying with -b after any failure, so git's own error is the one reported, in every locale by @benfriebe in #457
  • Wait for the whole mouse report in cmd-click-codex-links, not its first byte by @benfriebe in #448
  • Retry the release workflow's Gatekeeper checks when Apple's ticket lookup drops by @benfriebe in #449
  • Start Claude Code or Codex with a prompt when creating a workspace by @benfriebe in #452
  • Add the kelpi.sh landing page, release under MIT, publish with GitHub Pages by @benfriebe in #464
  • Show a recorded Kelpi session on the landing page, and move the README and site demo to Paddock by @benfriebe in #465
  • Stop web tabs buffering up to 200 MB of response bodies each by @benfriebe in #468

Full Changelog: v0.2.23...v0.2.24

Kelpi 0.2.23

Choose a tag to compare

@github-actions github-actions released this 26 Oct 03:39
1d9d98d

What's Changed

  • Repaint a terminal's cursor line when it changes, not every frame by @mqdeandrade in #460
  • Run a terminal's render loop only when something has changed by @mqdeandrade in #461
  • Add hover + to group headers for New Workspace by @gabrielrotbart in #451
  • Show each workspace's GitHub pull request status on its row and in the inspector by @benfriebe in #431

New Contributors

Full Changelog: v0.2.22...v0.2.23

Kelpi 0.2.22

Choose a tag to compare

@github-actions github-actions released this 22 Oct 04:09
34fb50e

Highlights

  • Monochrome theme. A new preset in Settings ▸ Appearance ▸ Preset themes: a black window, sidebar and status bar with white accents and a white focused-pane ring. The agent dots go white for awaiting input and grey for running and inactive. Like the other presets it leaves your terminal theme alone; set background = 000000 in your Ghostty config to match (#459).
  • Readable buttons on light accents. Filled buttons and checkboxes now switch to dark text when the accent is very light (white, a pale custom colour) instead of drawing white on white. The other presets look exactly as before (#459).

What's Changed

  • Add a Monochrome preset theme: black ground, white accents by @benfriebe in #459

Full Changelog: v0.2.21...v0.2.22

Kelpi 0.2.21

Choose a tag to compare

@github-actions github-actions released this 21 Oct 20:36
64e4575

Highlights

  • Phone: a Home for every host. The phone opens on Home: what needs you across all your hosts at the top, then a card per host and that host's workspaces as tiles. One tap on ‹ in a pane's header gets back there (#458).
  • Phone: answer a waiting agent without opening it. When Claude Code or Codex stops on an approval prompt, its question and answers show on Home, in the Needs you sheet and under the pane. An answer is sent as one keypress and only to the screen it was read from, so a prompt that changed in the meantime is never answered blind (#458).
  • Phone: a location bar. host › workspace › pane sits at the bottom; tap a segment to switch at that level, open a new pane (Terminal, Claude, Codex, Web, Scratch, Diff), or Jump to any workspace or pane by name (#458).
  • Workspace status. Set a workspace's status from its row menu, as a reminder to come back to it (#450).

Upgrade note

Quick replies send one character with pane-send-key, which hosts accept from this release. On a host still running 0.2.20 or older, a reply is refused before anything is typed, and the phone says to open the pane instead. Update each Mac you pair with.

What's Changed

  • Set a workspace's status from its row menu, as a reminder to come back to it by @benfriebe in #450
  • Give the phone a Home, a location bar and quick replies for agents waiting on any host by @benfriebe in #458

Full Changelog: v0.2.20...v0.2.21

Kelpi 0.2.20

Choose a tag to compare

@github-actions github-actions released this 18 Oct 02:32
d3c6ef3

Highlights

  • Phone: copy and links work in Claude panes. A long press selects a word and offers Copy even where an app reports the mouse (Claude Code's fullscreen renderer), and a tap on a link offers Open and Copy link (#447).
  • Phone: more of the desktop's reach. Add a host by scanning the Mac's pairing QR code (#443), and create a workspace in a group, nested under another, in a repository or in a new git worktree (#445).
  • Agents stop stealing your view. kelpi workspace create, kelpi diff, kelpi plugin open, kelpi pane move-to-workspace and kelpi web tab-new now work in the background. Pass --focus to bring the old behaviour back (#441).
  • Links land on the right text after emoji, in remote workspaces and in scrollback (#429).
  • Moving from Nex: kelpi daemon import works on a fresh install without --force (#438).

Breaking default

kelpi workspace create no longer makes the new workspace active. A script or skill that ran it and then a bare kelpi pane create used to land in the new workspace; it now lands in the workspace you are in. Pass --workspace <id>, or --focus if the user should be taken there (#441).

What's Changed

  • Draw toasts above live web pages instead of freezing the page under them by @benfriebe in #419
  • Let the CLI change an existing workspace's colour by @benfriebe in #421
  • Give clear-screen a pane of its own, so the scenarios after it get sh again by @benfriebe in #434
  • Report a test lane window as active when it reconnects, so a daemon restart cannot eat the next click by @benfriebe in #423
  • Keep a plugin notification presenter from taking the keyboard off the terminal by @benfriebe in #424
  • Match punctuation chords by the character they type, so Cmd-plus and Cmd-minus work on German and Nordic keyboards by @benfriebe in #422
  • Change a paired remote daemon's text size with Cmd-plus and Cmd-minus, and draw its terminals at that daemon's size by @benfriebe in #426
  • Keep a sidebar drag's auto-scroll running through re-renders, and never offer a passing group header by @benfriebe in #430
  • Scope verify.mjs for example plugin and SDK test changes instead of running the full battery by @benfriebe in #435
  • Give dev-instance panes the launching user, so a real Claude there is logged in by @benfriebe in #436
  • Type a copied file's path on ⌘V, and say so when the clipboard holds nothing to paste by @benfriebe in #437
  • Test that ⌘C copies Shift-dragged Codex conversation text in remote panes by @benfriebe in #427
  • Make a fresh clone stop at once on the wrong Node or pnpm, and name the Node it wants by @benfriebe in #425
  • Let a Nex user move to Kelpi with kelpi daemon import, without --force on a fresh install by @benfriebe in #438
  • Wait up to 120 s for graft start and stop, so a slow one that worked does not read as "no response" by @benfriebe in #433
  • Make VITE_TERMINAL_ENGINE=xterm build an xterm client, and stop the scenario driver typing every key twice by @benfriebe in #432
  • Give a web page its keyboard back when a modal over it closes by @benfriebe in #428
  • Keep a paste and a keyboard hand-back that arrive before Kelpi is focused, and log a ⌘V that types nothing by @benfriebe in #439
  • Keep a graft stop that hit someone else's index lock visible, and retry it instead of reporting off by @benfriebe in #440
  • Make ⌘-click and the link underline land on the right link after emoji, in remote workspaces and in scrollback by @benfriebe in #429
  • Let a phone add a host by scanning the Mac's pairing QR code by @benfriebe in #443
  • Create workspaces, diffs, plugin views and tabs from agents in the background, with --focus to opt back in by @benfriebe in #441
  • Pass --focus in the scenarios and audit step merged alongside #441 that expect a CLI-created workspace on screen by @benfriebe in #444
  • Let a phone create a workspace in a group or nested under another, in a repository or a new git worktree by @benfriebe in #445
  • Let a phone copy out of a Claude pane with a long press, and open a terminal link with a tap by @benfriebe in #447

Full Changelog: v0.2.19...v0.2.20

Kelpi 0.2.19

Choose a tag to compare

@github-actions github-actions released this 15 Oct 10:14
0124d1b

After updating

Run kelpi install-hooks once. It adds Claude Code's new PermissionRequest hook. Plugins that answer Claude's permission prompts through the kelpi.agent.permissions service need it, including the new auto-approve example plugin. The other hooks keep working as they are.

Highlights

  • Nested workspaces (#397): put a workspace under a parent workspace, so an orchestrator's workers sit under it in the sidebar. A drag that auto-scrolls the sidebar no longer nests by accident (#413).
  • Agent helper plugin APIs:
    • every agent hook event reaches plugins (#398)
    • a plugin can answer Claude's permission requests (#399)
    • pane-capture gives a screen revision and a guarded send (#400)
    • backend dialogs and notifications (#401)
    • plugin kelpi CLI verbs (#402)
    • plugin command header icons (#394)
  • Two new example plugins: run-suggested, which runs the command Claude last suggested (#407), and auto-approve, which answers Claude's Bash prompts for a set time (#408).
  • Images: open images in an image pane, from a click on an image link in a terminal or a markdown preview (#417).
  • Terminal selection: a click in a terminal pane no longer copies the character under it (#395), and a drag selection includes its last character again (#406).

There is no 0.2.18: its release build kept losing its connection to Apple's signing services, so the release workflow now retries those calls (#418).

What's Changed

  • Print help for kelpi group create --help instead of creating a group named --help by @abhayachauhan in #386
  • Make a bracketed link clickable when punctuation follows it by @abhayachauhan in #383
  • Stop a click in a terminal pane from copying the character under it by @benfriebe in #395
  • Nest workspaces under a parent workspace, so an orchestrator's workers sit under it in the sidebar by @benfriebe in #397
  • Emit every agent hook event to plugins, with the fields Claude sends by @benfriebe in #398
  • Say hello at WebSocket protocol 3 in the native-services scenario and the audit's side sockets by @benfriebe in #403
  • Let a plugin answer Claude's permission requests through a PermissionRequest hook by @benfriebe in #399
  • Say hello at WebSocket protocol 3 in every harness socket, and test that none drifts again by @benfriebe in #405
  • Give pane-capture a screen revision and cursor, and let pane-send refuse if the screen changed by @benfriebe in #400
  • Let a plugin add its own kelpi CLI verb by @benfriebe in #402
  • Let a plugin backend show Kelpi's dialogs, quick picks, inputs and notifications by @benfriebe in #401
  • Include the cell under the pointer in a terminal drag selection, and catch the harness up with nested workspaces by @benfriebe in #406
  • Add the run-suggested example plugin, which runs the command Claude last suggested by @benfriebe in #407
  • Add the auto-approve example plugin, which answers Claude's Bash prompts for a set time by @benfriebe in #408
  • Stop a sidebar drag nesting by accident while the list auto-scrolls under a still pointer by @benfriebe in #413
  • Loosen the auto-approve timing bounds that miss under the full parallel test suite by @benfriebe in #414
  • Open images in an image pane, from a click on an image link in a terminal or a markdown preview by @benfriebe in #417
  • Let a plugin command pick its pane header icon by @abhayachauhan in #394
  • Retry the release workflow's Apple calls instead of failing on one dropped connection by @benfriebe in #418

New Contributors

Full Changelog: v0.2.17...v0.2.19

Kelpi 0.2.17

Choose a tag to compare

@github-actions github-actions released this 12 Oct 06:21
897b5b8

What's Changed

  • Remember the pages you open in a web pane, and prefill and suggest them in the URL bar by @benfriebe in #376
  • Edit a scratchpad as live Markdown, switched per pane from its header by @benfriebe in #377
  • Open a terminal link as a tab in the workspace's web pane, instead of a new pane by @benfriebe in #378
  • Clear a terminal pane's screen and scrollback with ⌘K, as Nex did by @benfriebe in #380

Full Changelog: v0.2.16...v0.2.17

Kelpi 0.2.16

Choose a tag to compare

@github-actions github-actions released this 11 Oct 03:43
a222213

What's Changed

  • Stop every closed terminal leaking a pty, by moving node-pty to 1.2.0-beta.15 by @benfriebe in #371
  • Drain an older terminal host in the background, or restart its terminals now by @benfriebe in #374

Full Changelog: v0.2.15...v0.2.16

Kelpi 0.2.15

Choose a tag to compare

@github-actions github-actions released this 08 Oct 21:07
217547c

What's Changed

  • Stop a terminal line showing twice while a pane is scrolled with a trackpad or Mac mouse by @benfriebe in #367
  • Let the CLI set a workspace's icon with kelpi workspace icon by @kellytdesign in #365
  • Let copy-on-select be turned off, and paste the last selection with a middle-click by @benfriebe in #368

New Contributors

Full Changelog: v0.2.14...v0.2.15