Skip to content

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 28 Sep 04:12
· 318 commits to master since this release

Agents run in the cloud in this release, and setting them up stops being four jobs.

New

  • Sandboxes — M → New sandbox…, or conch sandbox create: conch makes a machine in the cloud, installs itself there and adds it as an ordinary remote machine, so the tree, -m and everything else work with it unchanged. Close the TUI and its agents carry on. Two providers: Daytona, reached with a fresh ssh token through its gateway, and boat.dev, whose sandboxes are whole machines with an sshd of their own — conch authorizes your public key there and connects straight to them, so nothing that opens one leaves your computer.
  • A sandbox worth keeping — m on its row opens a port in the browser (with the listen on 0.0.0.0 advice when the proxy finds nothing there), keeps a snapshot to make the next one from, and says what it has cost, asked of the provider period by period rather than guessed. The tree carries the time and the money, and a stopped sandbox says what its disk still costs.
  • Coming back — stopping a sandbox ends its processes, so conch writes down what was running and offers it back when it starts again: each agent resumed on its own conversation, each terminal in its folder. Nothing starts without you saying yes.
  • Stopping one nobody is using — conch pauses a sandbox when no agent is working, none is waiting and nothing has printed for 30 minutes (Settings → Sandboxes). That is conch's own watching: a provider's idle timer sees only what reaches it from outside, so it would stop an agent working quietly.
  • One setup, every agent — in the agent setup view (i), s gives the other agents the setup of the agent whose tab is open: its instructions, its skills and the MCP servers it declares, each written where that agent looks for it. It says what it would write before writing anything, leaves hand-written files alone, links skills rather than copying them, and never copies a secret — a server whose environment holds a value rather than a ${VAR} reference is left out, with the reason. u undoes it; conch agent sync does the same from a shell, on a remote checkout too.
  • A link an agent printed — ctrl+b u lists the links on a pane's screen with each one put back together across the box and the line breaks it was wrapped in, and opens it here while putting it on the clipboard. It is how you finish a login an agent inside a sandbox asks for.
  • Rebase when a push is refused — conch branch push and the changes view offer to take the remote's commits, put yours on top and push; a conflict says which files and what to do next.
  • Settings → Sandboxes lists the providers and opens one, so a new provider is a row rather than another section, and the API key can be kept there rather than in your shell.
  • Marking a file for a commit with the mouse, a status line that says what conch is doing while it installs itself somewhere, sharing a session with a machine that has no project yet, and a handed-over conversation keeping the name of the work it continues.

Fixed

  • ssh offers the key conch authorized. conch's generated ssh config named only its own key, and naming any key stops ssh trying the defaults — so a machine authorized with your key refused the login it had just been set up for, in a sandbox and on a plain machine alike, whenever ssh-agent held nothing.
  • Each ssh session gets its own connection. A host that stopped answering without closing left a new login on a blank terminal for a minute, behind a shared master that was up but dead.
  • An agent's launch files are written before every launch. Clearing ~/.config left Claude failing with Settings file not found; the files come back now, and so does the folder.
  • A handed-over conversation is private — 0600 in a 0700 folder, rather than readable by anyone else on a shared machine.
  • A machine's panes are forgotten when its server starts afresh, so an old screen never shows under a new pane's row.
  • A sandbox deleted in the provider's own interface reads as gone instead of sitting at destroying, and starting or stopping it says so straight away.
  • A sandbox that is not answering yet — a provider says a sandbox is started before its sshd is (Daytona says so within a second of being asked), so conch waits for it to answer, tries a dropped connection again — copying 16 MB is the longest thing it asks of one — and says the ssh connection failed (255) rather than an exit code when ssh itself said nothing.
  • conch's own test suite no longer takes the developer's clipboard (an OSC 52 escape in a test, honoured by the terminal running go test).

Known

  • boat.dev is supported and documented, but the account it was built against has since lapsed to Start the $20/month Boat plan, so its stop/resume, preview links, usage and snapshots are covered by tests and its own documentation rather than by a live run. What was seen live: create, the key, the install over ssh, -m, ls and rm.
  • The E2B provider in the tree is not registered and does nothing yet: it has no ssh, and the transport that would reach it is the work left.

Install

curl -fsSL https://raw.githubusercontent.com/Amitgb14/conch/master/install.sh | sh

An existing install updates itself with conch update, or from the version popup in the status bar.

What's Changed

Full Changelog: v0.1.4...v0.1.5