Logcat Desk is a desktop app for macOS focused on Android developers who want a fast adb logcat workflow without opening Android Studio.
- Electron
- TypeScript
- React
- Tailwind CSS
- Secure preload +
contextBridge - Native
adbexecution throughchild_process.spawn
- Detect connected devices with
adb devices -l - Select a device
- Start a real-time
adb -s <deviceId> logcat -v threadtimesession - Filter logs by free text, tag, package text, and minimum level
- Search-highlight matches in the console
- Pause and resume capture
- Clear the local console view
- Clear the device log buffer with
adb logcat -c - Export visible logs to
.txt - Export the full captured session to
.log - Copy visible logs or single rows to the clipboard
- Persist ADB path, auto-scroll, selected device, and filters
See docs/user/ai-analysis.md for setup, API key handling, providers, and troubleshooting.
See docs/user/README.md for complete user guides (quick start, workflows, settings, AI, troubleshooting).
src/
main/
ipc/
services/
adb/
export/
logcat/
settings/
preload/
renderer/
src/
components/
hooks/
services/
store/
utils/
shared/
- Install dependencies:
npm install- Start the development app:
npm run dev- Build production assets:
npm run build- Package a local macOS app bundle:
npm run pack:mac- Create macOS release artifacts (
.zip+.dmg):
npm run dist:macLogcat Desk uses Electron + electron-builder with:
- Developer ID code signing
- Hardened Runtime
- Apple notarization
- Stapled
.dmgartifacts
This ensures users can install and open the app without manual quarantine removal.
- Active Apple Developer Program membership
Developer ID Applicationcertificate exported as.p12- App-specific password for your Apple ID
- Apple Team ID
- Open Keychain Access on macOS.
- Find your
Developer ID Applicationcertificate. - Export it as
.p12with a strong password. - Convert it to base64 for CI usage:
base64 -i "Developer ID Application.p12"Use that value in CSC_LINK, and the export password in CSC_KEY_PASSWORD.
- Sign in to appleid.apple.com.
- Open Sign-In and Security.
- Generate an App-Specific Password.
- Save it in
APPLE_APP_SPECIFIC_PASSWORD.
Use your Apple ID email for APPLE_ID and your Apple Team ID for APPLE_TEAM_ID.
Never hardcode secrets. Provide them through environment variables:
export CSC_LINK="<base64-p12>"
export CSC_KEY_PASSWORD="<p12-password>"
export APPLE_ID="<apple-id-email>"
export APPLE_APP_SPECIFIC_PASSWORD="<app-specific-password>"
export APPLE_TEAM_ID="<team-id>"npm run dist:maccodesign --verify --deep --strict --verbose=2 "release/Logcat Desk.app"
spctl --assess --type execute --verbose=4 "release/Logcat Desk.app"If you are testing unsigned local debug builds only, quarantine removal can still be used as a temporary dev-only workaround.
Official macOS releases are signed and notarized by Florex Labs.
If you build the app locally from source, the generated app may not be signed or notarized, so macOS Gatekeeper may show a warning. This is expected for local/community builds.
- The app does not depend on Android Studio at runtime.
adbcan be discovered fromPATH,ANDROID_HOME,ANDROID_SDK_ROOT, or configured manually in the sidebar.- Renderer code does not use
nodeIntegration. - The main process batches log events before sending them to the renderer to keep the UI responsive.
CI: runs lint, coverage, build, and a macOS packaging smoke check.Pull Request Labeler: applies labels automatically from changed file paths.Prepare Release PR: opens a release pull request with a version bump and detailed changelog scaffold.Release: builds signed-or-unsigned macOS artifacts on tags likev0.1.0and attaches them to a GitHub Release.Stale Issues and Pull Requests: keeps inactive issues and PRs under control.
GitHub-generated release notes are configured through .github/release.yml.
- Contribution guide: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security policy: SECURITY.md
- Support guide: SUPPORT.md
- Changelog: CHANGELOG.md
- Roadmap: ROADMAP.md
- User docs: docs/user/README.md
- AI analysis and providers: docs/user/ai-analysis.md
- Repository governance: docs/maintainers/repository-governance.md
- GitHub launch checklist: docs/maintainers/github-launch-checklist.md
- macOS distribution setup: docs/maintainers/macos-distribution.md
This project is released under the MIT License.
- Add structured presets for tag/package filters.
- Add multi-device tabs.
- Add log bookmarks and saved sessions.
- Add disk-backed persistence for long-running captures.
- Add package-aware filtering by resolving app PID mappings through ADB.

