lazyagent

agent
Guvenlik Denetimi
Basarisiz
Health Uyari
  • No license — Repository has no license file
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Basarisiz
  • process.env — Environment variable access in cmd/lazyagent/opencode_plugin.ts
  • process.env — Environment variable access in plugins/opencode/src/index.ts
  • rm -rf — Recursive force deletion command in scripts/install.sh
Permissions Gecti
  • Permissions — No dangerous permissions requested
Purpose
This is a terminal user interface (TUI) tool designed to monitor and observe AI agent sessions (such as Claude and Codex) in real-time. It captures runtime events, stores them locally in an SQLite database, and presents them in a structured format for easy inspection.

Security Assessment
Overall risk: Medium. The tool inherently accesses sensitive data by design, as it intercepts and logs AI agent tool usage, prompts, and session outputs. The scan flagged a `rm -rf` recursive force deletion command inside the `scripts/install.sh` file, which is a common but potentially dangerous pattern if the script is modified by a malicious actor. Environment variable access was detected in the plugin files, which is expected for locating the binary but warrants a quick manual check. No hardcoded secrets were found, and it does not request dangerous system permissions. Because it automatically modifies core configuration files (like Claude's `settings.json`) to register its hooks, users should verify exactly what changes it makes to their environment.

Quality Assessment
The project appears actively maintained, with its last push occurring very recently. However, community trust and visibility are currently quite low, as evidenced by only 6 GitHub stars. A significant concern for enterprise or open-source use is the complete lack of a defined software license in the repository, which means the legal terms for usage, modification, and distribution are strictly ambiguous.

Verdict
Use with caution—inspect the installation script and understand that it logs sensitive AI session data, while noting the lack of a formal license.
SUMMARY

Observe your ai agents and sessions from the terminal

README.md

lazyagent

lazyagent

lazyagent is a terminal TUI app for watching what Claude, Codex, and OpenCode sessions are doing.

It collects runtime events, stores them in SQLite, and shows them in a structured interface so you can inspect projects, sessions, agents, subagents, tools, prompts, outputs, and status changes without digging through raw hook payloads.

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.

Installation

Homebrew

Install from the Homebrew tap with:

brew tap chojs23/homebrew-tap
brew install --cask lazyagent

Go install

go install github.com/chojs23/lazyagent/cmd/lazyagent@latest

Nix flake

Run directly:

nix run github:chojs23/lazyagent

Install into your profile:

nix profile install github:chojs23/lazyagent

Release install script

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.1.0 --bin-dir /usr/local/bin

Installer options:

  • --version <tag> or VERSION=<tag> to install a specific release
  • --bin-dir <dir> or BIN_DIR=<dir> to choose the install directory

Build from source

go build -o ./bin/lazyagent ./cmd/lazyagent

Claude, Codex, and OpenCode setup

lazyagent is usually used through runtime hooks and plugins.

Claude

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.

Codex

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.

OpenCode

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 specific lazyagent binary

Build and test

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.

Keybindings

Lazyagent has five panes:

  1. Projects and root sessions
  2. Session summary
  3. Agents and subagents
  4. Events
  5. Event detail

Main keys:

  • tab, shift+tab move between panes
  • 1, 2, 3, 4, 5 jump to a specific pane
  • j, k move through lists
  • g, G jump to top or bottom
  • ctrl+u, ctrl+d move by half a page
  • enter, space select the current item
  • / opens search
  • t cycles event type filters
  • a clears the current agent filter when the agent pane is focused
  • d deletes the selected project or session from the projects pane
  • D clears events for the selected session tree
  • F toggles auto follow in the events pane
  • r refreshes data
  • ? toggles help
  • q quits

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 JSON
  • e expands long content blocks

Usage

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.

Commands

lazyagent init <claude|opencode|codex>

Install or refresh runtime hooks and plugins.

Examples:

lazyagent init claude
lazyagent init codex
lazyagent init opencode

lazyagent ingest

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

lazyagent health

Check whether the SQLite database can be opened.

lazyagent health

lazyagent version

Show build and release metadata.

lazyagent version
lazyagent version --json
lazyagent --version

DB and log information

By default, lazyagent stores data under:

~/.lazyagent

Default database path:

~/.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.

Contribution

Bug reports, feature requests, and pull requests are all welcome.

Please see CONTRIBUTING.md for contribution guidance.

Yorumlar (0)

Sonuc bulunamadi