Skip to content

Releases: lichdotdev/lich

v0.78.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 21:03
5d0cc4f

lich: a terminal-first ADE for the coding agents you already use

Changed

  • While a session works, the window redraws its busy spinner at 30 frames a second rather than at the display's rate, a card builds its right-click menu only while that menu is open, and a dialog that is shut builds nothing at all.

Fixed

  • Branch, changes and pull request on the cards and the footer catch up within a second of a commit, checkout or edit made outside a turn, where they could lag up to three seconds, and selecting a card reads its checkout at once instead of showing what the last read found.
  • Hiding the pull request list in Pulls slides it away at once, where the list stayed on screen until the mouse moved or Pulls next checked GitHub. Showing it again no longer waits a frame either.
  • Kiro CLI sessions follow KIRO_HOME. With it set, lich read Kiro's conversations, cost and context from ~/.kiro while Kiro kept them under KIRO_HOME, so they showed nothing and History listed none; the agent that carries lich's hooks was installed where Kiro never looked, and a sandboxed session was not given the directory it writes into.
  • Opening or closing the dock no longer leaves the session's terminal cut off at its edge for a beat once the dock stops. The terminal takes its new width as the dock starts moving, so the agent redraws while the dock slides in, where the terminal waited until a tenth of a second after the dock stopped and then jumped. A split layout's terminals fit the moment the dock stops.
  • Expanding the sidebar no longer leaves the session's terminal at its old width for a beat once the sidebar is open. The terminal takes its new width as the sidebar starts moving, as with the dock, where it waited until a tenth of a second after the sidebar stopped and then jumped; collapsing it refits at once too. A split layout's terminals fit the moment the sidebar stops.
  • Reopening the window no longer types stray text into a session. Rebuilding a terminal from its recent output answered the terminal queries in it again, such as the ones nvim sends at start, and the answers landed on the session's input: in a shell as a command not found, in an agent as text in its prompt.
  • A session's terminal opened while the session is printing no longer misses what it printed in that moment. The backend now hands the window the session's recent output in line with its live output, so nothing between the two is lost or shown twice.
  • On Linux, stepping the terminal font size and opening a card for the first time hitch less. Every terminal looked its font up again through fontconfig each time, four lookups of about 10ms apiece inside one frame; lich now remembers the answer for the rest of its run.
  • Stepping the terminal font size no longer reloads the font of every open terminal: each one keeps the font it has and only draws it at the new size.
  • A session printing a lot of output costs the backend less. Each byte on its way to the window was copied about seven times into memory the garbage collector then had to reclaim; it is now copied once.
  • A block comment that opens above a collapsed stretch of a diff, in Review and Pulls, no longer colors the code after that stretch as a comment. Its closing */ fell in the hidden lines, so every hunk below showed as comment until some later */, and only expanding the stretch fixed it. The lines of a comment cut by a collapsed stretch, above it, can still show as code until it is expanded.

v0.78.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 21:03
7ba1c72

lich: a terminal-first ADE for the coding agents you already use

Added

  • Comments can be edited and deleted from Pulls. The … beside a review thread comment (in the Conversation tab and in the diff) or a comment on the pull request offers Edit, which rewrites it in place on GitHub, and Delete, which asks first. A submitted review's summary can be edited too; its verdict stays as it is. The … shows only on what GitHub lets your account change.
  • Choosing a monospace font for the interface in Settings › Appearance asks whether the terminal and the editor should use it too. Use everywhere sets both; Interface only leaves them as they were. A proportional font or System asks nothing.
  • A comment waiting in the review batch can be reworded before it is sent: its pencil opens it in a dialog, saved with Save or Ctrl+Enter. A line comment in a pull request's pending review has an Edit button beside Discard that opens it in a box, saved with Save or Ctrl+Enter.

Removed

  • The notice that the native window is experimental, shown the first time it opened, is gone: the native window is lich's only window.

