Repository navigation
v0.42.0
Added
- Ask an agent to add a connector. Ask a task to add PostHog or connect Linear and the agent adds it to Settings → Connectors itself. Three new tools make this possible:
wisp_connectorslists your connectors,wisp_connector_addadds one, andwisp_connector_signinasks you to finish. If the connector needs an account, a Sign in card appears in the task; if it needs a key, the card has a box to type it, and the value goes straight to wisp, never through the agent. The card closes by itself once the connector works, and the agent carries on. A connector that runs a command on your computer is added only after you say yes. Subagents and crew members' jobs can't add connectors. - Sign in to a connector instead of pasting a token. A remote connector that needs an account, like PostHog or Linear, now shows Sign in on its row (also Add and sign in when you add one, and Sign in with the browser in its form). You approve wisp in the browser, and the tokens stay on this computer. wisp refreshes them when they run out, so tasks keep their tools without asking you again. PostHog is one of the examples in an empty list. This uses MCP's own sign-in (OAuth with dynamic client registration and PKCE), so it works with any server that supports it. An API key in a header still works for servers that don't. API:
POST/DELETE /connectors/:id/signin. - Connectors: your MCP servers, for every harness. Add an MCP server once in Settings → Connectors and every task's agent gets it, whatever the harness: Claude Code, Codex, Copilot, OpenCode and Grok. A server can be local (a command such as
npx -y @modelcontextprotocol/server-filesystem ~/notes) or remote (anhttps://URL, with headers). Env vars and headers are kept as secrets on this computer. They never go into config.json or an agent's command line: each harness starts a small wisp proxy that reads them. When you save, wisp starts the server once to check it, and the row shows its tool count or why it failed. Pasting a config'smcpServersJSON fills in the form. Servers already in Claude Code, Codex, Copilot, OpenCode or Cursor settings are offered for import, and a harness keeps using its own copy of a server with the same name. Plan mode runs without connectors. Cursor and Antigravity only read their own MCP settings, so they don't get them. API:GET/POST /connectors,PATCH/DELETE /connectors/:id,POST /connectors/:id/test,POST /connectors/import. Spells can restyle or hide the section assettings.connectors,connectors.rowandconnectors.import, but can't add connectors, because a connector runs a command. - Goals: a task that keeps going until it's done. Turn on Goal in the prompt box and say what has to be true (Done when: all tests pass and the page works on a phone), or type
/goal …in a task's reply box. After every round wisp checks the work itself, running the project's tests and having a model read the changes (not the agent's word for it), and while the goal isn't met it sends the task back with what's missing and what to do next. The task stays in Working and pings you once: when the goal is met, can't be met (with why), runs out of rounds (3, 5, 10 or 20), or goes in circles. A band on top of the task shows the goal, a progress track with how far the last round moved it, the round, and the last check in the checker's words; the row shows a ring and 4/10. Edit goal…, Pause goal, Resume goal (with a fresh set of rounds) and Drop goal are in the band, More, right-click and ⌘K. Works on every harness, and a task Auto hands to a stronger pick takes its goal along. API:goalonPOST /sessions,PUT/PATCH/DELETE /sessions/:id/goal. Spells reach it asgoal.band(a slot too),goal.text,goal.track,goal.check,card.goal,launcher.goal,launcher.goalLineand thegoalRoundssetting. - Plan budget, and wait for the reset. Settings → Usage shows how much of each account's 5-hour and weekly windows is gone, as Claude Code and Codex report it on every run, when each resets, and when you'd run out at this pace (Resets Thu 21:00 · at this pace, runs out Wed 16:10). A usage limit now asks what next on every harness, not only with several accounts, and Wait until uses the reset time the CLI reported. Turn on Wait for the reset there and a task, crew job or schedule that hits a limit waits under Scheduled and carries on in the same conversation when the window resets, instead of stopping. wisp never switches accounts for you. API:
budgetonGET /agents, thelimitWaitdefault. Spells reach it assettings.budgetand thelimitWaitsetting. - A compact Crew section. Busy crew members (asking you, on a job, an unread report) always keep their row; when nobody is, two stay and the rest fold into one row of faces, 4 on call · 1 paused. A face opens that member, the row shows everyone. Check-ins only animate the face, so scheduled members no longer pop in and out. Spells:
crew.strip, androwsonsection.crew. - More than one account per harness, for Claude Code and Codex. If you have more than one plan, say your own and your employer's, add the second in Settings → Agents (Add another Claude account), as a personal or a work account. It signs in with the CLI's own sign-in and keeps its login in a folder of its own. Settings, skills, MCP servers and transcripts are shared with your first account. Pick the account for a task in the runner picker (an Account row under Thinking); wisp remembers your pick per harness. When an account reaches its usage limit, the task asks what to do: wait for the reset, continue on another of your accounts, hand the task to another agent, or get extra usage from the provider. wisp never switches accounts on its own. The task's details say which account ran it. API:
GET/POST /agents/:id/accounts,PATCH/DELETE /agents/:id/accounts/:acc,?account=on the sign-in routes,accounton launches and follow-ups,turn.limiton a turn that hit one. Spells reach it aspicker.accounts,runner.account,details.accountandsettings.accounts. - Schedule work for later, in the same task. Type in 10 min check again in a task's reply box (or use the clock button beside Send) and wisp sends that follow-up into the same conversation at that time, so the agent carries on with everything it knew. Agents can do it themselves with the new
resume_latertool ("the deploy takes 20 minutes, I'll look again then") instead of sleeping; crew members' jobs too (theirwakeInstill starts a fresh check-in). Follow-ups show above the reply box (At 14:45 · set by the agent), with Send now, Change time… and Cancel, also in the right-click menu, More and ⌘K. An agent can chain 10 at most before it has to report back to you. - "In 5 minutes do X" and "remind me … in 1 hour" in the prompt box. A prompt that starts with a time is held and started then (a scheduled task); remind me … sets a reminder that needs no agent and lands in Needs you with a bell when due, with Snooze…. A chip under the box shows the time wisp read before you send; × or Alt+Enter runs it now, and text that only mentions a time is never delayed. Settings → Read times in prompts turns it off. Also Start later beside Launch.
- See what's coming. A Scheduled section in the list (split view and the feed) holds tasks and reminders that haven't started and finished tasks with follow-ups to come, soonest first; split view's home lists Coming up: those, crew check-ins and schedule triggers, with their times. A task with a follow-up shows a clock pill with its time. wisp started late (or Grid woke it) catches up: follow-ups a few minutes late tell the agent so, a day late they wait for you in Needs you. API:
POST/PATCH/DELETE /sessions/:id/later,GET/POST /later,PATCH/DELETE /later/:id. Spells reach it assection.scheduled,split.upcoming(a slot too, withcount),card.later,composer.later,composer.sendLater,launcher.laterand thereadTimessetting.
Changed
- CI failures follow up on the task already on them. When a CI-failed trigger fires for a branch that already has a task (the one an earlier failure there started, or your task working in that branch's worktree), the failure is queued on it as a follow-up instead of starting another task. Archive the task or mark it done and the next failure starts a fresh one. Crew members' CI watchers do the same with their jobs. Check now says how many it started and how many it sent as follow-ups.
- Toasts look new, and stack. A light card instead of a dark (or solid red) pill: a glyph says what kind it is (a warning for errors, the message's own icon, a crew member's face), the action is a soft button, and a ring round × drains while it shows. Only the newest is in front; older ones tuck in behind it with their edges showing. Point at the stack (tap it on a phone) and it fans out, every clock stops, and Clear all closes the lot; × closes one without running its action, and on a phone you flick it away. The same message twice shows once, three at most. Spells reach them as
toasts,toast,toast.glyph,toast.action,toast.timerandtoast.clear. - Crew members you delegate to show their face. The Delegate button, its presets, the live lines and the delegated reports show a crew member's avatar and role instead of the harness it runs on; other delegates keep their harness logo.
- More room for your tasks: your account, Machines, Automations and Settings are behind one round avatar in the corner of the task list's head (your wisp Grid account, its ring lit while connected). The sidebar's foot and the Machines and Automations tiles are gone. Spells reach it as
topbar.accountandaccount.menu;sidebar.foot,sidebar.navandsidebar.accountstill work. - On a phone, a task opens as a page of its own. In the Android app and in browser windows under 900px wide, the task list fills the screen; tapping a task opens it full screen with Back (the button, Esc, or the phone's Back) to the list, right where you left it. A crew member's thread and New task (the prompt box, with Needs you under it) open the same way; sending a task goes back to the list. The app starts on the list. Spells can restyle Back as
split.back. - Split view is the only layout: the one-column feed is gone. Settings → General → Layout, the
\key and the palette's Feed view are removed. A spell that setssettings.viewstill loads, with a warning that it's ignored. - A crew member's notebook and brief lose their Show all. The preview stays short; Edit opens the whole thing. A brief a spell sets has no Edit, so it keeps Show all.
- A crew member's finished jobs stay under them in the sidebar. Reading a report no longer makes the job vanish: under each member are their three most recent jobs, live ones first (asking you, working, an unread report), then what they finished, until you mark it done or archive it. N more · open … leads to the rest in their thread. Quiet check-ins still only show in the thread.
Fixed
- One click when you leave the follow-up box. With the reply box open, clicking a follow-up suggestion, a pull request clash or any other button above it needed two clicks: the box folded on the press and moved the button away before the click landed. It now folds once the click has gone through.
Get wisp 0.42.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.42.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.