2e8cc9060d fix(ui): anchor the host cursor to modal name inputs (#2569)
* fix(ui): anchor the host cursor to modal name inputs

IMEs draw their composition preview at the host terminal cursor. The rename
and new-worktree dialogs drew a block glyph instead of setting one, so the
frame carried no cursor and the client kept the position the focused pane
last reported. Japanese composition appeared behind the dialog and only
reached the field on Enter.

Set the cursor to the caret column instead, counting wide characters as two
cells.

refs #1755

* fix(ui): keep the clamped caret cell blank

A name that fills the field left the clamped caret sitting on the last
rendered glyph. A terminal inverts the cell under its cursor and an IME
composes there, so the glyph was hidden and composition overlapped it.

Render the text one column short of the field. The field is still cleared
in full, so the clamped caret always lands on a blank cell.

refs #1755

---------

Co-authored-by: kataokatsuki <kataokatsuki@users.noreply.github.com>
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-08-10 14:34:51 +03:00
2026-08-08 16:04:21 +03:00
2026-07-16 17:57:10 +03:00
2026-07-29 21:21:22 +03:00
2026-08-06 01:04:50 +03:00
2026-08-03 21:52:56 +03:00
2026-05-09 23:16:24 +03:00
2026-07-09 22:43:25 +03:00
2026-08-05 04:07:11 +03:00
2026-08-05 04:07:11 +03:00

herdr

herdr

herdr.dev · install · quick start · docs

English · 简体中文

Apache 2.0 license total GitHub release downloads GitHub stars latest stable release Homebrew version follow @herdrdev on X


https://github.com/user-attachments/assets/043ec09f-4bdd-41d5-aee0-8fda6b83e267

the runtime your coding agents live on.

  • always running — herdr is a background server; the terminals live inside it. close the lid, drop the network, restart the machine — agents keep working and sessions come back. reattach from any terminal, or over ssh.
  • never hunt for the stuck one — every pane is marked working, blocked, or idle. when an agent stops and needs an answer, herdr says so.
  • agent-native — the cli and socket api are the same surface agents drive: spawn panes, prompt each other, wait until another agent is genuinely blocked. agent skill →
  • runs what you already run — claude code, codex, cursor, opencode, grok and the rest. herdr doesn't wrap or replace them, it just owns their terminals.
  • keyboard and mouse, both first-class — tmux-style prefix keys and click, drag, split. pick per moment, not per tool.
  • plugins — extend panes and workflows. browse the marketplace →
  • one rust binary, no electron — runs in whatever terminal you already use.

install

curl -fsSL https://herdr.dev/install.sh | sh

or brew install herdr · mise use -g herdr · windows beta: powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex" · binaries

then start it where the work lives:

herdr

run your agents, split panes, walk away. ctrl+b q detaches, herdr reattaches. quick start →

docs

everything lives at herdr.dev/docs: quick start · concepts · supported agents · keyboard · configuration · session state · remote · integrations · plugins · socket api

thanks

Terminal Trove

Terminal Trove and every backer listed in SPONSORS.md — thank you 🐑

enterprise / partnership: hey@herdr.dev

agent instructions

if you are an ai agent helping with this repository, read AGENTS.md before making changes and read CONTRIBUTING.md before opening issues or PRs.

development

git clone https://github.com/herdrdev/herdr
cd herdr
cargo build --release

just test        # unit tests
just check       # formatting, tests, and maintenance checks

license

Herdr is licensed under the Apache License 2.0.

Languages
Rust 93.7%
Python 2.7%
PowerShell 1.4%
TypeScript 0.9%
Shell 0.5%
Other 0.6%