Skip to content

Releases: M0xoo/wisp

v0.43.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 14:15
0e71e1a

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 autoStop setting, and the settings.autoStop part.
  • 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.plan and budget.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 (send confirmLimit: true once the user agreed; wisp launch --yes), POST /api/sessions/{id}/held starts, waits or skips a held run, and spells reach the setting as limitHold and the picker's note as the harness.usage part.
  • 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.record part (its tips prop turns the suggestion off), crew.record.subject and crew.compare; the API as GET /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_tag tool 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, #auth keeps only tasks tagged auth (#au is 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_sessions searches tags too. Spells reach the row's tags as the palette.tags part.
  • 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.setup part. 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.thinking part.

  • 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 chec...
Read more

wisp 0.42.1-nightly.20261027.813

Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 22:01
9e04f9d

A build of main at 9e04f9d, made every night once the full test suite passes there. It may break: for everyday use, take the latest release.

Since the last release

Added

  • Search by topic. Agents tag their task with a few topic words once they know what it's about (a new wisp_tag tool 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, #auth keeps only tasks tagged auth (#au is 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_sessions searches tags too. Spells reach the row's tags as the palette.tags part.
  • 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.setup part. 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 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.thinking part.

  • 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

  • The / menu in the prompt box. Typing / on New task now lists /goal, /spell and /feedback (and spells' own commands), as the reply box does; it used to show nothing, so /goal all tests pass worked only if you knew it. A bare /goal opens 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: forLater on PATCH /sessions/:id and on a task. Spells: the forLater action (buttons and hooks), and the parts section.forLater and card.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_crew with member: brief, notebook and kit), adds to or rewrites their notebook (wisp_crew_edit notebook / remember), and proposes skills and instructions files with the new wisp_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 /sess...
Read more

v0.42.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 03:43
dc6f65b

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_connectors lists your connectors, wisp_connector_add adds one, and wisp_connector_signin asks 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 (an https:// 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's mcpServers JSON 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 as settings.connectors, connectors.row and connectors.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: goal on POST /sessions, PUT/PATCH/DELETE /sessions/:id/goal. Spells reach it as goal.band (a slot too), goal.text, goal.track, goal.check, card.goal, launcher.goal, launcher.goalLine and the goalRounds setting.
  • 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: budget on GET /agents, the limitWait default. Spells reach it as settings.budget and the limitWait setting.
  • 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, and rows on section.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, account on launches and follow-ups, turn.limit on a turn that hit one. Spells reach it as picker.accounts, runner.account, details.account and settings.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_later tool ("the deploy takes 20 minutes, I'll look again then") instead of sleeping; crew members' jobs too (their wakeIn still 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 as section.scheduled, split.upcoming (a slot too, with count), card.later, composer.later, composer.sendLater, launcher.later and the readTimes setting.

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.timer and toast.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.account and account.menu; sidebar.foot, sidebar.nav and sidebar.account still work.
  • On a phone, a task opens as a page of its own. In...
Read more

v0.41.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 16:41
7efa0b7

Added

  • Agents can point at another wisp task, and you open it with a click. When an agent finds or names one of your tasks (find the session where…), its reply shows a card with the task's title, project, harness, state and when it last moved; click it to open the task. A task that's been deleted keeps its title and says so. Agents are told to use it whenever they name a task, and spells can restyle it (task, task.open).
  • Share a crew member, or your whole crew. Share… on a member (its ⋯ menu, right-click, ⌘K) gives who they are: name, face, brief, schedule, what starts them, mode, harness, delegates and, if you tick them, their skills and instructions and notebook. Their project, computer, log and jobs stay with you. Copy it, Download a .crew.json, Create a gist (secret, after you confirm) or save it As a spell. A scan for keys and tokens blocks a share that holds one and says where. On the phone, Share offers Copy and the gist.
  • Import someone's crew member. Drop a .crew.json on wisp, paste it or a link (https, gist:<id>) in Import crew members… (⌘K, or Import… under Start from when adding a member), run wisp crew import, or ask an agent (add the member from gist:abc123). A review shows each member with the name they get (Scout 2 when the name's taken), their harness here, their brief and kit, and their project; one that starts when CI fails needs one. They join paused, with their triggers. Also wisp crew and wisp crew export, and POST /crew/import / POST /crew/export.
  • Spells can bring crew members. crew in a spell is a list of members, each with a brief, schedule, events, mode, kit and delegates. They join paused; the first Resume shows what they do and asks for their project. The spell keeps them up to date, and an update that changes what they do pauses them until Resume has shown you the change. Switched off, they leave the crew and come back as they were. Make it mine lets a member go from its spell; removing the spell asks whether to keep them. A spell with a member that starts on its own is marked Runs commands. Spells reach Share and Import as crew.share and crew.import; the review that gates a spell's own members can't be restyled or hidden.

Changed

  • A livelier "is working": the spinner ring is now a small dot grid with a ripple running out from its centre, and the working panel's … is working has a soft light passing over it, in the feed, split view, the crew and the site's demo.
  • A crew member's details fit the window without scrolling. One line per fact, Check in now / Edit… / Remove in a row, shorter notebook and brief previews (Show all opens the rest), and one line per skill.
  • Split view's home shows what your crew needs from you. A crew member's question or a report you haven't read now sits in Needs you above the tips, with the member's face, among your other tasks; clicking it opens the job under its member.

Fixed

  • Ship it no longer fails now and then with index.lock: File exists. wisp's own git status checks on a task's worktree took git's index lock while Ship it was committing there; they now read without locking.
  • A job you give a crew member shows under them at once. Its Starting up card used to appear only when the server had started the job, a beat after you sent it; now it's there the moment you press Enter, and the real job takes its place.

Get wisp 0.41.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.41.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.

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 ch...
Read more

v0.39.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 22:39
2e9eb04

Changed

  • Automated tasks look different in the list: a task a recipe started shows a bolt instead of the round status dot, and one a trigger started (a schedule, failed CI, a labelled issue) shows a circular arrow, in the project's colour and with the same pulse while it works. Hover it for the recipe's or trigger's name.
  • Agents' answers save you the follow-up you'd have typed: wisp now tells agents which block to reach for. A code change ends with the next ship step as a one-click action, worded the way you ask for it. A UI change comes with a screenshot or live preview. A release or deploy lists every stage, done or not. A branch is checked against its base before it's handed back. An audit lets you pick which findings to fix. A long plan comes as a document. Warnings are kept for what needs your attention.
  • Signed out, the sidebar keeps your account row: after signing out of a wisp Grid the foot still shows who you were, greyed, saying Not connected · Sign in; a click signs you back in. Never signed in, the same row offers the sign-in.
  • A new sidebar in split view: New task is a small prompt box, with Machines and Automations side by side under it as tiles. Settings moved to the sidebar's foot, and when you're signed in to a wisp Grid (or on your cloud computer) the foot shows you: your avatar, name, handle and grid, with a ring that lights up while the grid is reachable. Click it to open your account. Group headings trail into a hairline, and the list sits on its own quieter surface. Spells reach the new parts as sidebar.nav and sidebar.account.

Fixed

  • Ship it works as soon as a task is done: for up to 3 seconds after a task showed as ready, Ship it, Fix conflicts and undo could answer Still working while the agent's CLI was still exiting. wisp now lets that CLI go and carries on. Deleting a wisp Grid account also waits longer for Windows to release the box's files.
  • The reply box names the harness you switched to: while a task runs, picking another harness for the follow-up left the box saying Steer Claude Code…. It now says Hand over to Codex — interrupts Claude Code and sends now (or Queue a follow-up for Codex when queueing).
  • Deleting a running task just deletes it: it no longer comes back under Needs you for a moment with a "ready" toast (and a phone or webhook notification) as its run is stopped.
  • wisp Grid shuts down cleanly with starts waiting: stopping the grid while someone's wisp waited for room let that start carry on after the database had closed (statement has been finalized). Waiting starts now give up when the grid stops, and nothing is recorded after it has.
  • The account row in the sidebar shows a pointer: hovering wisp Grid · Not connected showed a text cursor; it's a button. Clicking it puts you in the grid's address to sign in, not in Machines' SSH field.
  • The logo takes you to the prompt box: clicking wisp's logo in the top bar closes the open task in split view and shows the prompt box, or scrolls the feed back up to it, focused.
  • Menu titles stay on one line: Add a delegate (and Run on) no longer break in two next to their hint; the hint moves under the title when it doesn't fit.
  • Toasts no longer cover the reply box: a toast such as … is ready · Open sat over an open task's follow-up buttons (Ship it, Mark done). It now rises above the reply box, including when you open a task while the toast is showing.
  • A phone browser's reply box fits on one line: at phone width the follow-up's permission mode is just its icon, as in the Android app, so Full auto no longer wraps onto two lines. The floating Collapse button no longer sits on the open card; tap the card's head to collapse it.
  • Long links no longer run off the screen: a prompt or answer with a long URL (or any unbroken word) now wraps inside its card instead of spilling past the edge on phones.
  • Compare on Windows no longer fails to make its worktrees now and then: two checkouts into one repo at the same moment could catch each other half made (failed to read .git/worktrees/…/commondir). Worktrees in one repo are now made one after the other.
  • Edit diffs from Antigravity, Copilot, Codex, OpenCode, Cursor and Grok no longer show an empty "before" now and then: a file read the instant the harness was rewriting it is no longer taken for its old content.
  • Codex lets you pick a model: the picker only offered Default. It now lists the models Codex's own /model shows (read from its catalog in ~/.codex/models_cache.json), each with the thinking levels it supports.
  • Thinking levels come from each harness's CLI: wisp kept its own lists, so newer levels never showed up. It now reads them from the CLI itself: Codex's catalog (codex debug models, so Ultra on models that have it, and Default takes the levels of the model it runs), --help for Claude Code, Antigravity (now up to Max) and Copilot (None and Minimal to Max), and Grok's default model. OpenCode already read them per model; Cursor bakes the level into the model name.

Get wisp 0.39.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.39.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.

v0.38.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 23:14
b4fa208

Added

  • Delegate to your other machines: the launcher's Subagents button is now Delegate, and each delegate picks where it runs: With the lead (as before), this computer, or any of your machines, with the harness, model and thinking level installed there. The lead's place is shown (and switchable) at the top. A delegate away from the lead gets a copy of the lead's work there (uncommitted edits too), runs hidden, and its changes come back to the lead's folder as a patch when it finishes (a three-way merge if the lead moved on; conflicts and patches that don't apply are reported to the lead). The lead hears each delegate's place in its team note. API: machine (here or a machine id) on each subagents member.
  • Install the Mac app with one line, without the "can't verify" warning: curl -fsSL https://trywisp.dev/install.sh | bash -s -- --app downloads wisp.app from the latest release, checks it against SHA256SUMS.txt and puts it in /Applications, with no Node needed. curl doesn't quarantine what it downloads, so macOS opens the not-yet-notarized app straight away. WISP_VERSION pins a release here too.
  • Beta and nightly builds, and an update channel to follow them. Settings → General → Updates: Stable (as before), Beta (previews of the next release, npm wisp-agents@next) or Nightly (a build of main every night the full test suite passes, npm wisp-agents@nightly and the apps on the nightly release). Update to … then offers the newest build of that channel, for npm, npx and the desktop app; a stable release that's newer still wins. Homebrew stays on stable. install.sh takes WISP_VERSION=next or WISP_VERSION=nightly (with --app too).

Changed

  • Ship it opens on the click. The dialog used to wait for wisp to read the worktree (git and gh) before showing, so the click seemed to do nothing for a second. It now opens at once in its final shape, with placeholders for the route and the message, and fills in when the worktree has been read.
  • trywisp.dev: every way in, at the top and the bottom. The nav's npx wisp-agents pill is now Get wisp ▾: a menu with npx, npm, curl, brew and this OS's app (on a Mac, the curl install that skips the warning; elsewhere the download), each one click to copy, and a link to the full install section. The page's last section has the same tabs as the hero, kept in step with it.
  • trywisp.dev: npx comes first again, Download is the last tab. Until the apps are signed, Download says what to expect on first open: on a Mac it offers the curl install (or the .dmg, with Privacy & Security → Open Anyway); on Windows, SmartScreen's More info → Run anyway; on Linux it offers the .deb, with the AppImage as the other choice.
  • trywisp.dev reads tidier. The changelog page groups releases by week (the newest open, older weeks a click away; a link to a release opens its week). The hero no longer shows the version, the hero's task queue shows where the demo's rows will land instead of a blank box, and the footer stays on one row. The Cloud page and the guides say you can sign in with GitHub or Google, and the Cloud page has a Continue with Google button.
  • wisp Grid's pages follow its name. The word beside the logo and the sign-in page's kicker come from name in grid.json (wisp Grid by default), so a grid named wisp Cloud says Cloud.
  • The repo has a SECURITY.md, CONTRIBUTING.md, issue templates and a pull request template.

Fixed

  • Settings → Spells on a phone: a spell's Acts for you badge no longer squeezes onto two lines next to its name; the name, version and badge each stay whole and the badge moves under the name when the row is narrow.
  • Allow & retry right after a run ends. Clicking it within a few seconds of the result, while the agent's CLI was still exiting, was refused with "The task has moved on since". It now lets that CLI go and starts the retry.
  • Updates order prereleases the semver way. 0.38.0-beta.2 is newer than 0.38.0-beta.1, and 0.38.0 newer than both. wisp used to drop everything after the -, so it saw 0.38.0-beta.1 and 0.38.0 as the same version and never offered the release.

Get wisp 0.38.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.38.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.

v0.37.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 19:38
dbc97d3

Added

  • Sign in to opencode Zen and Go from Settings → Agents. opencode's row has Add key: paste the API key from opencode.ai/auth for Zen, Go or both, and wisp saves it where opencode auth login would (~/.local/share/opencode/auth.json, next to your other providers). Their models then show up in the picker. Keys shows which ones are saved and removes them. It works for cloud computers too (Settings → Cloud). The free models still need no key.
  • wisp computer on: add this computer to your wisp Grid from a terminal. It's the same as Machines → Reach this computer from anywhere, without opening the app, so it works on a server or over SSH. If you aren't signed in to a grid yet, it prints a code and a link and opens the link when it can. Allow the code in any browser, and it prints the computer's address on the grid once the tunnel is up. wisp computer shows whether it's on, wisp computer off takes it off, --grid wisp.example.com picks your own grid, and --json prints what the API returns.
  • Download wisp like any desktop app. Every release now has a macOS .dmg (Apple silicon and Intel), a Windows installer (x64 and Arm) and a Linux AppImage and .deb (x64 and Arm), with Electron built in, so they need no Node.js. trywisp.dev's install boxes open on a Download tab that offers the build for your OS and links the others. The app updates itself from GitHub Releases: Update to … downloads the new build, checks it against the release's SHA-256, swaps it in and reopens wisp (a .deb points you to the download).
  • One release does everything. Merging a version bump runs .github/workflows/release.yml: it builds the desktop apps, drafts the GitHub release with the CHANGELOG notes, the downloads and SHA256SUMS.txt, publishes wisp-agents to npm with provenance, publishes the release and bumps the Homebrew tap. Rerun it from the Actions tab to finish one that stopped half way; each step skips what's already done.
  • wisp Grid makes room instead of turning people away. A box now starts when the host has the memory for it (MemAvailable, with hostd.admit), not only while fewer than maxRunning run. When there isn't room, the grid stops the box that has been quiet longest (nothing running, no page or terminal open, for 2 min) the same way the idle stop does, so its home and tasks are kept. If every box is busy, the start waits in line (Waiting for room on the waking page) instead of failing at once. Scheduled wakes wait behind people and never stop anyone's box.
  • Seats that grow by themselves: auth.maxUsers: "auto". The grid records how busy the host is every 5 minutes. While every seat is taken, nothing had to wait for room and the busiest moment of the last week stayed under 70% of what the host can run, it opens one more seat a day, up to auth.seats.cap. It never takes seats away.
  • Add a cloud machine, on the grid's account page. Each account has one cloud wisp for now. A new row under it opens a dialog that shows the machine you have (CPU, memory) and lets you ask for more machines, a bigger one or GPUs, with a line on what you'd run. You see you're on the list right away, on the row and in the dialog; if the grid refuses, it goes back and says why. wisp grid waitlist lists who asked for what.
  • A waitlist in the grid. People the full grid turns away at sign-in, and emails from trywisp.dev's form (POST /api/waitlist), go on a list. A seat that opens is held for a week for the oldest email on it; signing in with GitHub on that address gets it. wisp grid waitlist lists who's waiting and who has a seat held.
  • Three new guides on trywisp.dev for running agents from anywhere: Beyond Claude Code Remote Control, Use Codex from your phone and Remote coding agent apps compared (Happy, Grass, CloudCLI and wisp).

Changed

  • wisp Grid and search engines. The grid's landing page names itself canonical and serves a robots.txt; its other pages say noindex, and every answer from a person's wisp or computer address carries X-Robots-Tag: noindex, nofollow (their robots.txt disallows everything).
  • No more "N seats left". The grid's sign-in page, trywisp.dev and the Cloud page no longer count seats. They say the preview is open, or that it's full and take your email.
  • wisp Grid: GitHub and Google sign-in side by side. When a grid offers exactly two ways in, the buttons share one row instead of stacking, so adding Google doesn't push the page down; on phones they read just GitHub and Google.

Get wisp 0.37.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.37.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.

v0.33.0

Choose a tag to compare

@M0xoo M0xoo released this 23 Oct 11:36
99226f4

Changed

  • A new logo: a handwritten w that ends in wisp's orb. It replaces the orb everywhere: the app and favicon icons (web, docs site, desktop app, Grid), the Android launcher, themed and status bar icons, the Play store art and the share images, and the small mark beside "wisp" in the page, the site, Grid and the Android app. node scripts/logo.mjs draws every vector copy.
  • The header shows just the logo now, without the word "wisp" beside it, in the page and the Android app.
  • The sidebar button next to Search hides the task list in split view. The open task (or the prompt box) gets the whole window and the button waits in the corner to bring the list back; [ does the same, and the browser remembers your choice. In the feed the same button opens split view; the feed itself is still \, the command palette or Settings → Layout.

Fixed

  • Leaving split view for the feed (the top bar button, \, Settings) did nothing but flip the button's icon: the layout stayed split until a reload.
  • In the desktop app, the buttons left in the corner once the task list is hidden couldn't be clicked (the window's drag area under them took the clicks), so the list couldn't be brought back.

v0.32.0

Choose a tag to compare

@M0xoo M0xoo released this 23 Oct 02:07
9398e59

Changed

  • Take over opens in a terminal inside wisp by default on macOS and Linux, instead of a terminal app. Pick Auto-detect or a terminal app in Settings → General → Take over in to go back; a setting you already chose is kept. Windows still opens a terminal app.
  • Each task keeps its scroll position across reloads. Split view already took you back to where you were in a task when you opened it again; that place is now saved in the browser, and the open task's is written as the page goes away, so a reload (⌘R, wisp updating, the phone dropping the page) opens it on the same spot. In the feed, the open task you were reading comes back where it was too.
  • The "Nothing needs you" line above the task list is gone, in the feed and in split view's sidebar: the group headings already say what needs you.

Added

  • Copy a picture from a reply and paste it anywhere (Slack, a doc, an issue): hover it for Copy image and Download, or open it and use the same buttons in the viewer, where ⌘C / Ctrl+C copies too. Any format is copied as a PNG, which every app pastes. A spell can restyle or hide the buttons (image.tools).
  • The address bar follows the open task (#/s/<id>, the task opened last in the feed), so reloading keeps it open and a copied link opens it in another tab or browser. Opening a #/s/<id> address opens that task, as before.

Fixed

  • Split view from the first paint: the page no longer shows the feed while its scripts load and then jumps to split view (most visible on wisp Grid, where they come over the network).