Repository navigation
Added
- Automations stop at: keep part of your plan for yourself. Settings → Usage → Plan budget has a new row, Automations stop at (Off, 50%, 75% or 90%). Once an account's 5-hour or weekly window passes that mark, work nobody started by hand waits for the window to reset: crew check-ins on their schedule, triggers (schedules, GitHub watchers, task watchers), a goal's next round, and follow-ups an agent or wisp scheduled. Each one says so where it lives. A goal round and an agent's follow-up move to Scheduled at the reset (Goal round 4 waits for your plan) and go on by themselves. A crew member's page says Waits for your plan · Thu 21:00 and its next check-in comes after the reset. A trigger's row says Skipped 4h ago for your plan, and a GitHub item it skipped is picked up on a later poll. Anything you start or schedule yourself always runs, and so do Check in now, Run now, Resume goal and Send now. Each bar in Plan budget has a mark at the line, and a window past it reads Automations wait · resets Thu 21:00. wisp only holds its own work back: it never goes past a provider's limit or switches accounts. Off by default. Spells: the
autoStopsetting, and thesettings.autoStoppart. - Where your plan went. Each time Claude Code or Codex reports its usage windows, wisp shares the change out among the tasks that ran on that account since the last report, by how long each one ran. A task's details show its share (22% of weekly · 31% of 5-hour). Under each account in Settings → Usage → Plan budget, Where the weekly window went lists the three tasks that used the most this period (click one to open it), the rest in one row, and Outside wisp or earlier for what wisp didn't run or didn't see. Shares are approximate: Claude reports once per run, so a turn's share arrives with the next report. Spells:
details.planandbudget.where. - Ask near the limit. Before a task or a follow-up would take a Claude Code or Codex plan's 5-hour or weekly window past a line you set (Settings → Usage, Ask near the limit: Off, 80%, 90% or 95%; 90% by default), wisp asks first. A row over the box says where the window is and where this would likely take it (Claude Code’s 5-hour window is at 84%. A follow-up like this usually takes it to 88–96%.) with Send anyway, Wait until Thu 21:00 and × Keep editing; your draft stays put. After a yes, that window asks again only at 95%, then 99%, until it resets. Schedules, triggers, recipes, crew jobs and scheduled follow-ups can't ask, so they wait as a Held run in Needs you (Start now, Wait until …, Skip this run) and go by themselves at the reset. The estimate comes from your own runs: what similar ones cost, and how far the window moved per unit of work while wisp ran them. The harness picker shows a window past your line. wisp never switches accounts because of it. The API answers 409 with
hold(sendconfirmLimit: trueonce the user agreed;wisp launch --yes),POST /api/sessions/{id}/heldstarts, waits or skips a held run, and spells reach the setting aslimitHoldand the picker's note as theharness.usagepart. - See what your crew used, and what ate your limits. Right-click a crew member (or its ⋯ menu, or ⌘K) → Track record…: how much of your 5-hour and weekly limits it used since they reset (Since Fri 14:52, Scout used 14% of the tokens, the crew 36%), its tokens and cost over 7, 30 or 90 days and per day, where they went by kind of job (its check-ins and triggers called out: 4 runs a day × 35k = 148k a day · 86% found nothing), its biggest jobs (a click opens one), and how its jobs went in one line. One suggestion when there's enough to go on (Checking in a quarter as often would use about 37k. Change schedule…). Pick Whole crew in the title (or ⌘K / Settings → Usage → Crew track record) to rank members by usage next to your own tasks. Spells reach it as the
crew.recordpart (itstipsprop turns the suggestion off),crew.record.subjectandcrew.compare; the API asGET /api/crew/stats. - Search by topic. Agents tag their task with a few topic words once they know what it's about (a new
wisp_tagtool every harness gets), and ⌘K finds tasks by them on top of its fuzzy search: a plain word that names a tag ranks the task higher,#authkeeps only tasks tagged auth (#auis enough), and typing a word shows the matching topics with their task count; pick one to narrow to it. Rows show the tags they matched.wisp_sessionssearches tags too. Spells reach the row's tags as thepalette.tagspart. - A setup card on top of Tips until an agent can run. With no harness found (or only signed-out ones), home pins Connect a coding agent (or Sign in to Claude Code) above the tips, on phones and stacked windows too, and it opens Settings → Agents. It goes away by itself once one is ready. Spells reach it as the
tips.setuppart. opencode on its free models alone (no provider signed in, no API key) doesn't count as ready: the card asks for an account or a key, and Settings → Agents says free models only.
Changed
-
The crew member you need comes first. The Crew section no longer lists members in the order they joined: whoever is asking you or working for you is on top, then unread reports, then the members you send the most work (last 30 days), paused ones last. Who fills the rows before the rest fold into faces follows the same order, and so does the
@picker. The order holds while your pointer is in the section, so nothing moves under the cursor. -
The guides on trywisp.dev read like articles. One 680px column of text, a byline with the reading time, the contents in the margin on wide screens, code with a Copy button, questions that open in place, and Keep reading cards. Seventeen guides gained a step-by-step animated figure that shows how the thing works (worktrees per agent, a goal's rounds, a task moving machines, the grid tunnel…), with a sentence per step, pause and step dots, and their last frame for people who prefer reduced motion. The guides list is grouped by topic.
-
Pick a time first, then type. The clock beside Send (Start later, Send later) works on an empty box: a time you pick shows under the box (Starts Tue 10:00, × clears it) and Enter schedules the task once you've typed it, whatever times the text mentions. Pick a time… is now a field in its own row of the menu, with the time it reads where the others show theirs, Enter to take it and Escape to step back. Scheduled tasks and follow-ups now take their attached files along instead of refusing them.
-
Thinking is a slider in the harness picker. Drag (or arrow) from Default up to the harness's top level: the track fills with a quiet accent tint, the knob's orb grows, small wisps brighten and drift faster the harder it thinks, and a hint says what the level means (quick and light, digs deep). Spells reach it as the
picker.thinkingpart. -
Phone polish for a task's page. Claude Code is working, its time and its action count stay on one line (the count, then the time, give way on a narrow phone or with large text); the task's icon buttons (Transcript, Rerun, Take over, More) sit evenly with their icons centred and a pressed Transcript no longer looks off to one side; a tapped button no longer keeps a grey box; a finished turn's files and tools always start their own line; a long reply-box hint fades at the edge instead of making the empty box two lines tall; and a question being asked isn't repeated as Asked you: … under its own card.
-
Schedules in plain words. A crew member's Custom… check-in and a scheduled trigger's When now take what you'd say (every monday, 8am every weekday, every 15 min between 9 and 6) instead of a cron line, and read it back as you type (= Weekdays at 8:00). Lists show schedules in words too. Cron still works for those who know it, and agents, spells and the API can send words as well.
-
Small polish in the task list, the prompt box and a finished task. Titles in the sidebar run to the time instead of stopping halfway beside the state and PR pills. The prompt box folds the place to its icon a little sooner, so the harness keeps its name (no more Au…). A finished task's result no longer repeats the time, cost and file count shown right under it. On a phone, a task's branch gets its own line instead of shrinking to wi…. A result whose heading is the task's title doesn't repeat it under the head, and in split view the reply box no longer repeats Ship it and Mark done, which the task's bar keeps in reach.
-
Calmer, more readable page. One type scale (at most five sizes on a screen, down from ten), hints and times at WCAG AA contrast in light and dark, and colour only where it means something (Plan, Full auto and Worktree tint their icon, not their words). A task says each thing once: the result drops its own Finished pill, the bar drops the overlap count while the overlap notices show, and with the list beside the task the details drop the state and clock time the row and the prompt already show. On phones the task's bar fits in two rows, with the branch cut in the middle (wisp/add-a-rat…-9c5e26) or on its own line on a touch screen, and overlap reasons wrap instead of ending in Also …. In the app every control is at least 44px, and every Tab stop shows a focus ring.
Fixed
-
A paused goal keeps its reason when wisp quits. Quitting wisp, or pressing Stop on a task that wasn't running, changed a paused goal's reason to You stopped it. It now keeps the reason it was paused for.
-
A crew member's own jobs are in the task list. Check-ins (scheduled or asked for), jobs you send a member and trigger jobs show in Working, Needs you and Done like any task, with the member's face; a follow-up on one moves it back to Working. They used to show only under the member, so a finished check-in or a followed-up job could vanish from the sidebar. Jobs run for another task (delegated, an
@answer, a check on a task) stay under the member. -
The harness keeps its name in the New task box side by side. At about 1000px wide with a project picked, the harness pill shrank to
A…while Worktree kept its label; Worktree now folds to its branch icon first (its tooltip still names it). -
The / menu in the prompt box. Typing
/on New task now lists/goal,/spelland/feedback(and spells' own commands), as the reply box does; it used to show nothing, so/goal all tests passworked only if you knew it. A bare/goalopens Done when. -
A goal set right after a task lands gets checked. /goal … sent in the second or two while the agent's CLI was still exiting after its result left the goal at working forever: nothing checked it or sent the task back. Now it's checked at once, as on any idle task.
-
Crew → Show fewer folds the list again. On a phone the tap left the section hovered and focused, which kept every row shown; now it folds back to the compact list at once.
-
Phone polish. Menus (More, the project list) and search's rows are 44px tall on any touch screen, and search drops from the top as a full-width sheet instead of a card cut off at the bottom. A question in a working task gets the panel's whole width on a phone, so its answer box and the status line no longer squeeze into a column. In the app, the empty band above Needs you is gone, nothing peeks out from behind Send in the prompt box, and a crew member's About and Delegate list name the computer (Studio) instead of This computer. Said once: the reply box leaves /btw out while the working panel's tip shows it, a crew member's About row drops the status the head already shows, and the project search reads Search projects with one project instead of Search 1 projects.
-
The phone app's top bar lines up again. Search, your avatar and the project filter are one row of matching 32px controls: search gets the same round outline as the avatar, and the filter pill is no longer a 44px lozenge sitting lower than the rest (each keeps its 44px touch area).
Added
- For later: park a finished task to look at again. Save for later (
L, right-click, More, ⌘K, or the bookmark beside Mark done when you hover a row in Needs you) moves a task out of Needs you into a new For later section in the task list, newest saved first, with Undo. Nothing there runs or pings you, and it isn't counted as needing you. Anything new takes it back out: a follow-up, a reminder coming due, news on its PR; so do Mark done, Reopen and Archive. Unsave puts it back where it was. Crew jobs can be saved too (from their card or with Save for later in the member's thread); they move out from under the member into For later with its face. A crew member can also file a report there itself when it's worth reading but not urgent: the heading says 1 new and nobody is notified. API:forLateronPATCH /sessions/:idand on a task. Spells: theforLateraction (buttons and hooks), and the partssection.forLaterandcard.quickLater. - Agents can update your crew's notebooks and skills. Ask any task to give @gucci a skill for UI reviews or remember in Sana's notebook that…: its agent reads the member in full (
wisp_crewwithmember: brief, notebook and kit), adds to or rewrites their notebook (wisp_crew_editnotebook/remember), and proposes skills and instructions files with the newwisp_crew_kit. Proposed files never join the kit by themselves: they show under the answer in the same card as the crew page's (Proposed for Gucci’s kit: tick, read and edit each, then Add to their kit or Dismiss), and settle in the member's page too. A crew member's own job can propose files the same way; a subagent can't. Spells:turn.kitOffer. - Open a crew member's job from the task that delegated it. While the lead waits, a crew member's row in its team panel (@gucci · This computer · Polish review…) now opens that member's job, and its report card has Open @gucci’s job. The job itself starts with where it came from, Delegated from “…” (or Tagged in, Checking on), a link back to that task. Spells:
delegate.live,delegate.open,task.from. - Fork a task. Fork… starts a new task that carries on from where a task got to, to try another way while the original is kept as it is. It's in the right-click menu, More, ⌘K and ⇧F, and Fork from this turn on each turn forks from an earlier point. The fork gets the conversation up to that turn and a copy of the files as they were then, uncommitted changes and new files included, in a worktree on a branch of its own, so it ships on its own. It can run on another harness, model or mode; whichever agent takes it first reads what happened before the fork. The fork links back with Forked from “…”, a line shows where its own turns start, and the original counts its forks (2 forks, which lists them). Works for tasks in a git repo and for tasks without a folder. API:
POST /sessions/:id/fork,forkedFromandforkson a task. Spells: theforkaction, and the partscard.forkedFrom,card.forks,turn.forkandturn.forkStart.
Changed
- A crew member you
@-mention stays in the sidebar. The job you started with@Ada …in a follow-up now waits in Needs you until you mark it done, instead of filing itself away once it answers. Jobs that another task's agent delegates to a crew member still file themselves under Done.
Fixed
- Mark done and Reopen follow the task at once. Reopening a done task from the list (right-click, ⌘K or E) left its bar and reply box on Reopen and Follow up to reopen… until the page reloaded; they now switch to Mark done straight away, and the button's tooltip names what it does. The More menu's Archive / Unarchive no longer offers the old choice after you archive or unarchive from the list, and ⌘K says Reopen like every other menu instead of Move back to review.
- Marking a task done takes you to New task. Mark done, Archive or Delete on the task you have open now goes to the prompt box instead of opening whichever task sat next in the list. From the list (a row's ✓, or E on a focused row), focus still moves down so triage carries on.
- Answering from the task list in the phone app. A question's answer buttons sit on their own line under it again, instead of a narrow column beside the row that pushed the list sideways and squeezed every label onto several lines.
Get wisp 0.43.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.43.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.