HN 표시: Lazyagent – ​​모든 AI 코딩 에이전트를 보기 위한 TUI

hackernews | | 📦 오픈소스
#claude #hive #멀티레포 #ai 딜 #ai 에이전트 #gemini #openai
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

터미널 기반 TUI 애플리케이션인 Lazyagent는 Claude, Codex, OpenCode 등 다양한 AI 코딩 에이전트의 활동을 한곳에서 모니터링하고 검색할 수 있도록 지원합니다. 이 도구는 프로젝트, 세션, 하위 에이전트 계층, 이벤트 스트림을 시각적으로 표현하여 에이전트가 역할에 맞게 작동하는지 실시간으로 파악할 수 있게 돕습니다. Homebrew, Nix, Shell 스크립트 등 다양한 방법으로 설치 가능하며, 현재 초기 개발 단계로 설치 및 사용 시 변경 사항에 유의해야 합니다.

본문

lazyagent is a terminal TUI app for watching what ai agents are doing. You can inspect projects, sessions, agents, subagents, tools, prompts and outputs in one place. The TUI is built for day to day observability. You can see which session belongs to which project, which agent or subagent is active, what tool ran, and what happened next. It also helps you check whether each agent is doing the work that fits its role, so it is easier to spot when a run goes off track. - Multi-runtime support -- Support Claude, Codex, and OpenCode sessions - Subagent hierarchy -- See which agents spawned which subagents, displayed as a visual tree. - Event stream with filtering -- Filter events by type (tool, user, session, system, code) or by agent. Full-text search across event payloads. - Syntax and diff highlighting -- Code blocks and diffs in event payloads are syntax-highlighted for readability. lazyagent is still early in development, some breaking changes may happen. Install from the Homebrew tap with: brew tap chojs23/homebrew-tap brew install --cask lazyagent go install github.com/chojs23/lazyagent/cmd/lazyagent@latest These commands build the repository through its flake. The binary version comes from the repo VERSION file, while the exact source you install depends on the ref you choose. Run directly: nix run github:chojs23/lazyagent Install into your profile: nix profile install github:chojs23/lazyagent Pin a specific release tag if you want that exact release through Nix: nix run github:chojs23/lazyagent/v0.2.0 nix profile install github:chojs23/lazyagent/v0.2.0 The default github:chojs23/lazyagent form follows the default branch, so use a tag ref when you want a fixed release. Install the latest release asset into ~/.local/bin : curl -fsSL https://raw.githubusercontent.com/chojs23/lazyagent/main/scripts/install.sh | sh Install a specific release into a custom directory: curl -fsSL https://raw.githubusercontent.com/chojs23/lazyagent/main/scripts/install.sh | \ sh -s -- --version v0.2.0 --bin-dir /usr/local/bin Installer options: --version orVERSION= to install a specific release--bin-dir orBIN_DIR= to choose the install directory go build -o ./bin/lazyagent ./cmd/lazyagent lazyagent is usually used through runtime hooks and plugins. lazyagent init claude This updates: ~/.claude/settings.json It registers lazyagent ingest --runtime claude for these Claude hook events: PreToolUse PostToolUse SessionStart SessionEnd Stop SubagentStop Notification UserPromptSubmit Existing non lazyagent hooks are preserved. lazyagent init codex This updates: ~/.codex/config.toml ~/.codex/hooks.json It enables features.codex_hooks = true and registers lazyagent ingest --runtime codex --quiet for supported Codex hook events. lazyagent init opencode This writes the OpenCode plugin to: ~/.config/opencode/plugins/lazyagent.ts Set an environment variable for the plugin if you want: LAZYAGENT_BIN to point at a specificlazyagent binary Build the Go binary: go build -o ./bin/lazyagent ./cmd/lazyagent Run the Go test suite: go test ./... If you need to work on the maintained OpenCode plugin source directly: cd plugins/opencode npm install npm run build The shipping plugin is embedded into the Go binary, so keep the maintained source and embedded copy in sync when you change it. The interface is divided into five panes. - Projects -- Lists all projects with their root sessions. Each session shows a runtime indicator: [C] for Claude,[X] for Codex,[O] for OpenCode. Active sessions display an animated spinner. - Session summary -- Shows metadata for the selected session: runtime, project path, session ID, start time, last event time, and event/agent counts. - Agents / subagents -- Displays the agent tree for the selected session. Active agents show a spinner. - Events -- List of events for the selected session. Each row shows the event type, tool name, agent ID, and timestamp. - Event detail -- Full inspection of the selected event. Shows status indicators, metadata fields, and the event payload. Main keys: tab ,shift+tab move between panes1 ,2 ,3 ,4 ,5 jump to a specific panej ,k move through listsg ,G jump to top or bottomctrl+u ,ctrl+d move by half a pageenter ,space select the current item/ opens searcht ,shift+t cycles event type filtersa clears the current agent filter when the agent pane is focusedd deletes the selected project or session from the projects paneD clears events for the selected session treeF toggles auto follow in the events paner refreshes data? toggles helpq quits- Hold shift while dragging to select and copy text When a non panic internal app error happens, the TUI shows a small toast in the bottom right for about 5 seconds while also writing the error to lazyagent.log . Detail pane keys: J toggles raw JSONe expands long content blocks Run the lazyagent: lazyagent Project grouping is automatic. lazyagent first tries to match sessions by working directory such as cwd or project_dir , then falls back to transcript path information when needed. That means Claude, Codex, and OpenCode sessions from the same worktree are usually grouped under the same project in the TUI. - Type filter -- Press t to cycle through: All, User, Code, System, Tool, Session. - Agent filter -- Select an agent in the agents pane to show only that agent's events. Press a to clear the filter and show all agents again. - Text search -- Press / and type a pattern to search event payloads. lazyagent tracks the following event types depending on the runtime. | Type | Subtypes | Description | |---|---|---| | User | UserPromptSubmit | User sent a prompt | | Code | -- | Convenience filter. Shows tool events where tool name is Edit , Write , apply_patch , or NotebookEdit , and events with subtype FileEdited | | System | Stop , SubagentStop , Notification , SessionStatus and others | Agent stop, status, and notification events | | Tool | PreToolUse , PostToolUse , PostToolUseFailure | Tool execution start, success, or failure | | Session | SessionStart , SessionEnd , SessionUpdated , SessionDiff | Session lifecycle. | When a PreToolUse or PostToolUse event involves the Agent tool, lazyagent automatically creates a subagent entry and links subsequent events to it. Install or refresh runtime hooks and plugins. Examples: lazyagent init claude lazyagent init codex lazyagent init opencode Read runtime event payloads from stdin and store them in the database. This command is normally called by hooks and plugins, not manually. Examples: lazyagent ingest --runtime claude lazyagent ingest --runtime opencode lazyagent ingest --runtime codex --quiet Check whether the SQLite database can be opened. lazyagent health Show build and release metadata. lazyagent version lazyagent version --json lazyagent --version By default, lazyagent stores data under: ~/.lazyagent Default database path(SQLite): ~/.lazyagent/observe.db Default log path: ~/.lazyagent/lazyagent.log Supported environment variables: LAZYAGENT_DATA_DIR - overrides the base data directory LAZYAGENT_DB_PATH - overrides the database path - when set, its parent directory also becomes the active data directory for logs The TUI refresh interval defaults to 1 second. Bug reports, feature requests, and pull requests are all welcome. Please see CONTRIBUTING.md for contribution guidance.

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →