Skip to content
c1r5Public

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

easycat

easycat is a fast terminal UI for Android logcat debugging through ADB.

It helps you:

  • list connected Android devices
  • list installed packages for the selected device
  • stream logcat in real time
  • detect common Android error patterns while logs are streaming
  • write incident reports with surrounding context
  • expose the current context through an embedded read-only MCP server
  • filter apps by typing in the Apps panel
  • filter logs by text, level, and selected app PID
  • navigate filters from the keyboard
  • read wrapped log lines inside the terminal viewport
  • pause, clear, scroll, and follow logs without leaving the terminal

Installation

Requirements

  • Go 1.25 or newer
  • ADB available in your PATH
  • An Android device or emulator with USB debugging enabled

Check ADB:

adb devices -l

Install with Go:

go install github.com/c1r5/easycat@latest

Make sure $(go env GOPATH)/bin is available in your PATH.

Install dependencies:

make deps

Build the binary:

make build

The binary will be created at:

bin/easycat

Running

Run from source:

go run .

Run the built binary:

./bin/easycat

When a device and app are selected, easycat starts streaming logcat and captures only lines from the resolved app PID. It observes captured lines asynchronously and writes detected incidents to:

.easycat/incidents/

Development mode with hot reload:

make dev

make dev uses cargo watch, so install it first if needed:

cargo install cargo-watch

Incidents and Rules

If .easycat/rules.yaml is missing, easycat uses built-in rules for common Android failures, including fatal exceptions, NullPointerException, SQLite database locks, and ANR messages.

Create .easycat/rules.yaml to customize detection:

rules:
  - id: fatal_exception
    description: Android fatal exception
    match:
      level: E
      contains:
        - "FATAL EXCEPTION"
    threshold:
      count: 1
      window: 30s
      cooldown: 5m
    action:
      type: write_incident

Matching supports:

  • contains: case-insensitive match against the raw log/message
  • level: exact log level such as E, W, I, or D
  • pid: optional exact PID match
  • threshold.count, threshold.window, and threshold.cooldown

Incident Markdown files include device/app/PID metadata, the trigger line, matching logs, recent context logs, and a suggested prompt for read-only analysis.

Embedded MCP

The MCP server starts enabled by default inside the TUI:

127.0.0.1:8765/mcp

Use ctrl+s to toggle MCP on or off. The server is read-only and exposes:

  • get_active_context
  • get_recent_logs
  • list_incidents
  • get_incident

If the port is already in use, the TUI keeps running and reports the MCP error in the footer/status line.

Turning PID only off suspends capture and clears recent logs from both the TUI and MCP. Previously created incidents remain available for the session. If the selected app PID cannot be resolved, no logs are captured.

Shortcuts

Key Action
tab / shift+tab Change focused panel
enter Select the focused device/app or edit/toggle the selected filter
/ Focus the text log filter directly
esc Leave text filter editing or clear the app search
up / down Move selection, scroll logs, or choose a filter field
j / k Choose the next/previous filter field while Filters is focused
left / right / space Toggle the selected filter option while Filters is focused
typing while Apps is focused Filter apps incrementally
backspace while Apps is focused Remove one character from the app search
pgup / pgdown Scroll logcat
g / G Go to top / bottom while Logcat is focused
ctrl+l Cycle log level filter: all, E, W, I, D
ctrl+o Toggle selected app PID-only capture; turning it off clears recent logs
ctrl+s Toggle the embedded MCP server
ctrl+r Refresh devices
ctrl+k Clear logs
ctrl+p Pause / resume rendering
ctrl+q / ctrl+c Quit

Demo

easycat demo

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages