cc49859b0828c81463ae438bf0e3188c984e6599
- is_git_repo: check out.strip() == "true" (bare repos / .git dirs exit 0 with "false") - _validate_branch: new shared helper calls check-ref-format; used in all three public branch-taking functions to block option-injection (--detach, --all, etc.) - _ensure_worktrees_excluded: prepend newline when existing content lacks trailing newline - WorktreeState: make frozen=True (codebase precedent) - create_worktree invalid-branch ServiceError now includes git stderr - remove_worktree: log.debug for silently-swallowed branch -d / worktree prune failures - worktree_state docstring: document git-failure → clean-state behaviour - Tests: 9 new regression tests; raw subprocess.run commit calls replaced with _commit helper Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
hqt — HQ Terminal
A TUI for orchestrating AI coding harness sessions (Claude Code, Kiro, Aider, etc.) via tmux. Manage multiple AI sessions across projects from a single terminal interface.
Quick Start
uv pip install -e .
hqt
Commands
| Command | Description |
|---|---|
hqt |
Launch the TUI (inside tmux) |
hqt doctor |
Check system requirements |
hqt list |
List projects and sessions |
Key Bindings
| Key | Action |
|---|---|
q |
Quit |
n |
New session |
a |
Add project |
e |
Edit project |
Tab |
Switch panel |
d |
Delete session |
Enter |
Attach to session (auto-resumes if not running) |
r |
Rename session |
s |
Stop session |
Architecture
hqt uses a layered architecture: a Click CLI bootstraps into a Textual TUI, which drives service classes (ProjectService, SessionService) backed by SQLite via SQLAlchemy. Sessions are spawned as tmux windows through TmuxManager, with harness-specific configuration provided by pluggable HarnessConfigurator implementations discovered at runtime.
Description
Languages
Python
100%