Sandbox
@illegalstudio/lazyagent

Agent monitor for Claude Code, Cursor, and Codex

lazyagent watches coding agent sessions from a single terminal, desktop panel, or HTTP API. It supports multiple agents, shows session state, and includes maintenance commands like search, prune, compact, and limits.

186 stars14 forksGoUpdated 8d ago
Who it's for

Builders who use Claude Code, Cursor, Codex, or Grok and want a shared view of their agent sessions.

What it delivers

You can keep an eye on many agent sessions at once, reopen the right one, and manage old chat files without digging through each tool.

What it does

Multi-agent session monitoring

Shows sessions from Claude Code, Cursor, Codex, Grok CLI, OpenCode, pi, Kimi Code CLI, Amp, and others in one place.

TUI, desktop app, and HTTP API

Runs as a terminal interface, a macOS/Linux desktop app, or a bearer-token-protected API.

Session tools

Includes `sessions`, `latest`, `search`, `compact`, and `prune` commands for finding, reopening, and cleaning up chat files.

Usage and limit tracking

Shows rate-limit and billing summaries for supported agents, with JSON output for scripts and widgets.

Webhook notifications

Sends signed JSON payloads when a session changes state, such as going idle or waiting for input.

How to get it

  1. 1Desktop app (macOS, universal binary — TUI + GUI + HTTP API)
    brew install --cask illegalstudio/tap/lazyagent
  2. 2CLI only (macOS, Linux — TUI + HTTP API, no GUI)
    brew install illegalstudio/tap/lazyagent-cli
  3. 3Run
    go install github.com/illegalstudio/lazyagent@latest

README

lazyagent logo

lazyagent

One lazy eye on all your coding agents.

Stars Downloads License: MIT Product Hunt Download on the App Store Follow @nahime0 on X

9 agents supported · TUI + desktop app + HTTP API · No server, no lock-in · MIT

A terminal UI, a macOS/Linux desktop app, and an HTTP API for monitoring all your coding agents from a single place. Watch sessions from Claude Code, Cursor, Codex, Grok CLI, Kilo, Kimi Code CLI, Amp, pi, and OpenCode — lazyagent doesn't replace your workflow, it watches it.

Official Website


lazyagent is a full desktop application. macOS ships as Lazyagent.app; Linux ships as native DEB/RPM/Arch packages plus an AppImage. Every desktop package includes the familiar lazyagent command alongside the GUI. Only interested in the CLI? Install the standalone build with brew install illegalstudio/tap/lazyagent-cli — same command, TUI and HTTP API included, no GUI.

Inspired by lazygit, lazyworktree, and pixel-agents.

Support the project

⭐ If lazyagent is useful to you, consider starring the repo — it helps others discover it!

💛 Loving it? Consider becoming a sponsor to keep the project alive and growing.

lazyagent for iOS

Want to keep an eye on your agents from your pocket? lazyagent is available on the App Store for iPhone and iPad.

The iOS app is a paid app — and that's on purpose. Buying it is one of the easiest ways to support the project and keep development going. Thank you! 💛

That said, lazyagent and its API are fully open source. If you'd rather not pay for the app, you're more than welcome to build your own client on top of the API — that's exactly what it's there for. No hard feelings, the choice is yours. 🙂

News

📢 Session tools are here! Commands to find, reopen, search, and maintain your agent sessions — plus keep rate-limit usage visible:

  • lazyagent prune — delete chat files older than N days or whose project folder no longer exists. Interactive agent picker, dry-run previews, and per-project row selection at the confirmation prompt.
  • lazyagent compact — shrink session files in place by truncating bulky tool outputs, thinking blocks, and embedded images — sessions stay resumable with the originating agent. Supports Claude Code, pi, Codex, Grok, and Kimi.
  • lazyagent search — search transcript-file agents (Claude, Codex, pi, Amp, Grok, Kimi) with highlighted snippets and an incremental local index.
  • lazyagent limits — on-demand rate-limit / billing summary for Claude Code (5h + 7d), Codex (5h + 7d), Grok (monthly), Kimi Code, and Cursor (monthly, Models + API pools), with a detailed pace view available via --detailed.
  • lazyagent sessions: list every session recorded for the current directory, across all agents, and reopen one normally or in YOLO mode. Interactive picker, --json for scripts. The old history name remains available as an alias.
  • lazyagent latest: resume the current directory's most recent session immediately, normally or with --yolo. No table, no prompt.
  • Outbound webhooks on session state transitions — send a signed JSON payload to Slack, a custom dashboard, or a CI endpoint whenever a session goes idle, waits for input, or changes state. See Webhooks.

