Release notes
Claude Squad v1.0.0
Claude Squad v1.0.0
Claude Squad is a terminal app lets you manage multiple Claude Code (and other local agents like Aider) instances across separate workspaces, so you can tackle multiple tasks at once.
- Run tasks in the background (with yolo/auto-accept mode)
- Control all instances and tasks from one terminal window
- Review changes before applying, checkout before pushing
- Isolated git workspaces per task—no more conflicts!
https://github.com/user-attachments/assets/bf2e17db-cd10-4bba-88ac-7732b8403ed4
Changelog
- e85db5009a92cd6702cb0a87d6f1885d50de62d4: handle terminal window resizing (@mufeez-amjad)
- 143fbf413c671df101d2e4b7dcb05d6870394c74: change name to claude squad (@jayshrivastava)
- e187a3cf119b09037f587f06297982182c02472e: ui: add menu (@jayshrivastava)
- 6b9d3156a4a9bc8a8f0ffec3e01a971f7498a2ff: ui: working on layout (@jayshrivastava)
- 3ee359bab520677b1f9cdb4363434e6d48a02023: ui: layout and up/down keystrokes done (@jayshrivastava)
- fcedc3223db34f22ae42fd8fd0c5b9e49a5acbe8: ui: added error message and finished list except for new (@jayshrivastava)
- f94334376b78d3e2ec399b9196d2fbe8d9be7e6e: ui: add spinners (@jayshrivastava)
- 01697ad6897179839f65082e81ebb23f7a92b7d8: ui: add comments to spinner (@jayshrivastava)
- 5a69cc0695d6a981133abc3204a210e78921f0bc: ui: add comments to spinner in list component (@jayshrivastava)
- a5fe75257c42c41faf3f44c43a7540b6cf742919: ui: improve menu visibility (@jayshrivastava)
- 3b595fbf42b5df4928fdebfa8500289b8ce1aa3f: ui: add ready icon (@jayshrivastava)
- c6b6a4796d82e25451cb3a2a58f3b0603e71715a: ui: improve error styling (@mufeez-amjad)
- 7c4b521c310bb055b4344791a50990a264bd950c: ui: don't wrap list navigation (@mufeez-amjad)
- 509a7530f297dacfaf46286a66e3e5b927325689: session: add tmux session interface (@mufeez-amjad)
- a28a62f0c9a6f8d56cc5370cea41f250ead4c145: log, tmux: add logger and tmux session package (@jayshrivastava)
- 3f25ff6ede1489c9471fbc421879a6d744ed1b30: app, session, ui: add session management and preview pane content (#1) (@mufeez-amjad)
- 0e9dc61268af653af75dfd64dc8354559c2145ab: fix(app): allow quitting with Ctrl-C (@mufeez-amjad)
- ace681028b95c7bff924dea1d5c586ec82eed211: session: add worktree, pushing branch (@mufeez-amjad)
- 93339d32a8be84a51e549d3114970e4273831466: session: context switching in/out working (@mufeez-amjad)
- 82c93bc003b9bed9ca9d718e9d5e8150225269c2: tmux/ui: fix window sizes (#2) (@jayshrivastava)
- f8149aa25419cb874a3491b47ce8cfeac1d1b544: fix(session): bound SIGWINCH channel to prevent unbounded events during resize (@mufeez-amjad)
- 0e4a7f2881335a10655b00afe02b3b187090df95: ci: add build + release workflows, install script (#3) (@mufeez-amjad)
- 6229cb91a631f007305995ed2617227df5b749d5: instance: separate start from struct initialization (@jayshrivastava)
- c276a65b9569b2f11d54a4850b42a284b0365454: list/ui: add ability to enter name for session (#4) (@jayshrivastava)
- 7f4f2da8ab3fe9cb4a38d33bb5af0c766b16ad08: fix(ui): remove extraneous lines from preview (@mufeez-amjad)
- c8e5e0223992d73736bec0e934417b3ad70dcdee: ui: update empty state (@mufeez-amjad)
- fdee23225583c7d305bd08bf6744ad8cd4ab391d: tabs: add tabs to ui and render preview in tabs (@jayshrivastava)
- d6d5d2175a36a694b8cfa2353a32db1d1da4b49f: menu: add tab switching (@jayshrivastava)
- 657fea22ba21370456bc158efbc7f97f4554fb90: ui: make claudesquad two words in fallback text for small terminals (@jayshrivastava)
- cc2b4c43a76459d87369c10ca76593b2e791597b: fix(app, session): allow a freeform session title (@mufeez-amjad)
- 5b4e4e81a28d7096888a68d7470be69d183e48c1: ui: update instance styles to use background with no border (#6) (@jayshrivastava)
- 880014155c96ca5f1147fffbb51e96754cbe9cc4: ui: show branch name in list (@jayshrivastava)
- e39a7477600d07592ba89d7bacfb57cde12f4bb2: tmux: nuke control characters when attaching (@jayshrivastava)
- 58d18320059a1697a494bdbe8dd72db7c29b2a76: fix(ui): prevent layout shift between selected and unselected items (@mufeez-amjad)
- 453ad89b05d04fe3f80757c3868d0d8dbf4b2657: feat(session/git): Add support for checking out worktrees (#5) (@mufeez-amjad)
- 7805c4bb433998d1fa5f34d341d2e3b2943b017f: fix(app): pressing escape when creating a new instance should cancel (@mufeez-amjad)
- 543a5c29e1e1b68dd0c35726a784b3934eaff96b: fix(ui/preview): add paused empty state (@mufeez-amjad)
- 539bf2880686098a0681497a3032802ca1f82903: ui: clarify paused state better (@mufeez-amjad)
- 5a31b668e3771462144963667791bc197ff1eaa2: app: allow for quitting while paused (#8) (@jayshrivastava)
- b8953f63cc643c629e6c2335fb827bd042cccd14: tmux,ui: update statuses depending on claude stdout (#7) (@jayshrivastava)
- f2994ea0fbb0fb724603c8726e71797fcbcb3258: license: add agpl 3.0 license (@jayshrivastava)
- e3e0f7985a0665b743eb2263ad93491175648567: tmux: skip 'do you trust files' screen in instance (@jayshrivastava)
- a28782436ced7718afd5f6c59b2b4ada3f572d29: fix(session/worktree): use HEAD commit for worktree base (@mufeez-amjad)
- 9e7f4975993250d4ae06e8bdda69a5b656f7d1b3: ui: add git diff +- to list card (@jayshrivastava)
- 6c26576119203a71511beb2b1860f9bcb2c05e2e: ui/list: show repo name when multiple repos are used (#10) (@jayshrivastava)
- 7166a4cacb730fd30d75a4171740781ef4d51bd2: feat(ui, session/worktree): Show
git diffoutput in diff pane (#9) (@mufeez-amjad) - 4c026f0b11c8d44b466ea95e6cb7eca90c7cd21b: app: add yolo mode (#12) (@jayshrivastava)
- 5e01864f5b64b09380e73fcb3c7ab8732407086e: app: make auto-yes mode config / cli flag only (#13) (@jayshrivastava)
- 820c45574e170c409f7337f676af89d5787f4d8e: log: add log package to introduce logging channels (#11) (@jayshrivastava)
- b9386010804f7a5de6db93e81301580d7cb15115: ui: make diff scroll text smaller (@jayshrivastava)
- fe37e102e9c6040d3eb3aeb78ceeeb19c7db18be: ui: remove extra whitespace from preview window (@jayshrivastava)
- 7c1a0b04ec0b7555b7ec38edcad623c16881b002: readme: add vibe coded readme file (#14) (@jayshrivastava)
- fe9769dd0c68f5aed8633522017007e8a0115f72: ci: use go version 1.23 in ci (@jayshrivastava)
- 5725719db64fdf0959f1fb348231c4696cd7f974: daemon: introduce autoyes daemon (#16) (@jayshrivastava)
- 54aab7adfd6856f7512817a2d83f98c0226c157c: fix(ci): release workflow (@mufeez-amjad)
- 04bcc776e7c77517feab0a1bc1b84c3c0d058539: fix(ci): escape changelog characters (@mufeez-amjad)
- 5e7a618089d30e0a4eba1be8cece9e7430df19c5: fix(ci): use goreleaser instead (@mufeez-amjad)
- 6e42a5bb7dc09e8a965649ad11bac9ca343bb606: feat(app, session, ui): Add support for poweruser instance creation (#15) (@mufeez-amjad)
- 95e151a5db263950aabfbdf00b3ade82735888d6: feat(ui): Allow scrolling diff pane with mouse scroll (#17) (@mufeez-amjad)
- eb119b46e7854adc459141443aa9e4ea11535138: feat(ui): underline menu items on select (#19) (@jayshrivastava)
- 2b23c52cfad75beba607e07401912da23cc89258: fix(session): ensure we automatically pass initial prompt (#20) (@jayshrivastava)
- 2756db7bf3eed0de86bc9fa5f41b13c7d30c1e8a: fix(app): fix delete and reset bugs (#21) (@jayshrivastava)
- ea75108d82a52b43aa9137c5c2b3a8598c0269cc: fix(worktree): improve commit message to have human readable date (@jayshrivastava)
- b2f0a2193833849440f54487f147121e23a1d6f3: fix(ui): use nicer enter key icon (@jayshrivastava)
- 02e485633494ebc21e81d9daa316a98fc65392fe: fix(app): ensure auto yes mode works on aider (#22) (@jayshrivastava)
- 2c657d381fc823c2f5e88519c6efaf7f0d0b4cef: fix(ui): make menu shorter and improve underlining (#23) (@jayshrivastava)
- 36f9e5886eaf4fac1b51d8f18107b2294633b2b7: fix(ui): set size on error box (@jayshrivastava)
- 84782330a6780e5f8d44d1d23246a167b1b667a5: feat(ui/overlay): add cursor to text input, allow moving cursor (@mufeez-amjad)
- 3004fb3f992be042b4c9388ef658f779e6045135: fix: install script (@mufeez-amjad)
- 55b98c0e21372f5b11d070cb194633f1ccf82e6d: fix(session): replace . with _ for tmux session names (@jayshrivastava)
- 8980228c5cd2aa6be3cbe4b89761d02a718f8b1d: fix(session): reduce text for claude autoyes mode (@jayshrivastava)
- ecff2f7faa09bdcb586d749260b10c85c2da1a22: fix(ui/overlay): update wrapText to account for spaces (@mufeez-amjad)
- 703e81f47604b43f7d60d5f9d4f4d153bcf4e8c6: fix(ui/overlay): use textarea bubble instead of custom implementation (@mufeez-amjad)
…