@comma-agents/tuiHooks
Hooks
Custom React hooks for daemon communication, chat session state, logging, modal control, and terminal-aware UI utilities.
Hooks manage daemon communication, chat session state, logging, modal control, and terminal-aware UI utilities. Each hook requires specific context providers to be mounted.
Quick Start
The most commonly used hooks are useChat (bind to a chat session) and useDaemon (send commands, subscribe to events):
import { useChat, useDaemon } from "@comma-agents/tui";
function ChatView() {
const chat = useChat();
const { status } = useDaemon();
return (
<>
<MessageList messages={chat.messages} />
<StatusBar status={chat.status} />
</>
);
}Provider Dependency
Hooks depend on context providers. The provider tree is:
UserConfigContextProvider → ThemeContextProvider → DaemonContextProvider → ChatSessionsContextProvider → ModalContextProviderMost hooks require at least DaemonContextProvider. Chat hooks additionally require ChatSessionsContextProvider.
Hook Inventory
| Hook | Category | Requires |
|---|---|---|
| useChat | Chat | DaemonContextProvider, ChatSessionsContextProvider |
| useChatSessions | Chat | ChatSessionsContextProvider |
| useDaemon | Daemon | DaemonContextProvider |
| useDaemonCommand | Daemon | DaemonContextProvider |
| useDaemonSubscription | Daemon | DaemonContextProvider |
| useWebSocket | Network | None |
| useLogs | Diagnostics | None |
| useModal | UI | ModalContextProvider |
| useBreakpoint | Layout | ThemeContextProvider |
| useUserConfig | Config | UserConfigContextProvider |
| useMouseClick | Input | MouseProvider |
| useMouseHover | Input | MouseProvider |
| useMouseWheelScroll | Input | MouseProvider |
| useRegion | Rendering | None |
| useToolSpinner | Animation | None |
| useDebugRender | Dev | None |