// features

Features built around Logcat signal.

Keynobi is a macOS companion for Android developers who spend too much time digging through noisy logs. It puts live Logcat and filters first, then gives Claude Code the same local build, device, log, and UI context through MCP. Get started · MCP docs.

01 / primary focus

Logcat: find the signal fast

The Logcat tab is the main reason to open Keynobi. It is built for the moment when the device is noisy, the repro is fresh, and you need the exact crash, package line, warning, JSON payload, or timeout without scanning a thousand unrelated rows.

Filters that map to real debugging

50K bufferCrash groupingSaved filtersJSON viewer
Filters
ANDOR
package:minelevel:error | is:crash-tag:systemage:5m+ add filter
Saved filters
Crashes onlyMy tagNetwork

Android Studio Logcat

Android Studio shows the stream, then leaves you to combine text searches and mental context while the noise keeps moving.

Keynobi filters

Keynobi turns it into an investigation: package-aware filters, AND/OR groups, crash matching, negation, age windows, and saved searches in one place.

  • Live streaming from the selected device
  • Backend-side filters where possible before IPC
  • Package dropdown for app-only logs or packages seen in the session
  • Crash highlighting and grouped stack traces
  • ANR badges and crash counter navigation
  • JSON message badge with structured detail viewer
  • Pause display updates without losing buffered data
  • Jump to end, row selection, keyboard navigation, multi-row copy
  • Filtered export to .log for sharing evidence
  • Bounded ring buffer with configurable size and visible line cap

Saved filters are capped at 50 so the useful searches stay curated. Logcat keeps a bounded ring buffer and lets you tune ring size plus visible line limits under Settings.

02 / agents

MCP: Android context for Claude Code

Keynobi exposes a local stdio MCP server from the app binary. Claude Code can run builds, read logs, inspect devices, inspect UI, drive guarded UI automation, and query project health using the same state as the GUI. There is no Keynobi-hosted proxy.

AreaWhat Claude Code can doMCP tools
BuildRun Gradle, inspect live build state, pull structured errors, switch variants, find APKs, and run tests.
  • run_gradle_task
  • get_build_status
  • get_build_errors
  • get_build_log
  • cancel_build
  • list_build_variants
  • set_active_variant
  • find_apk_path
  • run_tests
  • get_build_config
Logcat and crashesStart streams, read filtered entries, pull crash logs and stack traces, clear buffers, and summarize log stats.
  • start_logcat
  • stop_logcat
  • get_logcat_entries
  • get_crash_logs
  • get_crash_stack_trace
  • clear_logcat
  • get_logcat_stats
Devices and appsList devices and AVDs, capture screenshots, inspect packages and memory, install, launch, stop, and restart apps.
  • list_devices
  • screenshot
  • get_device_info
  • dump_app_info
  • get_memory_info
  • install_apk
  • launch_app
  • stop_app
  • restart_app
  • get_app_runtime_state
  • list_avds
  • launch_avd
  • stop_avd
UI hierarchy and automationRead UI Automator trees, find elements, tap/type/swipe safely, wait/assert UI state, open links/settings, and change test conditions.
  • get_ui_hierarchy
  • find_ui_elements
  • list_clickable_elements
  • find_ui_parent
  • ui_tap
  • ui_tap_element
  • ui_type_text
  • ui_fill_input
  • clear_focused_input
  • ui_type_text_unicode
  • send_ui_key
  • hide_soft_keyboard
  • ui_swipe
  • ui_scroll_until_element
  • grant_runtime_permission
  • revoke_runtime_permission
  • wait_for_element
  • ui_wait_for_idle
  • ui_assert_element
  • open_deep_link
  • open_app_settings
  • set_device_orientation
  • set_network_state
  • compare_ui_state
Project and healthExpose the active project, Gradle root, and system health checks for Java, SDK, ADB, Gradle, disk, and app data.
  • get_project_info
  • run_health_check
Built-in prompts
  • diagnose-crash
  • full-deploy
  • build-and-fix
Resources
  • android://project-info
  • android://health
  • android://manifest
  • android://app-build-gradle
  • android://build-gradle
  • android://gradle-settings

MCP validates external input before acting: Gradle tasks, package names, serials, APK paths, deep links, runtime permissions, UI keys, coordinates, and tree paths are checked. File access stays inside the effective project root or project build outputs.

03 / supporting loop

The rest of the loop

Builds

Stream ./gradlew output with ANSI color, inspect structured Problems, pick variants, run build-only or build → install → launch, clean, cancel, and keep build follow-tail behavior under control.

Projects

Keep a multi-project registry, detect Gradle roots, switch saved projects, rename labels without renaming folders, remove entries without deleting files, and edit versionName/versionCode through Project App Info.

Layout

Capture a UI Automator accessibility snapshot, search class/resource-id/text/content-desc/package, hide boilerplate, inspect interactive nodes, hit-test the wireframe, and understand what automation sees.

Devices and AVDs

See physical devices and emulators, choose the active deploy target, launch or stop emulators, and keep device selection connected to install and launch workflows.

Health, updates, and command palette

Run checks for SDK, ADB, emulator, Java, Gradle wrapper, disk, and app data. Watch status for MCP, memory, logs, releases, selected variant, and jump through actions with Cmd+Shift+P.

Install: GitHub Releases · Source: github.com/thiagodmont/keynobi