Fixed

  • Comments for the session written on a pull request's Files tab in Pulls go to a session in the checkout of that pull request's branch, where Send typed them into whichever session was open before Pulls, reviewing another branch. With no session there, Send says to open one and keeps the comments; Open in Session starts it. A line reference sent from that tab goes the same way.
  • Go to session on a pull request in Pulls opens the session you are in when it sits in the pull request's checkout, where it always opened the first session there.
  • On Windows with display scaling above 100%, a drag follows the pointer again: an item dragged in Settings › Footer or a selection dragged in the terminal landed away from the cursor, scaled as if the screen were at 100%.
  • Review comments sent to a session are kept until the session takes them. A session that refused the batch (one that had stopped, say) showed "Couldn't send the comments" while the comments were already gone; they now stay in the batch to send again. Likewise, submitting a pull request review in Pulls drops only the comments it carried, where a comment written while the review was on its way was lost with them.
  • On Windows, the window wears lich's icon and opens under lich's taskbar button, where it showed a generic icon and, launched from a lich pinned to the taskbar, opened as a separate button beside the pin.
  • Clicks across the window show their result at once, where many waited for the mouse to move: dialogs opening and closing, the dock's and Settings' close buttons, opening a file from the Code tab, the find bar's toggles, the Pulls filters and conversation, the sidebar's filter, and Settings' sections, switches, ladders and pickers. A segmented control no longer shows two options pressed right after a click.
  • A click on a folder in the Code tab's file tree, or in a pull request's file tree, opens or folds it at once, where it waited for the mouse to move. The Code tab also builds the tree of a checkout with tens of thousands of files in milliseconds where it took seconds, and a row's hover follows the pointer without lagging an event behind.
  • Restarting lich after an update opens the new version's window, where the old window stayed open on the new lich and a session could fail to start with "want 8 arguments, got 9" until lich was closed and opened again. The window closes and comes back with the restart; a lich running without a window stays without one. This takes effect from the next update after this release.
  • Ctrl+F on a file open in the Code tab opens the find bar, and the keys typed there land in it, where both went to the session's terminal behind the tab: the terminal took the keyboard back from the code, the find bar and the Find all list on every frame. A click on the terminal now hands it the keyboard, so selecting code to copy no longer leaves you typing nowhere.
  • A pull request in the Pulls list no longer cuts off its review verdict when the author's name is long: the name shortens instead, and the checkout folder at the end of the line shows only when it fits whole rather than as half an icon.
  • A pull request in the Pulls list whose review threads are all resolved shows its "Changes requested" in amber with a resolved mark, as its heading already did, instead of the red of one still waiting on its author. GitHub keeps the verdict until the reviewer approves or the review is dismissed. A draft's "Draft" is now an outlined grey badge, so it no longer reads as part of an amber verdict beside it.

v0.77.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 21:35
308d857

lich: a terminal-first ADE for the coding agents you already use

Added

  • The Pulls screen shows a changed image in a pull request's Files tab, before and after side by side, as the Review tab does, where it used to say only "Binary file". An edited Markdown file there has the preview button too, where only an added one had it. lich reads the file from your clone when it holds the commit and from GitHub otherwise.
  • lich mcp answers MCP clients on protocol revision 2026-07-28, which name the version on each request instead of opening with initialize, and serves their server/discover. Clients that open with initialize are answered exactly as before.
  • A Cursor CLI card takes the name Cursor gives the conversation, once the first turn ends, where it kept the name lich gave it.

Changed

  • A merge on the Pulls screen tells the session that opened the merged branch's session too, wherever that session runs, as it already told the sessions in the merged checkout. A session that hands work out learns its pull request merged without you saying so.