Typical savings on a year of daily use: 80+ MiB reclaimed across the cleanup commands, with every rewrite validated and backed up by default.

Why lazyagent?

Unlike other tools, lazyagent doesn't replace your workflow — it watches it. Launch agents wherever you want (terminal, IDE, desktop app), lazyagent just observes. No lock-in, no server, no account required.

Terminal UI

lazyagent TUI

Desktop App

lazyagent macOS desktop app

Detach the panel and lazyagent becomes a full desktop app with a Dock icon, Cmd-Tab, native menus, a card-grid dashboard (compact | rich | live density switch), per-card normal and YOLO Resume actions, an Editor action with a right-click menu, and a Settings panel (terminal choice, editor, agents, API passphrase). Attach again to return it to the menu bar.

HTTP API

lazyagent API playground

Install

Packaging change: the macOS cask now installs Lazyagent.app instead of a bare binary; the lazyagent command still works — the cask links it into Homebrew's bin at install time, and the lazyagent-cli formula provides the same command for CLI-only setups. The cask and the formula conflict on purpose: the app already includes the CLI.

Homebrew

Desktop app (macOS, universal binary — TUI + GUI + HTTP API):

brew install --cask illegalstudio/tap/lazyagent

Installs Lazyagent.app and links the lazyagent command into Homebrew's bin — the CLI works immediately, no first launch required.

CLI only (macOS, Linux — TUI + HTTP API, no GUI):

brew install illegalstudio/tap/lazyagent-cli

Linux desktop

Download the desktop package for your distribution from GitHub Releases:

# Debian / Ubuntu
sudo apt install ./Lazyagent_VERSION_linux_amd64.deb

# Fedora
sudo dnf install ./Lazyagent_VERSION_linux_amd64.rpm

# Arch Linux
sudo pacman -U ./Lazyagent_VERSION_linux_amd64.pkg.tar.zst

# Portable fallback
chmod +x Lazyagent_VERSION_linux_amd64.AppImage
./Lazyagent_VERSION_linux_amd64.AppImage

The native packages install the desktop launcher and the lazyagent command. See the Linux GUI guide for dependencies and tray compatibility.

Go (TUI only)

go install github.com/illegalstudio/lazyagent@latest

Build from source

git clone https://github.com/illegalstudio/lazyagent
cd lazyagent

# TUI only (no Wails/Node.js needed)
make tui

# Full build with desktop support (requires Node.js and platform libraries)
make install   # npm install (first time only)
make build

# Linux desktop packages
make linux-packages VERSION=0.13.6

Launch

lazyagent                    Launch the terminal UI (monitors all agents)
lazyagent --agent claude     Monitor only Claude Code sessions
lazyagent --agent grok       Monitor only Grok CLI sessions
lazyagent --agent kimi       Monitor only Kimi Code CLI sessions
lazyagent --api              Start the HTTP API (Bearer-token protected)
lazyagent --gui              Launch the desktop app (menu bar)
lazyagent --tui --gui --api  Run everything together
lazyagent prune --days N     Delete chat sessions older than N days
lazyagent compact            Shrink chat files by truncating bulky payloads
lazyagent search "query"     Search chat transcripts with snippets
lazyagent search --yolo "q"  Open a selected search result in YOLO mode
lazyagent sessions           List and reopen sessions for the current directory
lazyagent sessions --yolo    Reopen a selected session in YOLO mode
lazyagent history            Alias for lazyagent sessions
lazyagent latest             Resume the most recent session here
lazyagent latest --yolo      Resume the most recent session in YOLO mode
lazyagent limits             Show 5h / weekly / monthly usage summary
lazyagent limits --json      Same data as JSON, for scripts and widgets
lazyagent passphrase         Set or rotate the HTTP API passphrase
lazyagent --help             Show full help

Documentation

Full documentation — supported agents, activity states, keybindings, configuration, the HTTP API, maintenance commands, and architecture — lives at:

  • lazyagent.dev/docs — rendered website
  • docs/ — Markdown sources in this repository, organized by topic:
    • Getting started — install, quickstart
    • Concepts — how it works, supported agents, activity states, session info
    • Interfaces — terminal UI, macOS/Linux GUI, HTTP API
    • Usage — CLI reference, directory-scoped sessions, recipes
    • Maintenanceprune, compact, search, and limits commands
    • Reference — configuration, architecture, development, roadmap

License

MIT

Files in the repo

Repository payload17 top-level entries
  • .github
  • assets
  • build
  • docs
  • frontend
  • internal
  • scripts
  • tasks
  • .gitignore
  • .goreleaser.yaml
  • go.mod
  • go.sum
  • LICENSE
  • main_launch_test.go
  • main.go
  • Makefile
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k