Skip to content

v0.40.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 13:50
9bcb29b

Added

  • Every section of the task list folds: click Needs you, Crew or Working (or Tab to it and press Enter) to fold it away, like Done and Archived, in split view's sidebar and the feed. wisp remembers what you folded; Needs you folded still shows how many tasks wait on you, the task you have open stays in its row, and opening a task from a notification or link unfolds its section. Spells reach the new parts as section.needs, section.working and section.heading.
  • Your crew: named agents that keep working for you. Add one from the + on the Crew section, above Working in split view and the feed: a name, a role, their job (the brief), how often they check in (every 30 min, hourly, weekday mornings, a cron, or only when asked), how many jobs they run at once, what they may do without asking (Plan, Edits or Full auto, from the launcher’s mode menu), their project, harness and computer, and their own delegates (any harness, or other crew members). Start from a template (CI watcher, PR reviewer, Issue triager, Dependency keeper, Release notes) or turn any task into one with Add to crew… (right-click, More, ⌘K).
  • Each member is a spirit. A little will-o'-the-wisp you build from a body, a glow, eyes, a mouth and an extra (antenna, halo, crown, headphones…) or roll with the dice; an emoji works too. It breathes and blinks while idle, floats and looks around while working, hops when it needs you, and closes its eyes when paused.
  • A member opens like a task. Click one and its thread fills the main pane (in the feed it unfolds in place): every job as a conversation, what was asked and where from (You, Check-in, Tagged in “…”, Delegated by “…”, a trigger), then its answer. Quiet check-ins fold into one line. A job that needs you shows its question with its choices and a box to answer right there; a finished one has Open job (the whole task, with a crumb back to the member) and Follow up. The box at the bottom hands them a job, and @ brings another crew member into it. Beside the thread: their schedule and next check-in, where and how they run, their delegates, their notebook (Edit opens it in a dialog with room to read and write it) and brief, and the tasks they're part of. Esc goes from a job to the thread, then home.
  • Crew work has its own flow. Their jobs no longer show in Needs you, Working or Done: only the live ones (working, asking you, a report you haven't read) sit under the member in the list, and the row says what kind of work it is (Making the rounds on a check-in, Helping out “…” when delegated, Juggling 3 jobs) rather than repeat the job’s own line, or Asking you: … or Reported: …, with an amber or blue dot on their face. Their notifications say who it is and open the thread at that job; none are shown while you're looking at it. Reading a report in the thread marks it read.
  • Crew members remember, without filling their context. Every job starts fresh with your brief, their notebook (facts and last-seen state they keep with a hidden block at the end of each job) and a log of their recent jobs. A check-in that finds nothing is filed away quietly. They can ask to look again sooner (Looks again 14:30).
  • @name in any prompt or follow-up. A new task that starts with @Ada is Ada's job. A follow-up that starts with @Ada is answered on that task, under your message, without interrupting its agent, and Reply to Ada carries the conversation on there (the same job, so Ada remembers it). Named further in (fix it, then have @Ada review it), Ada joins the task's delegates. Both together (@Ada and @Bo redo the crew section): it's Ada's job, and Bo joins Ada's delegates for it, with Ada told to hand Bo their part; the same in a follow-up. A member can also send a follow-up to the agent of a task it was tagged in or delegated by, by itself (@ada (your crew’s CI watcher): …), and its thread there moves along with it. Following up adds the member to that task's delegates, so its agent can hand the work back once it's done (check my fix); a job delegated that way reports to the agent and never follows up on it again, so the two can't bounce work back and forth. Triggers can Send to a crew member too.
  • Crew members can live on your other machines. Runs on in the editor puts their jobs on one of your machines (the project and harness follow, from what's there); their memory, schedule and queue stay on this computer, and what each job learned comes back. Add to crew… on a task on a machine makes a member there.
  • Crew members start when things happen, not only on a clock. Also starts when in the editor: A task finishes, I mark a task done (shipping it counts), CI fails. A task one finishes or is marked done in their project (any project, if they have none) becomes a job about that task, shown as Finished “…” or Marked done “…” in their thread; they read it, may send its agent a follow-up (fix this), and say nothing when all is well. The new Verifier template checks every finished task. Their own jobs never start them, a watcher's work never starts another watcher, and one task starts a member at most 3 times. Triggers gain the same two kinds (Task finished, Task marked done), sent to a member or to a new task in that task's folder. Spells reach the chips as crew.editor.events.
  • Ask any task to change your crew: add a crew member who reviews new PRs every hour, pause Ada, remove Quill. Every agent wisp runs has wisp_crew, wisp_crew_add, wisp_crew_edit and wisp_crew_remove (a subagent or a member's own job can't change the crew), and wisp mcp has them too, for Claude Code, Codex or any MCP client outside wisp.
  • API: /crew, POST /crew/:id/jobs, POST /crew/:id/checkin, POST /sessions/:id/crew, POST /sessions/:id/crew-reply, crew on triggers, trigger kinds finished and done, on on a member, { crew: id } in subagents, machine and team on a member.
  • Crew members get their own skills and AGENTS.md files. Under Skills and instructions beside a member's thread, Add an instructions file they follow on every job (an AGENTS.md just for them), or a skill: a how-to with when to use it that they read only when a job fits, like Claude's SKILL.md. Write one, pick from the skills and AGENTS.md / CLAUDE.md files already on your computer (~/.claude/skills, ~/.codex/AGENTS.md, …), upload .md files, or drop them on the section; pasting a whole SKILL.md fills in its name and description. A switch keeps one without using it. Works with every harness, and on members that run on another machine. Spells reach it as crew.kit and crew.kitEditor; the API as kit on a member and GET /crew-kit.
  • A crew member can build its own kit. Add → Generate with Ada…, say what they should get great at (Make yourself the best UI engineer for this project, or pick a suggestion), and Ada runs a job that reads its brief, notebook and current kit and the project's docs and code, then proposes an AGENTS.md and a few skills written for this project. They show under that job in the thread with a box each: click one to read or edit it first, untick what you don't want, Add to their kit or Dismiss. A file with the name of one they have says Replaces yours. Nothing joins the kit until you pick it, and members can propose improvements to their own skills after any job the same way. Spells reach it as crew.kitGenerate and crew.offer; the API as kit: true on POST /crew/:id/jobs and offers on a member.
  • Two tasks changing the same files are flagged before you ship them: when another active task (Working or Needs you) in the same repo changes the same files, both cards show an Overlap pill, and the warning above the follow-up box names the other task and the files, with Open. If merging both would really conflict (wisp merges their work as it stands with git merge-tree, uncommitted edits included), the pill turns amber and says Clash, with the conflicting files. The card lists the first two (clashes first) and + n more opens them all; Ship it and Merge repeat the warning before you confirm. Only active tasks count: Done, stopped, archived and merged ones never do, and a warning clears as soon as the other task leaves. Runs of one compare are left out. Spells reach it as card.overlap and card.overlapNote.
  • Full screen goes through a reply's pictures and videos: open a picture full screen, or a video with its new Full screen button, and the viewer gets previous / next arrows and a 2 / 3 count. ← / → and a sideways swipe also step through every picture and video in the reply, or through a message's attached pictures. A video plays there with its own controls. In the reply itself, pictures and videos still sit one under another. Spells reach the arrows as viewer.nav.

Changed

  • Search puts recent things first: in ⌘K and the project picker, a task you touched recently or a project you used recently now ranks above older ones that match the query about as well. Only a clearly better text match still wins over a newer one.

Fixed

  • The JS SDK's deletes work: client.remove(id) and client.removeProject(id) sent no body, which wisp refuses (json only); every write now goes as JSON.
  • Delegates survive an interrupting follow-up: a follow-up sent (not queued) while the lead waits on its delegates used to cut the lead off from them. They kept working, but their reports were lost. Now the lead's new turn takes them over: it's told who is still working, subagent_results collects them, and their edits count on it. If the lead finishes before a delegate does, wisp sends the delegate's report to the lead as a follow-up of its own (Sent by wisp when your subagents finished). Stop still stops the delegates too.
  • wisp Grid's landing page answers link checkers: a HEAD request to the sign-in page (or the account page) got a 404 while a normal visit worked, so ad review and link previews could take the page for dead. Both now answer HEAD like GET.

Get wisp 0.40.0

macOS (Apple silicon) wisp-mac-arm64.dmg
macOS (Intel) wisp-mac-x64.dmg
Windows wisp-windows-x64-setup.exe · Arm
Linux AppImage · .deb · Arm: AppImage, .deb
npm (Node 20+) npx wisp-agents@0.40.0 or npm install -g wisp-agents
Homebrew brew install m0xoo/tap/wisp-agents

The desktop app updates itself from these releases. Checksums are in SHA256SUMS.txt.