Fixed

  • Resolve conflicts, Fix CI errors and a worktree started from an issue send their message to a new Claude Code session as soon as it is at its prompt, where it could sit unsent for up to a minute, until you pressed Enter. lich read the terminal's own answers to Claude Code's startup questions as you typing at that prompt, and held the message back for you.
  • A long Markdown file, such as lich's own CHANGELOG.md, previews in the Code and Review tabs without freezing the window: the preview draws only the part on screen, where it used to lay out the whole file on every frame.
  • A Markdown preview keeps the words apart where the source wraps a line, where they used to run together, and a table no longer squeezes a narrow column into broken words: each column is at least as wide as its longest word.
  • A Claude Code card takes the title Claude Code gives the conversation again, where it kept the name lich gave it. lich now starts a new Claude Code session without --name, which stopped Claude Code titling it. The session picks its own name in Claude Code's agent list, a different one from the card's, and lich sessions, lich whoami and list_sessions show no second name for it until a /rename gives it one.

v0.76.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 14:30
f474c12

lich: a terminal-first ADE for the coding agents you already use

Added

  • A Markdown file open in the Code tab has the same preview button as in the Review tab, beside the read-only mark, and shows the file rendered, tables and links included, in place of its source. Click it again to go back to the source. Another file opens as its source.

Changed

  • Send on a batch of review comments, in the Review and Code tabs and on the Pulls screen, sends them to the session as its prompt, where they used to wait at the prompt for an Enter. A shell session keeps the comments, since there an Enter would run them as a command.

Fixed

  • Dead keys compose in a session's terminal: on macOS, ~ then a types ã and ' then c types ç, where the accent used to arrive on its own before the letter. Text an input method is still composing, such as a Japanese or Chinese IME's, no longer reaches the program before it is committed either.
  • After you switch models in a Claude Code session with /model, the footer and the session card's tooltip name the new model as soon as its first turn ends. They used to keep the old one until a later turn or a reconnect, because lich read the transcript before Claude Code had written that turn's last line.
  • On macOS the close, minimize and zoom buttons stay centered in the title bar. macOS put them back at the top of the bar as the window opened, when you switched to another app and back, and when the system switched between light and dark, until the window was resized.

v0.75.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 12:26
43fdf34

lich: a terminal-first ADE for the coding agents you already use

Added

  • A Markdown file in the Review tab has a preview button beside "Add file as context" that shows the file rendered, tables and links included, in place of its diff. Click it again to go back to the diff. On the Pulls screen only files the pull request adds have it.
  • Ctrl+F (Cmd+F on macOS) on a file open in the Code tab finds text in it. A bar under the file's name lights every match, steps through them with Enter and Shift+Enter, and can match case, whole words or a regular expression. Its list button shows every line with a match under the bar, and clicking one takes the code there. Escape closes it.
  • A session card's tooltip names the model the session is running, for Claude Code, Codex and Kiro CLI. When it is no longer the model the session was opened on, after a /model for instance, the line reads "Opened on …, running …".
  • The Pulls screen edits a pull request's title and description and sends them to GitHub. The pencil after the title renames it in place: Enter or clicking away saves, Escape cancels. Edit beside the Overview's Description opens it as Markdown, saved with Save or Ctrl+Enter (Cmd+Enter on macOS). A long description scrolls inside the field, with a scrollbar, so Save stays on screen. Each one sends only what it changed, so saving the description never undoes a rename made on GitHub meanwhile.
  • A profile can have its own color and picture. In Settings › Providers, a profile's ⋯ menu has Color, with the same eight colors as a session card, and Choose image…, which takes a PNG, JPEG, GIF or WebP up to 10 MB and keeps its centered square. The picture or color shows wherever the profile does: the profile list and picker, the sidebar footer and Continue in. Remove image goes back to the initial on the profile's color.

Changed

  • A block of cards in the sidebar, a worktree, a folder or the pinned block, now grows in when its first card opens and shrinks out with its last one, where it used to appear and vanish at once. The headers that show once the list splits into blocks unfold the same way, and fold away when it is down to one.
  • A pull request's checks still running turn a spinner, in its Checks tab and in the status line above the tabs, where a clock stood still.
  • Buttons no longer sink a pixel while pressed, so every button in the window behaves the same: the ones that had this motion now match the ones that never did.

