61f1a07ba7c6b7ce032bf74fcf30e314c1bacdc5
Add worktree support to SessionService via the hqt.git.worktree module: - create_session(worktree_branch=...): creates the worktree before the row (ServiceError → no row, no spawn); spawn/capture use the worktree path; blank nickname defaults to the branch name. - _session_path / _repo_path_for_worktree helpers route every harness-facing path through the worktree when set, with a parent.parent repo fallback when the project row is gone. - attach_session rung 0: recreate a missing worktree from its branch, else raise "delete the session". - delete_session(remove_worktree=, force=): remove worktree before deleting the row; removal failure keeps the row. - worktree_state_for(session_id): None for plain/missing sessions, else the module's WorktreeState. 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%