Back to catalog

eos-watch-logs

Start real-time log streaming from connected Android device using adb logcat. Shows only app's log messages. Use when monitoring app behavior, debugging, or viewing Android logs.

  • Category: discovered
  • Tags: github, community
  • Version: 1.0.0
  • Author: walid
  • Downloads: 0
  • Updated: 2025-11-22

Download the latest version (v1.0.0) from this page.

SKILL.md

---
name: eos-watch-logs
description: Start real-time log streaming from connected Android device using adb logcat. Shows only app's log messages. Use when monitoring app behavior, debugging, or viewing Android logs.
delegate: true
---

## ⚠️ DELEGATION REQUIRED

**This skill must be executed by the instruction-follower subagent.**

When you see this skill invoked, you MUST use the Task tool to delegate it:

```
Task(
    subagent_type="instruction-follower",
    description="[Brief 3-5 word description]",
    prompt="Follow the instructions in .claude/skills/eos-watch-logs/skill.md to [complete task description]."
)
```

**DO NOT execute the instructions below directly.** The subagent will read this file and execute autonomously, then report back the results.

---


# Android/e/OS Watch Logs

## Overview

Streams logs from a USB-connected Android/e/OS device in real-time using `adb logcat`, filtering to show only the app's log messages. Logs are displayed in the console and written to `device-logs.txt` for monitoring and debugging.

## When to Use

Invoke this skill when the user:
- Asks to "watch Android logs"
- Wants to "see what the Android app is doing"
- Says "monitor the Android device"
- Asks to "stream logcat"
- Wants to debug or see real-time Android app behavior
- Says "show me the Android logs"

## Prerequisites

- Android device connected via USB
- USB debugging enabled
- ADB installed (`brew install android-platform-tools`)
- Device authorized for debugging
- App must be running on device to see logs

## Instructions

1. Navigate to the Android app directory:
   ```bash
   cd path/to/android/app
   ```

2. Run the watch-logs.py script:
   ```bash
   ./watch-logs.py
   ```

3. Inform the user:
   - The script will stream logs in real-time using `adb logcat`
   - Only messages from the app's package are shown (filters out system noise)
   - Logs are written to `device-logs.txt` in the same directory
   - Press Ctrl+C to stop watching
   - The log file continues to grow while the script runs

## Expected Output

```
📱 Watching logs from com.miso.noobtest...
📝 Writing to: /path/to/device-logs.txt

Streaming logs (Ctrl+C to stop):

14:23:15 [DEBUG] NoobTest: Attempting connection...
14:23:15 [DEBUG] NoobTest: Response code: 200
14:23:15 [DEBUG] NoobTest: Connection successful!
14:23:16 [DEBUG] NoobTest: Attempting connection...
```

## Log Format

Android logcat format with filtering:
- **Timestamp**: HH:MM:SS (extracted from logcat)
- **Level**: V/D/I/W/E (Verbose/Debug/Info/Warning/Error)
- **Tag**: App identifier (e.g., "NoobTest")
- **Message**: The actual log message

## How It Works

The script:
1. Runs `adb logcat` to stream all device logs
2. Filters for lines containing the app's package name
3. Extracts timestamp, level, tag, and message
4. Displays in console and writes to `device-logs.txt`

## Adding Logs in Code

Use Android's Log class in Kotlin:
```kotlin
import android.util.Log

Log.d("NoobTest", "Debug message")
Log.i("NoobTest", "Info message")
Log.w("NoobTest", "Warning message")
Log.e("NoobTest", "Error message")
```

## Integration with Claude Code

Claude can monitor your app by reading the log file:
```bash
tail -20 device-logs.txt  # View recent logs
```

This enables Claude to:
- See what the app is currently doing
- Debug issues by checking logs
- Verify that code changes are working

## Common Issues

**No logs appearing**:
- Ensure the app is running on the device
- Check that Log.d/i/w/e calls use consistent tag names
- Verify adb is working: `adb devices`
- Try clearing log buffer: `adb logcat -c` then restart app

**adb not found**:
- Install Android platform tools: `brew install android-platform-tools`
- Check PATH includes adb

**Too many logs (system noise)**:
- The script filters by package name automatically
- Adjust filter pattern in watch-logs.py if needed
- Use specific log tags for easier filtering

**Device unauthorized**:
- Check device screen for authorization prompt
- Accept RSA key on device
- Replug device and try again

## Stopping the Stream

Press Ctrl+C to stop watching logs. The script will terminate cleanly and `device-logs.txt` will remain with all captured logs.

## Alternative: Manual logcat

You can also view logs manually:
```bash
# All logs from app
adb logcat | grep "NoobTest"

# Only errors
adb logcat *:E

# Clear buffer first, then view
adb logcat -c && adb logcat | grep "NoobTest"
```

## Notes

- This runs continuously in the foreground (blocks the terminal)
- Run in a separate terminal window if you need to work while monitoring
- The log file is overwritten each time the script starts
- All Android log levels appear (unlike iOS where DEBUG is filtered)