Removed

  • Breaking: lich no longer runs .lich/setup-worktree.sh when lich open --worktree or an agent's open_session starts a session in a new worktree. The file in your repository is left alone. If your worktrees relied on it to install dependencies, run it yourself in the new worktree's terminal (sh .lich/setup-worktree.sh), or ask the agent to. Copying your gitignored .env* files (or what .worktreeinclude names) and the LICH_WORKTREE_PORT dev-server port are unchanged.

Fixed

  • An agent's git commit, rebase or stash no longer fails now and then with "Unable to create '.git/index.lock': File exists" because lich was reading that checkout's status or diff at the same moment. lich's reads leave the index alone.
  • A closed session's card shrinks out of the sidebar again, where it used to vanish at once.
  • Ctrl+Z in a session no longer freezes its agent for good. It used to suspend the agent, and nothing in lich could bring it back; lich now keeps the key from the session.
  • The bars in the plan usage tooltip, in the footer, show their empty track again on themes whose popover and muted colors are the same, such as Everforest, where only the filled part was drawn.
  • Opening or closing the pull request list on the Pulls screen no longer makes the active project tab let go of the panel below it and grab it again. The tab stays attached the whole way and moves onto the list once it slides under it.

v0.74.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 20:02
465488f

lich: a terminal-first ADE for the coding agents you already use

Added

  • F11 puts the window in full screen and back, without the minimize, maximize and close buttons while it is. The chord can be changed in Settings › Hotkeys.

Changed

  • A pull request that conflicts with its base no longer lists the conflicting files under its title. The "Conflicts with" status counts them, and clicking it opens a panel over the screen that names each one.
  • Resolve conflicts and Fix CI errors on a pull request, and a worktree started from a #123 issue, now send their message to the session they open, where it used to sit at the prompt waiting for you to press Enter. A terminal card in that checkout is never sent anything.

Fixed

  • On macOS, the close, minimize and zoom buttons sit centered in the native window's title bar, not pressed against its top edge, and follow the interface zoom.
  • The window can be dragged by its top bar: past the last tab and in the gaps around the brand and the buttons. Before, no part of the bar moved it.
  • The Pulls screen keeps what it shows up to date without pressing Refresh. It reads a pull request again every few seconds while GitHub is still working out whether it can merge, once a minute while the screen is open, and when you come back to the window, so a push, a merge or a conflict made outside lich shows up on its own.

v0.73.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 16:43
aaf81b3

lich: a terminal-first ADE for the coding agents you already use

Important

Everyone: the native window is now lich's only window. lich opens it on every
launch; the web window and its embedded Chromium are gone.

Added

  • Desktop notifications you can click, in the native window on Windows and macOS. As on Linux, a session that needs your input or finished its turn raises a notification with Open and Dismiss: Open brings lich up on that session's card, and the notification goes away once you answer or open the session. On macOS it needs lich run from Lich.app and asks once for permission; on Windows a session waiting on you keeps its notification on screen until you act on it.
  • Settings › Providers warns under Profile when sessions start through a custom binary, with its path and buttons to show it or go back to the default. A wrapper that sets its own login or config directory overrides the profile, and the Binary setting sits folded at the bottom of the screen.

Changed

  • When a session's process exits, a toast in the bottom-right corner now asks what to do, in place of the band at the bottom of the terminal. A card with a conversation offers Resume, which opens that same conversation again (in the profile it started in), Start new, which begins another one in the card as Restart did, and Close session. A shell, or an agent that ended before its first prompt, offers Restart and Close session. Dismissing the toast leaves the card as it is, and focusing the card brings the toast back.
  • The project's profile lives at the foot of the sidebar, not on every card. With more than one login for a provider, the sidebar's last line names the profile this project's new sessions of it start in: the provider of the card on screen, or the default one for a terminal. Click it to pick another login, with each one's five-hour usage, or to go back to Global's; Other providers changes the rest from the same menu. Cards no longer carry the profile chip beside their branch.

