Repository navigation
Highlights
The new Fleet page shows every computer you use and what it's running, and an agent on one computer can start a thread on another. A new left bar, agents from your terminal, scheduled and event tasks, and phone alerts round it out.
- Fleet, every computer in one place. The Fleet page shows every computer you use and what it's running. Link as many as you have, like a Mac mini, a Linux box or a Windows PC, and an agent on one can start a thread on another when it needs that machine, say to check a Windows-only bug on your PC. It asks you first unless you allow it. You can also move a thread to another computer, set a project up there, and name each computer.
- A new layout. A bar down the left side takes you to Threads, General Chats, Pull Requests, Fleet, Scheduled and Usage, each with its own list. Every thread has the same menu wherever you open it. The sidebar can show several projects at once, and finished threads sit under Wrapped at the bottom. On a phone, the same places share one sheet.
- Agents outside Threadlines can start threads. Claude Code, Codex, Gemini CLI or Cursor in your terminal can now start threads here and follow them, once you approve them in the app. You pick what each one may do, which projects it sees, and the highest access its threads get. Scripts can do the same with the new threadlines command, which the desktop app installs from Settings › Connections › Agents.
- Scheduled and event tasks. A task starts a thread on a schedule, like every weekday at 9, or when something happens, like a GitHub issue opening or a service calling its webhook. Agents can set tasks up too, and ask you first unless you allow them. Tasks run while Threadlines is running on that computer, and a time missed while it was off gets one catch-up run.
- Alerts and swipes on your phone. Your phone can now tell you when an agent needs you, finishes or fails, while it's connected to your computer through Connect a device. On an iPhone, add Threadlines to your Home Screen from Safari first. Swipe the sidebar and side panel closed, and swipe a thread to pin it or wrap it up, with Undo.
Also improved
- The app does far less work while many agents run, and pull request status agrees everywhere and updates sooner for the one you're looking at.
- You can type while an approval waits, and approval requests say why the agent is asking. Replies can include diagrams and math.
- Every device shows the same terminal tabs. A port a command finds taken names the terminal holding it, and a restart warns before it stops terminal work.
- Notices say what went wrong in plain words. A failed send offers Retry, and a computer that dropped offers Reconnect.
- Each pull request a thread opens can fix its own failing checks, and new worktrees can start from the branch you choose.
- Open any picture bigger with zoom, right-click a file to reveal it or copy its path, and Muse, OpenCode and fx join the Usage page.
Complete technical changes
What's Changed
- fix(web): a command card ends the agent's line, like a page by @badcuban in #577
- fix(web): signing in from Settings opens one sign-in page by @badcuban in #578
- fix(claude): a check-back step no longer reads "Edited a file" by @badcuban in #579
- feat(web): open any picture bigger, with zoom by @badcuban in #580
- fix: merged pull requests no longer show as open in the sidebar by @badcuban in #581
- fix(web): every sign-in surface opens the sign-in page once, and Grok's only once by @badcuban in #583
- feat(usage): Muse, OpenCode and fx join the Usage page by @badcuban in #584
- fix(server): migration 026 keeps model options a JSON array on SQLite 3.54 by @badcuban in #582
- fix(desktop): an agent's clicks in the browser reach frames inside a page by @badcuban in #585
- fix(cursor): checking Cursor's models no longer changes your default model by @badcuban in #586
- feat(desktop): an agent's browser snapshot shows what frames in the page show by @badcuban in #587
- fix(acp): background checks no longer leave empty fx and Cursor chats behind by @badcuban in #588
- feat(desktop): selectors, locators and text find what's inside frames too by @badcuban in #589
- feat(terminal): every device shows the same terminal tabs, and typed passwords never become tab names by @badcuban in #590
- feat(terminal): warn before a restart stops terminal work, and offer to run it again after by @badcuban in #591
- fix(desktop): network settings that restart Threadlines warn about running agents and terminals by @badcuban in #592
- test(web): the note-in-progress test waits for the list to settle before it stops the clock by @badcuban in #593
- feat: Fleet, your computers work as one (0.8.0) by @badcuban in #594
- test(web): the swipe-follow test waits for the list to reach the bottom by @badcuban in #595
- fix(web): cards on the new-thread drawing open the moment you hover a line by @badcuban in #596
- test(server): the provider cache test waits for the published refresh by @badcuban in #598
- feat(web): clicking the left bar icon of the page you're on hides or shows its list by @badcuban in #597
- fix(server): Claude sessions get the room tools again by @badcuban in #600
- test(web): the diagram tests wait long enough for the diagram renderer's first load by @badcuban in #599
- fix(deps): update the nested KaTeX used by Markdown by @badcuban in #602
- feat(terminal): a port a command finds taken names the terminal holding it by @badcuban in #604
- feat(web): Wrapped parks closed at the bottom of the sidebar by @badcuban in #605
- fix(terminal): tabs keep their width when the pointer brings up the kill button by @badcuban in #607
- feat(threads): choose which branch new worktrees start from by @badcuban in #603
- fix(web): left bar counts only hide beside their own list by @badcuban in #608
- feat: agents know which device a message came from by @badcuban in #609
- fix(web): notices show the whole error and stay in front by @badcuban in #610
- feat(settings): keep Claude's suggestions when you're using a lot by @badcuban in #612
- fix(ci): the Docker image builds again after every stable release by @badcuban in #613
- feat: phone alerts when an agent needs you, finishes or fails by @badcuban in #614
- fix(web): long agent pages show in full, and the reply under a new page no longer overlaps it by @badcuban in #615
- feat(web): agent update progress stays in the notice you clicked by @badcuban in #611
- test(web): Fleet tests no longer race the thread details they mark working by @badcuban in #618
- fix(deps): stop pinning zod to versions with the memory bug by @badcuban in #616
- test(web): timeline list tests aim again when the list moves their text by @badcuban in #619
- feat: agents running outside Threadlines can start and follow threads, plus a threadlines command by @badcuban in #617
- fix: commands you put in the terminal send their output back to the agent by @badcuban in #621
- fix: every pull request a thread opens can fix its own failing checks by @badcuban in #622
- fix(deps): patch the Electron certificate and body-parser advisories by @badcuban in #623
- fix(deps): move fast-uri to 3.1.9 for four URI parsing advisories by @badcuban in #625
- fix(deps): move undici to 7.30.1 and 8.12.3 for three advisories by @badcuban in #626
- fix(server): threadlines connect finishes once the sign-in is stored by @badcuban in #627
- fix(web): clicking a count in the left bar opens its section by @badcuban in #628
- fix(pi): a rejected key says so plainly and offers Sign in by @badcuban in #629
- fix(telemetry): the ready report isn't resent when a check can't tell by @badcuban in #631
- fix(web): replies that quote a sign-in error no longer turn into a sign-in card by @badcuban in #632
- feat(web): project menu names the worktree and opens the main project by @badcuban in #630
- fix(web): a side answer by the thread's own agent carries its own name by @badcuban in #633
- fix(web): finished child threads leave their parent once you've seen them by @badcuban in #636
- fix(web): stale tabs reload themselves, and unpaired links ask to pair by @badcuban in #635
- test(web): a stalled chat view cleanup says which step hung by @badcuban in #637
- fix(telemetry): Pi's own models are reported by name, and gpt-4o is too by @badcuban in #634
- test(web): the version card size checks no longer race its open animation by @badcuban in #638
- fix(web): a sign-in terminal that opens late no longer takes the keyboard by @badcuban in #641
- fix(server): a new thread appears only once its worktree is ready by @badcuban in #640
- test(web): the move dialog spec checks its picker around Escape by @badcuban in #642
- refactor: chat replies are never read as sign-in errors by @badcuban in #643
- fix(web): iPhone headers stay sharp and the keyboard no longer covers pop-ups by @badcuban in #644
- test(web): notice clock specs no longer depend on leftover focus by @badcuban in #645
- test(server): Claude adapter tests ignore the Claude session running them by @badcuban in #646
- fix(server): a child thread that fails to set up still tells the agent that asked by @badcuban in #647
- fix(web): notices and Fleet dots keep going while you're in the browser panel by @badcuban in #648
- fix(web): notices with buttons show their whole title and put the buttons underneath by @badcuban in #649
- fix(web): the update card's nightly number lines up with "Nightly" by @badcuban in #650
- fix(web): message buttons show on phones and the device icon no longer copies by @badcuban in #652
- fix(web): notices on Settings pages start below the page title and its buttons by @badcuban in #653
- fix(web): hooks that work no longer show as rows in the chat by @badcuban in #655
- fix(web): notices say "Couldn't…" in plain words, and stop for things you can see by @badcuban in #654
- fix(desktop): agents can screenshot browser pages while Windows hides the window by @badcuban in #656
- fix(desktop): the window asks for its own server once, not hundreds of times a minute by @badcuban in #657
- fix(web): failed sends offer Retry, lost computers offer Reconnect, and quiet Git notices go by @badcuban in #658
- perf: the app does far less work while many agents run by @badcuban in #651
- feat: name your computers and phones by @badcuban in #659
- chore(deps): bump voidzero-dev/setup-vp from 1.21.2 to 1.22.0 by @dependabot[bot] in #660
- chore(deps): bump docker/login-action from 4.6.0 to 4.7.0 by @dependabot[bot] in #661
- chore(deps): bump the production-dependencies group with 13 updates by @dependabot[bot] in #662
- fix(web): the thread list starts narrower and can shrink further by @badcuban in #665
- chore(deps-dev): bump the development-dependencies group with 6 updates by @dependabot[bot] in #663
- fix(deps): Electron 43.8.3 with 64 Chromium and V8 security fixes by @badcuban in #666
- feat: pull request status agrees everywhere and follows what you're looking at by @badcuban in #667
- fix(deps): vite-plus 1.4.0 and PostCSS 8.5.31 by @badcuban in #668
- fix(web): a new thread opened right after the app starts still fetches its upstream by @badcuban in #669
- revert(web): notices keep their usual spot on Settings pages by @badcuban in #670
- fix(deps): @pierre/diffs 1.6.1 by @badcuban in #671
- fix(web): notices no longer tint their text area on hover by @badcuban in #673
- feat(web): right-click any file for reveal in Finder and copy path by @badcuban in #674
- refactor(web): the command palette names the file manager the shared way by @badcuban in #675
- fix(web): a new thread names its own agent while its worktree is made by @badcuban in #676
- feat(web): a file chip's hover label says what a click will do by @badcuban in #677
- fix(web): a retried send shows in the chat while it goes by @badcuban in #678
- test(shared): count a far-off cadence search's work instead of timing it by @badcuban in #679
- fix(web): a message on its way keeps showing when the chat view is rebuilt by @badcuban in #680
- test(web): the Wrapped shelf spec waits for the sidebar's background loads by @badcuban in #681
- fix(deps): Electron 43.8.4 on Node 24.22.1 for the undici crash fix by @badcuban in #682
- feat(web): rename computers and phones from the Fleet list and map by @badcuban in #683
- fix: goals on new worktree threads and lowered access wait for their setup by @badcuban in #684
- fix: Fleet polish for 0.8.0: Windows sign-in page, agent access list, device notes by @badcuban in #685
- feat(telemetry): wait-time reports say how long the agent took to start by @badcuban in #686
- fix: a finished child on another computer leaves its parent's group by @badcuban in #687
- fix: a computer still on 0.7.1 keeps working with a 0.8.0 app by @badcuban in #688
- fix: hide Muse Code's account email, and keep a new thread's remote parent by @badcuban in #693
- docs(marketing): record the 0.8.0 Fleet video on two computers by @badcuban in #690
- fix: remote threads show the cloud, Muse Code's email stays hidden, Scheduled names Claude models once by @badcuban in #689
- feat(marketing): 0.8.0 homepage with Fleet, new screenshots and hero by @badcuban in #691
- docs(release): prepare the 0.8.0 changelog and announcement by @badcuban in #692
- docs(release): Fleet is for every computer you have, not two by @badcuban in #694
Full Changelog: v0.7.1...v0.8.0