Removed

  • The web window. lich opens the native window, and a release no longer ships Chromium. The Window choice in Settings (web or native) and the tray item that opened the other window are gone, and so are lich -- <chromium flags>, lich --shell and LICH_SHELL. If the native window cannot start, lich says why and where its log is.

Fixed

  • Logging a Claude Code or Codex profile in now shows that it is authenticating once you are through in the browser, or once you submit a pasted code, where the dialog kept waiting for the login until the very end and the code field just emptied.
  • In Brazilian Portuguese, every message now calls a worktree "a worktree", where a few said "o worktree".
  • On macOS the native window has its close, minimize and zoom buttons again; since 0.72.0 the topbar left their room empty.
  • On Windows, updating lich from the native window no longer rolls back with "Setup was unable to automatically close all applications": the window stayed open on lich-native.exe, which the installer has to replace. It now closes before the installer runs and opens again once lich is back. Updating from 0.72.0 or older still hits it once: end lich-native.exe in Task Manager when the message shows, choose Retry, and open lich from the Start menu afterwards.
  • Closing the native window while lich is away, after it quit or while it restarts, closes it, whatever "When the window closes" is set to. With Ask or Quit it stayed open and only showed an error that the sessions could not be counted.
  • In a narrow Settings window, a setting whose control is too wide to share the line, such as a provider's Profile picker, now puts the control under its title and description, where the text was squeezed into a sliver and broke letter by letter. A provider's Documentation link likewise moves under its name instead of running into the Enabled switch.
  • Continue in can move a Claude Code conversation back to the profile it just left, where a plugin hook that kept running after the session ended (WakaTime's, for one) left a file behind and the move refused with "already holds".

v0.72.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 22:27
0495222

lich: a terminal-first ADE for the coding agents you already use

Changed

  • The native window's topbar is now its title bar: the system's bar is gone, and minimize, maximize and close sit beside Settings, drawn the way Windows, GNOME and KDE draw them and on the side your desktop puts them; on macOS the traffic lights sit in the topbar. Drag the empty part of the topbar to move the window, and double-click it to maximize. Tiling window managers keep their own decorations.

Fixed

  • lich quit no longer fails with "EOF" when lich quits before answering: it waits for the port to close instead of calling the lost reply a refusal.
  • On Wayland, the native window shows the desktop's own cursor, in its theme and size, where it could show another theme. On a monitor with a smaller scale than the largest one, the cursor no longer jumps as it enters the window.
  • On Linux, the native window groups under lich's own icon in the dock, where it showed up as a separate app with a generic icon.
  • In the native window's Review and a pull request's Files, the scrollbar keeps its size as you scroll, where it grew and shrank with whichever file filled the view. Dragging it now moves through the diff evenly, not file by file.

v0.71.2

Choose a tag to compare

@github-actions github-actions released this 19 Oct 14:43
cbb86ea

lich: a terminal-first ADE for the coding agents you already use

Fixed

  • The native window opens again on Windows and macOS, where it closed right
    away looking for fontconfig to draw the code and diff views.
  • Emoji in the native window's terminal are drawn in color on Windows, where
    they came out as plain outlines.
  • The update command offered to a macOS install now taps lichdotdev/tap before upgrading. An install from the old omartelo/tap failed with "Cask 'lichdotdev/tap/lich' is unavailable", since Homebrew does not follow a moved tap on its own; tap it once with brew tap lichdotdev/tap to upgrade from an older lich.
  • In the native window, "Unfold long pastes" now unfolds Claude Code and Kiro CLI pastes: the clipboard, a batch of review comments, the prompt a pull request or issue opens a session with, and dropped or attached file paths.

v0.71.1

Choose a tag to compare

@github-actions github-actions released this 18 Oct 17:08
3a0d7a8

lich: a terminal-first ADE for the coding agents you already use

Fixed

  • The native window on Linux no longer crashes with an illegal instruction when a terminal opens on a CPU without AVX-512.